import React from 'react'; import './Toggle.scss'; import classNames from 'classnames'; import Icon from '../Icon'; export interface ToggleProps { /** * Optional onChange handler */ onChange?: (event: React.MouseEvent) => void; /** * Is this the principal call to action on the page? */ type?: 'default' | 'withLabel' | 'withIcon' | 'controlled'; /** * What background color to occur upon toggled */ variant?: 'primary' | 'success' | 'danger'; /** * Toggle contents if its type='with_label' */ enableLabel?: string; disableLabel?: string; /** * Toggle contents if its type='with_icon' */ enableIcon?: string; disableIcon?: string; /** * Optional disabled prop */ disabled?: boolean; /** * Optional checked prop */ checked?: boolean; id?: string; /** * Optional background transparent prop */ isBackgroundTransparent?: boolean; /** * if you want label as adjacent */ label?: string; } const Toggle: React.FC = ({ onChange, type = 'default', variant = 'primary', enableLabel = 'Enable', disableLabel = 'Disable', enableIcon = '+', disableIcon = '-', disabled = false, checked = false, id, isBackgroundTransparent = false, label = '', }) => { const handleChange = (e: any) => { if (onChange) { onChange(e); } }; return (
{label === 'with adjacent label' && ( {checked ? enableLabel : disableLabel} )}
); }; export default Toggle;