/* * Copyright (C) Contributors to the Suwayomi project * * This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ import type { CheckboxProps } from '@mui/material/Checkbox'; import Checkbox from '@mui/material/Checkbox'; import type { FormControlLabelProps } from '@mui/material/FormControlLabel'; import FormControlLabel from '@mui/material/FormControlLabel'; import Stack from '@mui/material/Stack'; import Typography from '@mui/material/Typography'; type BaseProps = CheckboxProps; type LabelProps = { label?: FormControlLabelProps['label'] }; type PrimaryTextProps = { primaryText?: FormControlLabelProps['label']; secondaryText?: FormControlLabelProps['label']; }; type Props = BaseProps & ((LabelProps & PropertiesNever) | (PropertiesNever & PrimaryTextProps)); export const CheckboxInput = ({ primaryText, secondaryText, sx, ...rest }: Props) => ( } label={ primaryText && !secondaryText ? ( primaryText ) : ( {typeof primaryText === 'string' ? {primaryText} : primaryText} {typeof secondaryText === 'string' ? ( {secondaryText} ) : ( secondaryText )} ) } sx={sx} /> );