Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 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 | 27x | import { useMemo } from 'react';
const useSettingsSectionInitalValues = ({
settings: rawSettings, // A settingsSection return of EXACTLY the shape defined in useSettingsSection
}) => {
const initialValues = useMemo(() => {
const settingsKeyValue = rawSettings.map(setting => {
const { defValue, key, value, settingType } = setting;
const valueToParse = value ?? defValue;
let parsedValue;
if (settingType === 'Boolean') {
parsedValue = valueToParse === 'true';
} else if (settingType === 'Integer') {
parsedValue = Number(valueToParse);
} else {
parsedValue = valueToParse;
}
return [key, parsedValue];
});
return Object.fromEntries(settingsKeyValue);
}, [rawSettings]);
return initialValues;
};
export default useSettingsSectionInitalValues;
|