/* * Wire * Copyright (C) 2021 Wire Swiss GmbH * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/. * */ import React, {useId} from 'react'; import cx from 'classnames'; export interface BaseToggleProps { extendedInfo?: boolean; extendedInfoText?: string; className?: string; infoText?: string; isChecked: boolean; isDisabled?: boolean; setIsChecked: (isChecked: boolean) => void; toggleId?: string; toggleName?: string; } const defaultToggleName = 'base-toggle'; const BaseToggle: React.FC = ({ extendedInfo, isChecked, isDisabled, setIsChecked, extendedInfoText, toggleId = defaultToggleName, toggleName = defaultToggleName, className, infoText, }) => { const uuid = useId(); const labelUuid = useId(); const inputRef = React.useRef(null); return (
) => setIsChecked(event.target.checked)} checked={isChecked} data-uie-name={`allow-${toggleId}-input`} />

{extendedInfo ? extendedInfoText : infoText}

); }; export {BaseToggle};