From e653fc6f58c26dbb4a10b5b89a24865dd814fe68 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Mon, 24 Jan 2022 17:32:46 -0300 Subject: fix #7086 --- .../src/pages/home/AttributeEntryScreen.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'packages/anastasis-webui/src/pages/home/AttributeEntryScreen.tsx') diff --git a/packages/anastasis-webui/src/pages/home/AttributeEntryScreen.tsx b/packages/anastasis-webui/src/pages/home/AttributeEntryScreen.tsx index 9c1a93d8e..a1f384743 100644 --- a/packages/anastasis-webui/src/pages/home/AttributeEntryScreen.tsx +++ b/packages/anastasis-webui/src/pages/home/AttributeEntryScreen.tsx @@ -37,12 +37,27 @@ export function AttributeEntryScreen(): VNode { const fieldList: VNode[] = reqAttr.map((spec, i: number) => { const value = attrs[spec.name]; const error = checkIfValid(value, spec); + + function addAutocomplete(newValue: string): string { + const ac = spec.autocomplete; + if (!ac || ac.length < newValue.length || ac[newValue.length] === "?") + return newValue; + + if (!value || newValue.length < value.length) { + return newValue.slice(0, -1); + } + + return newValue + ac[newValue.length]; + } + hasErrors = hasErrors || error !== undefined; return ( setAttrs({ ...attrs, [spec.name]: v })} + setValue={(v: string) => + setAttrs({ ...attrs, [spec.name]: addAutocomplete(v) }) + } spec={spec} errorMessage={error} onConfirm={() => { -- cgit v1.2.3