Skip to content

Commit 97969f4

Browse files
committed
feat: add includeInputValueOnNoMatch to useSuggest
1 parent 2a0474d commit 97969f4

File tree

2 files changed

+8
-8
lines changed

2 files changed

+8
-8
lines changed

ui/src/tag/TagFilterSelector.tsx

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -51,9 +51,7 @@ export const TagFilterSelector: React.FC<TagFilterSelectorProps> = ({value: sele
5151
const [inputValue, setInputValue] = React.useState('');
5252

5353
const tagsResult = useQuery<Tags>(gqlTags.Tags);
54-
const suggestions = useSuggest(tagsResult, inputValue, [])
55-
.filter((t) => !t.tag.create && !t.tag.alreadyUsed)
56-
.reverse();
54+
const suggestions = useSuggest(tagsResult, inputValue, [], false, false).filter((t) => !t.tag.create && !t.tag.alreadyUsed);
5755

5856
if (tagsResult.error || tagsResult.loading || !tagsResult.data || !tagsResult.data.tags) {
5957
return null;
@@ -104,7 +102,7 @@ export const TagFilterSelector: React.FC<TagFilterSelectorProps> = ({value: sele
104102
<div className={classes.container}>
105103
<TextField
106104
InputLabelProps={getLabelProps()}
107-
required={true}
105+
required={false}
108106
disabled={disabled}
109107
InputProps={{
110108
classes: {

ui/src/tag/suggest.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ export const useSuggest = (
99
tagResult: QueryResult<Tags, {}>,
1010
inputValue: string,
1111
usedTags: string[],
12-
skipValue = false
12+
skipValue = false,
13+
includeInputValueOnNoMatch = true
1314
): TagSelectorEntry[] => {
1415
const [tagKeySomeCase, tagValue] = inputValue.split(':');
1516
const tagKey = tagKeySomeCase.toLowerCase();
@@ -22,7 +23,7 @@ export const useSuggest = (
2223
});
2324

2425
if (exactMatch && tagValue !== undefined && usedTags.indexOf(exactMatch.key) === -1 && !skipValue) {
25-
return suggestTagValue(exactMatch, tagValue, valueResult);
26+
return suggestTagValue(exactMatch, tagValue, valueResult, includeInputValueOnNoMatch);
2627
} else {
2728
return suggestTag(exactMatch, tagResult, tagKey, usedTags);
2829
}
@@ -59,11 +60,12 @@ const suggestTag = (
5960
const suggestTagValue = (
6061
exactMatch: TagSelectorEntry['tag'],
6162
tagValue: string,
62-
valueResult: QueryResult<SuggestTagValue, SuggestTagValueVariables>
63+
valueResult: QueryResult<SuggestTagValue, SuggestTagValueVariables>,
64+
includeInputValueOnNoMatch: boolean
6365
): TagSelectorEntry[] => {
6466
let someValues = (valueResult.data && valueResult.data.values) || [];
6567

66-
if (someValues.indexOf(tagValue) === -1) {
68+
if (includeInputValueOnNoMatch && someValues.indexOf(tagValue) === -1) {
6769
someValues = [tagValue, ...someValues];
6870
}
6971

0 commit comments

Comments
 (0)