MCPcopy Create free account
hub / github.com/microsoft/SandDance / DataItem

Function DataItem

packages/sanddance-explorer/src/controls/dataItem.tsx:102–165  ·  view source on GitHub ↗
(props: Props)

Source from the content-addressed store, hash-verified

100}
101
102export function DataItem(props: Props) {
103 if (!props.item) {
104 return null;
105 }
106 const nameValuePairs: NameValuePair[] = [];
107 for (const columnName in props.item) {
108 if (columnName === SandDance.constants.GL_ORDINAL && !props.showSystemFields) {
109 continue;
110 }
111 if (SandDance.util.isInternalFieldName(columnName)) {
112 continue;
113 }
114 const nameValuePair: NameValuePair = {
115 columnName,
116 value: props.item[columnName],
117 };
118 if (!props.bingSearchDisabled) {
119 nameValuePair.bingSearch = bingSearchLink(props.columns.filter(c => c.name === columnName)[0], props.item[columnName]);
120 }
121 nameValuePairs.push(nameValuePair);
122 }
123 return (
124 <div className="sanddance-dataItem">
125 {nameValuePairs.map((nameValuePair, i) => {
126 const ex: InputSearchExpression = {
127 key: 0,
128 name: nameValuePair.columnName,
129 operator: '==',
130 value: nameValuePair.value,
131 };
132 if (nameValuePair.value === null || nameValuePair.value === '') {
133 ex.operator = 'isnullorEmpty';
134 delete ex.value;
135 }
136 const searchClick = (e: React.MouseEvent<HTMLTableDataCellElement>) => {
137 const search: InputSearchExpressionGroup = {
138 key: 0,
139 expressions: [ex],
140 };
141 props.onSearch(e, [search]);
142 };
143 const title = strings.tooltipSearch(nameValuePair.columnName, displayValue(nameValuePair.value).display);
144 return (
145 <div
146 key={i}
147 onClick={!props.disabled ? searchClick : null}
148 title={title}
149 onKeyUp={e => {
150 if (e.keyCode === KeyCodes.ENTER) {
151 searchClick(e as any);
152 }
153 }}
154 tabIndex={0}
155 className="name-value"
156 >
157 <div className="column-name">{nameValuePair.columnName}</div>
158 <div className="column-value">{displayValueElement(nameValuePair)}</div>
159 {nameValuePair.bingSearch}

Callers

nothing calls this directly

Calls 5

bingSearchLinkFunction · 0.70
displayValueFunction · 0.70
searchClickFunction · 0.70
displayValueElementFunction · 0.70
filterMethod · 0.45

Tested by

no test coverage detected