import { bind, Variable } from 'astal'; import { BarBoxChild, BarModuleProps } from 'src/components/bar/types'; import { BarButtonStyles } from 'src/lib/options/types'; import options from 'src/configuration'; const { style } = options.theme.bar.buttons; export const Module = ({ icon, textIcon, useTextIcon = bind(Variable(false)), label, truncationSize = bind(Variable(-1)), tooltipText = '', boxClass, isVis, props = {}, showLabelBinding = bind(Variable(true)), showIconBinding = bind(Variable(true)), showLabel = true, labelHook, hook, }: BarModuleProps): BarBoxChild => { const getIconWidget = (useTxtIcn: boolean): JSX.Element | undefined => { const className = `txt-icon bar-button-icon module-icon ${boxClass}`; const icn = typeof icon === 'string' ? icon : icon?.get(); if (!useTxtIcn && icn !== undefined && icn.length > 0) { return ; } const textIcn = typeof textIcon === 'string' ? textIcon : textIcon?.get(); if (textIcn !== undefined && textIcn.length > 0) { return