Skip to content

Commit 37970ed

Browse files
Merge pull request #857 from neo4j-labs/issue/856-auto-sorting
#856 Disable auto-sorting of Cypher query Parameter Select
2 parents 813e9d1 + 0d24ec0 commit 37970ed

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

src/chart/parameter/ParameterSelectionChart.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,7 @@ export const NeoParameterSelectionChart = (props: ChartProps) => {
9494
compatibilityMode={compatibilityMode}
9595
multiSelector={multiSelector}
9696
manualParameterSave={manualParameterSave}
97+
autoSort={true}
9798
/>
9899
);
99100
} else if (type == 'Relationship Property') {
@@ -112,6 +113,7 @@ export const NeoParameterSelectionChart = (props: ChartProps) => {
112113
compatibilityMode={compatibilityMode}
113114
multiSelector={multiSelector}
114115
manualParameterSave={manualParameterSave}
116+
autoSort={true}
115117
/>
116118
);
117119
} else if (type == 'Date Picker') {
@@ -147,6 +149,7 @@ export const NeoParameterSelectionChart = (props: ChartProps) => {
147149
compatibilityMode={compatibilityMode}
148150
multiSelector={multiSelector}
149151
manualParameterSave={manualParameterSave}
152+
autoSort={false}
150153
/>
151154
);
152155
}

src/chart/parameter/component/NodePropertyParameterSelect.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -165,12 +165,14 @@ const NodePropertyParameterSelectComponent = (props: ParameterSelectProps) => {
165165
/>
166166
);
167167
}
168+
let options = extraRecords?.map((r) => r?._fields?.[displayValueRowIndex] || '(no data)');
169+
options = props.autoSort ? options.sort() : options;
168170
return (
169171
<div className={'n-flex n-flex-row n-flex-wrap n-items-center'}>
170172
<Autocomplete
171173
id='autocomplete'
172174
multiple={multiSelector}
173-
options={extraRecords?.map((r) => r?._fields?.[displayValueRowIndex] || '(no data)').sort()}
175+
options={options}
174176
disabled={disabled}
175177
limitTags={multiSelectLimit}
176178
style={{
@@ -198,7 +200,8 @@ const NodePropertyParameterSelectComponent = (props: ParameterSelectProps) => {
198200
if (autoSelectFirstValue && paramValueDisplayLocal == '') {
199201
debouncedQueryCallback(props.query, { input: '', ...allParameters }, (records) => {
200202
if (records && records.length > 0 && records[0] && records[0]._fields) {
201-
const values = records?.map((r) => r?._fields?.[displayValueRowIndex] || '(no data)').sort();
203+
let values = records?.map((r) => r?._fields?.[displayValueRowIndex] || '(no data)');
204+
values = props.autoSort ? values.sort() : values;
202205
setExtraRecords(records);
203206
propagateSelection(undefined, values[0]);
204207
}

src/chart/parameter/component/ParameterSelect.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,4 +62,8 @@ export interface ParameterSelectProps {
6262
* Add the possibility for manual selection confirmation
6363
*/
6464
manualParameterSave?: boolean;
65+
/**
66+
* Pass true if results should be sorted automatically
67+
*/
68+
autoSort?: boolean;
6569
}

src/chart/parameter/component/QueryParameterSelect.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const QueryParameterSelectComponent = (props: ParameterSelectProps) => {
1717
allParameters={props.allParameters}
1818
compatibilityMode={props.compatibilityMode}
1919
multiSelector={props.multiSelector}
20+
autoSort={props.autoSort}
2021
/>
2122
);
2223
};

0 commit comments

Comments
 (0)