import { useIsTabOpen, useTabSet } from '@curvenote/ui-providers'; import classNames from 'classnames'; import type { GenericNode } from 'mystjs'; import { useEffect } from 'react'; import { selectAll } from 'unist-util-select'; import type { NodeRenderer } from './types'; interface TabItem extends GenericNode { key: string; title: string; sync?: string; } export const TabSetRenderer: NodeRenderer = (node, children) => { const items = selectAll('tabItem', node) as TabItem[]; const keys = items.map((item) => item.sync || item.key); const { onClick, active } = useTabSet(keys); useEffect(() => { onClick(items[0]?.sync || items[0]?.key); }, []); return (