import { BarBoxChild } from 'src/lib/types/bar'; import { Bind } from '../../../lib/types/variable'; import options from '../../../options'; import { bind } from 'astal'; const computeVisible = (child: BarBoxChild): Bind | boolean => { if (child.isVis !== undefined) { return bind(child.isVis); } return child.isVisible; }; export const WidgetContainer = (child: BarBoxChild): JSX.Element => { const buttonClassName = bind(options.theme.bar.buttons.style).as((style) => { const styleMap = { default: 'style1', split: 'style2', wave: 'style3', wave2: 'style4', }; const boxClassName = Object.hasOwnProperty.call(child, 'boxClass') ? child.boxClass : ''; return `bar_item_box_visible ${styleMap[style]} ${boxClassName}`; }); if (child.isBox) { return ( {child.component} ); } return ( ); };