Files
Chromacase/front/components/TextButton.tsx
2023-02-19 10:02:57 +00:00

24 lines
678 B
TypeScript

import { Button, Text } from "native-base"
import Translate from "./Translate";
import { RequireExactlyOne } from 'type-fest';
type TextButtonProps = Parameters<typeof Button>[0] & RequireExactlyOne<{
label: string;
translate: Parameters<typeof Translate>[0];
}>
const TextButton = (props: TextButtonProps) => {
// accepts undefined variant, as it is the default variant
const textColor = !props.variant || props.variant == 'solid'
? 'light.50'
: undefined;
return <Button {...props}>
{ props.label !== undefined
? <Text color={textColor}>{props.label}</Text>
: <Translate color={textColor} {...props.translate} />
}
</Button>
}
export default TextButton