diff --git a/src/components/Select/Select.astro b/src/components/Select/Select.astro index 15ebf89..5814a7d 100644 --- a/src/components/Select/Select.astro +++ b/src/components/Select/Select.astro @@ -27,20 +27,24 @@ const { ...rest } = Astro.props -const inputRestProps = Object.fromEntries( - Object.entries(rest).filter(([key]) => key.includes('data')) -) - const classes = classNames([ styles.select, disabled && styles.disabled, className ]) + +const inferredValue = rest.itemGroups.map(group => group.items) + .flat() + .find(item => item.value === value)?.name + +const inputRestProps = Object.fromEntries( + Object.entries(rest).filter(([key]) => key.includes('data')) +) --- group.items) + .flat() + .find((item: ListProps['itemGroups'][0]['items'][0]) => item.value === value)?.name + const inputRestProps = Object.fromEntries( Object.entries($$restProps).filter(([key]) => key.includes('data')) ) @@ -110,7 +115,7 @@ { - const [val, setValue] = useState(value) + const inferredValue = rest.itemGroups.map(group => group.items) + .flat() + .find(item => item.value === value)?.name + + const [val, setValue] = useState((value && inferredValue) ? inferredValue : value) const classes = classNames([ styles.select, diff --git a/src/pages/components/select.astro b/src/pages/components/select.astro index 19fa7fe..7812a0b 100644 --- a/src/pages/components/select.astro +++ b/src/pages/components/select.astro @@ -81,6 +81,14 @@ const sections = getSections({ /> + + + +