All files / Settings/hooks/staticSettingsPages/useSettingsSectionInitalValues useSettingsSectionInitalValues.js

7.69% Statements 1/13
0% Branches 0/6
0% Functions 0/3
7.69% Lines 1/13

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;