Skip to content

Commit 1656530

Browse files
feat(js): display reset button only when query
1 parent 2e967be commit 1656530

4 files changed

Lines changed: 34 additions & 1 deletion

File tree

packages/autocomplete-js/src/__tests__/autocomplete.test.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ describe('autocomplete-js', () => {
8282
</label>
8383
<button
8484
class="aa-ResetButton"
85+
hidden=""
8586
type="reset"
8687
>
8788
<svg

packages/autocomplete-js/src/autocomplete.ts

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,35 @@ export function autocomplete<TItem extends BaseItem>({
8888
};
8989
});
9090

91+
runEffect(() => {
92+
const panelRoot = getHTMLElement(panelContainer);
93+
const state: AutocompleteState<TItem> = {
94+
collections: [],
95+
completion: null,
96+
context: {},
97+
isOpen: false,
98+
query: '',
99+
selectedItemId: null,
100+
status: 'idle',
101+
...props.initialState,
102+
};
103+
render(renderer, {
104+
state,
105+
...autocomplete,
106+
classNames,
107+
panelRoot,
108+
root,
109+
form,
110+
input,
111+
inputWrapper,
112+
label,
113+
panel,
114+
resetButton,
115+
});
116+
117+
return () => {};
118+
});
119+
91120
runEffect(() => {
92121
const panelRoot = getHTMLElement(panelContainer);
93122
const unmountRef = createRef<(() => void) | undefined>(undefined);

packages/autocomplete-js/src/render.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,10 +37,12 @@ export function render<TItem extends BaseItem>(
3737
panelRoot,
3838
root,
3939
input,
40+
resetButton,
4041
panel,
4142
}: RenderProps<TItem>
4243
): () => void {
43-
setPropertiesWithoutEvents(root, getRootProps());
44+
setPropertiesWithoutEvents(root, getRootProps({}));
45+
setPropertiesWithoutEvents(resetButton, { hidden: !state.query });
4446
setPropertiesWithoutEvents(input, getInputProps({ inputElement: input }));
4547

4648
panel.innerHTML = '';

packages/autocomplete-js/src/types/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ export interface AutocompleteOptions<TItem extends BaseItem>
145145
* ```
146146
*/
147147
render?: AutocompleteRenderer<TItem>;
148+
initialState?: Partial<AutocompleteState<TItem>>;
148149
}
149150

150151
export interface AutocompleteApi<TItem extends BaseItem>

0 commit comments

Comments
 (0)