1
0
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:
Nuno Góis 2025-07-22 17:37:16 +01:00
parent b3fe230665
commit f10ee73eee
No known key found for this signature in database
GPG Key ID: 71ECC689F1091765

View File

@ -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 (