mirror of
https://github.com/Unleash/unleash.git
synced 2025-08-13 13:48:59 +02:00
refactor: derive methods
This commit is contained in:
parent
b3fe230665
commit
f10ee73eee
@ -94,6 +94,18 @@ const VARIANT_OPTIONS = [
|
||||
type IconOption = 'Default' | 'Custom' | 'None';
|
||||
type LinkOption = 'Link' | 'Dialog' | 'None';
|
||||
|
||||
const deriveIconOption = (icon: string): IconOption => {
|
||||
if (icon === '') return 'Default';
|
||||
if (icon === 'none') return 'None';
|
||||
return 'Custom';
|
||||
};
|
||||
|
||||
const deriveLinkOption = (link: string): LinkOption => {
|
||||
if (link === '') return 'None';
|
||||
if (link === 'dialog') return 'Dialog';
|
||||
return 'Link';
|
||||
};
|
||||
|
||||
interface IBannerFormProps {
|
||||
enabled: boolean;
|
||||
message: string;
|
||||
@ -137,20 +149,16 @@ export const BannerForm = ({
|
||||
}: IBannerFormProps) => {
|
||||
const [previewDialogOpen, setPreviewDialogOpen] = useState(false);
|
||||
|
||||
const [iconOption, setIconOption] = useState<IconOption>(
|
||||
icon === '' ? 'Default' : icon === 'none' ? 'None' : 'Custom',
|
||||
const [iconOption, setIconOption] = useState<IconOption>(() =>
|
||||
deriveIconOption(icon),
|
||||
);
|
||||
const [linkOption, setLinkOption] = useState<LinkOption>(
|
||||
link === '' ? 'None' : link === 'dialog' ? 'Dialog' : 'Link',
|
||||
const [linkOption, setLinkOption] = useState<LinkOption>(() =>
|
||||
deriveLinkOption(link),
|
||||
);
|
||||
|
||||
useEffect(() => {
|
||||
setIconOption(
|
||||
icon === '' ? 'Default' : icon === 'none' ? 'None' : 'Custom',
|
||||
);
|
||||
setLinkOption(
|
||||
link === '' ? 'None' : link === 'dialog' ? 'Dialog' : 'Link',
|
||||
);
|
||||
setIconOption(deriveIconOption(icon));
|
||||
setLinkOption(deriveLinkOption(link));
|
||||
}, [icon, link]);
|
||||
|
||||
return (
|
||||
|
Loading…
Reference in New Issue
Block a user