UNPKG

@zohodesk/components

Version:

In this Package, we Provide Some Basic Components to Build Web App

53 lines 1.61 kB
import { compileClassNames } from '@zohodesk/utils'; export default function cssJSLogic(_ref) { let { props, style } = _ref; let { customClass, needAppearance, isBold, rounded, size, children, palette, status } = props; let { customButton = '', customStatus = '', customStatusSize = '' } = customClass; let paletteLower = palette.toLowerCase(); let statusLower = status.toLowerCase(); let buttonClass = compileClassNames({ [customButton]: !!customButton, [style.bold]: isBold, [style.default]: !needAppearance, [style[paletteLower]]: needAppearance, [style.rounded]: needAppearance && rounded, [style[size.toLowerCase()]]: needAppearance && !children, [style[`${size}Btn`]]: needAppearance && children, [style[`${size}Btn${paletteLower}`]]: needAppearance && children && rounded, [style.loader]: !!needAppearance && statusLower !== 'none' }); let loaderParentClass = compileClassNames({ [customStatusSize]: !!customStatusSize, [style.loading]: statusLower === 'loading', [style[`${size}loading`]]: statusLower === 'loading', [style.successstate]: statusLower != 'loading' }); let loaderChildClass = compileClassNames({ [customStatus]: !!customStatus, [style.loadingelement]: statusLower === 'loading', [style[`${paletteLower}element`]]: statusLower === 'loading', [style.successelement]: statusLower != 'loading', [style[`${paletteLower}success`]]: statusLower != 'loading' }); return { buttonClass, loaderParentClass, loaderChildClass }; }