// islands/toggleSection.tsx
export const ToggleSection = (children, isOpen, onToggle) => {
// render accordion row if isOpen + button which fires onToggle
}
// islands/toggleSectionGroup.tsx
export const ToggleSectionGroup = (children) => {
const [focused, setFocused] = useState(-1);
// cloneElement() all children to pass props isOpen and onToggle
}
// routes/index.tsx
...
return <ToggleSectionGroup>
<ToggleSection />
<ToggleSection />
<ToggleSection />
</ToggleSectionGroup>
...
// islands/toggleSection.tsx
export const ToggleSection = (children, isOpen, onToggle) => {
// render accordion row if isOpen + button which fires onToggle
}
// islands/toggleSectionGroup.tsx
export const ToggleSectionGroup = (children) => {
const [focused, setFocused] = useState(-1);
// cloneElement() all children to pass props isOpen and onToggle
}
// routes/index.tsx
...
return <ToggleSectionGroup>
<ToggleSection />
<ToggleSection />
<ToggleSection />
</ToggleSectionGroup>
...