Spaces:
Runtime error
Runtime error
File size: 3,166 Bytes
56b6519 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
import { t } from 'i18next';
import SelectDropdown from '../../../../components/dropdown/SelectDropdown';
import SimpleInput from '../../../../components/input/SimpleInput';
import PrimarySwitch from '../../../../components/switch/PrimarySwitch';
type ListItem = {
id: number;
value: string;
label?: string;
icon?: string;
};
type SettingsCustomFieldsProps = {
componentOptionSelected: ListItem | null;
label: string;
setLabel: React.Dispatch<React.SetStateAction<string>>;
description: string;
setDescription: React.Dispatch<React.SetStateAction<string>>;
sizeSelected: ListItem;
setSizeSelected: (value: ListItem) => void;
offsetSelected: ListItem;
setOffsetSelected: (value: ListItem) => void;
required: boolean;
setRequired: React.Dispatch<React.SetStateAction<boolean>>;
requiredLabelAlert: boolean;
};
const sizes: ListItem[] = [
{ id: 0, label: '0', value: '0' },
{ id: 1, label: '1', value: '1' },
{ id: 2, label: '2', value: '2' },
{ id: 3, label: '3', value: '3' },
{ id: 4, label: '4', value: '4' },
{ id: 5, label: '5', value: '5' },
{ id: 6, label: '6', value: '6' },
{ id: 7, label: '7', value: '7' },
{ id: 8, label: '8', value: '8' },
{ id: 9, label: '9', value: '9' },
{ id: 10, label: '10', value: '10' },
{ id: 11, label: '11', value: '11' },
{ id: 12, label: '12', value: '12' },
];
export const SettingsCustomFields: React.FC<SettingsCustomFieldsProps> = ({
componentOptionSelected,
label,
setLabel,
description,
setDescription,
sizeSelected,
setSizeSelected,
offsetSelected,
setOffsetSelected,
required,
setRequired,
requiredLabelAlert,
}) => {
const renderLabelAndDescription = () => (
<div>
<SimpleInput
id="label"
label={t('label')}
name="label"
onChange={setLabel}
placeholder={t('label')}
requiredAlert={requiredLabelAlert}
requiredField
type="text"
value={label}
/>
<SimpleInput
id="description"
label={t('description')}
name="description"
onChange={setDescription}
placeholder={t('description')}
type="text"
value={description}
/>
</div>
);
const renderSizeAndOffset = () => (
<div className="grid grid-cols-1 md:grid-cols-2 gap-4">
<SelectDropdown
items={sizes.slice(1)}
onChange={value => setSizeSelected(value)}
selected={sizeSelected}
title={t('size')}
/>
<SelectDropdown
items={sizes}
onChange={value => setOffsetSelected(value)}
selected={offsetSelected}
title={t('offset')}
/>
</div>
);
const renderRequiredSwitch = () => (
<PrimarySwitch
enabled={required}
label={t('required')}
onChange={setRequired}
/>
);
return (
<div className="grid grid-cols-1 md:grid-cols-1 gap-4 content-start">
{componentOptionSelected?.value !== 'space'
? renderLabelAndDescription()
: null}
{renderSizeAndOffset()}
{componentOptionSelected?.value !== 'space'
? renderRequiredSwitch()
: null}
</div>
);
};
|