сохранение в localstorage для списка

This commit is contained in:
2025-07-25 13:24:46 +03:00
parent 6f74b0512e
commit d9b51014e9

View File

@@ -122,22 +122,38 @@ export const selectDefinition: ElementDefinition<SelectConfig, string> = {
</SelectContent> </SelectContent>
</Select> </Select>
), ),
Render: ({ config, value, onChange }) => ( Render: ({ config, value, onChange }) => {
<Select value={value} onValueChange={onChange}> const elementId = (config as any).id || config.placeholder || 'default'
<SelectTrigger className="w-full min-w-32">
<SelectValue placeholder={config.placeholder || 'Выберите значение'} /> const storageKey = `select_${elementId}`
</SelectTrigger>
<SelectContent> const handleValueChange = (newValue: string) => {
<SelectGroup> localStorage.setItem(storageKey, newValue)
{config.options onChange?.(newValue)
.filter(option => option.value.trim() !== '') }
.map((option, index) => (
<SelectItem key={index} value={option.value}> // Если значение не установлено, пытаемся загрузить из localStorage
{option.label} const currentValue = value || localStorage.getItem(storageKey) || ''
</SelectItem>
))} return (
</SelectGroup> <Select value={currentValue} onValueChange={handleValueChange}>
</SelectContent> <SelectTrigger className="w-full min-w-32">
</Select> <SelectValue
), placeholder={config.placeholder || 'Выберите значение'}
/>
</SelectTrigger>
<SelectContent>
<SelectGroup>
{config.options
.filter(option => option.value.trim() !== '')
.map((option, index) => (
<SelectItem key={index} value={option.value}>
{option.label}
</SelectItem>
))}
</SelectGroup>
</SelectContent>
</Select>
)
},
} }