All files / src/components/Recipe/Create/hooks useRecipeMetadata.ts

100% Statements 35/35
100% Branches 0/0
100% Functions 11/11
100% Lines 25/25

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 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                                    1x 5x     5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x 5x   5x       5x       5x       5x       5x       5x       5x       5x       5x       5x         5x                              
import { useTranslations } from 'next-intl';
import { useMemo } from 'react';
import {
  useAllergens,
  useCategories,
  useCostLevels,
  useCuisines,
  useDietaryFlags,
  useEquipment,
  useLabels,
  useLevels,
  useMetadataLoaded,
  useMetadataLoading,
  useServingUnits,
  useUnits,
} from '@/lib/store/metadata';
import { toCleanedOptions } from '../utils';
 
export const useRecipeMetadata = () => {
  const tMisc = useTranslations('misc');
 
  /* Metadata from Redux store */
  const categoriesFromStore = useCategories();
  const levelsFromStore = useLevels();
  const labelsFromStore = useLabels();
  const unitsFromStore = useUnits();
  const cuisinesFromStore = useCuisines();
  const servingUnitsFromStore = useServingUnits();
  const dietaryFlagsFromStore = useDietaryFlags();
  const allergensFromStore = useAllergens();
  const equipmentFromStore = useEquipment();
  const costLevelsFromStore = useCostLevels();
  const metadataLoading = useMetadataLoading();
  const metadataLoaded = useMetadataLoaded();
 
  const categories = useMemo(
    () => toCleanedOptions(categoriesFromStore, tMisc),
    [categoriesFromStore, tMisc],
  );
  const levels = useMemo(
    () => toCleanedOptions(levelsFromStore, tMisc),
    [levelsFromStore, tMisc],
  );
  const labels = useMemo(
    () => toCleanedOptions(labelsFromStore, tMisc),
    [labelsFromStore, tMisc],
  );
  const unitOptions = useMemo(
    () => toCleanedOptions(unitsFromStore, tMisc),
    [unitsFromStore, tMisc],
  );
  const cuisines = useMemo(
    () => toCleanedOptions(cuisinesFromStore, tMisc),
    [cuisinesFromStore, tMisc],
  );
  const servingUnits = useMemo(
    () => toCleanedOptions(servingUnitsFromStore, tMisc),
    [servingUnitsFromStore, tMisc],
  );
  const dietaryFlags = useMemo(
    () => toCleanedOptions(dietaryFlagsFromStore, tMisc),
    [dietaryFlagsFromStore, tMisc],
  );
  const allergens = useMemo(
    () => toCleanedOptions(allergensFromStore, tMisc),
    [allergensFromStore, tMisc],
  );
  const equipment = useMemo(
    () => toCleanedOptions(equipmentFromStore, tMisc),
    [equipmentFromStore, tMisc],
  );
  const costLevels = useMemo(
    () => toCleanedOptions(costLevelsFromStore, tMisc),
    [costLevelsFromStore, tMisc],
  );
 
  return {
    categories,
    levels,
    labels,
    unitOptions,
    cuisines,
    servingUnits,
    dietaryFlags,
    allergens,
    equipment,
    costLevels,
    metadataLoading,
    metadataLoaded,
  };
};