Preserve open/closed state of <details>.

pull/230/head
Atul Varma 2021-09-28 12:08:26 -04:00
rodzic 9d91a08761
commit 202259a533
1 zmienionych plików z 15 dodań i 2 usunięć

Wyświetl plik

@ -473,20 +473,33 @@ function CreaturePartEditor<T extends CreatureSymbol>({
);
}
const RememberedDetails: React.FC<{ id: string }> = ({ id, children }) => {
const [isOpen, setIsOpen] = useRememberedState(id, false);
return (
<details
onToggle={(e) => setIsOpen((e.currentTarget as HTMLDetailsElement).open)}
open={isOpen}
>
{children}
</details>
);
};
const CreatureEditorWidget: React.FC<{
creature: CreatureSymbol;
onChange: (symbol: CreatureSymbol) => void;
}> = ({ creature, onChange }) => {
return (
<div className="thingy">
<details>
<RememberedDetails id="creature_editor_widget">
<summary>Edit cluster&hellip;</summary>
<CreaturePartEditor
creature={creature}
onChange={onChange}
idPrefix="creature_edit_"
/>
</details>
</RememberedDetails>
</div>
);
};