{"version":3,"file":"loaders-HJwb6Kuq.js","sources":["../../../app/javascript/components/Website/src/hooks/loaders.ts"],"sourcesContent":["import { LoaderFunctionArgs } from \"react-router-dom\";\n\ninterface ComponentTypes {\n name: string;\n platforms: string[];\n description: string;\n}\n\ninterface CategoryTypes {\n category: string;\n description: string;\n components: ComponentTypes[];\n}\n\nconst sortByName = (a: ComponentTypes, b: ComponentTypes): number => {\n return a.name.localeCompare(b.name);\n}\n\nconst sortComponentsByName = (kitCategory: CategoryTypes) => {\n kitCategory.components.sort(sortByName);\n};\n\nexport const ComponentsLoader: () => Promise = async () => {\n const response = await fetch(\"/beta/kits.json\");\n const data = await response.json();\n\n data.kits.forEach(sortComponentsByName);\n\n return data;\n};\n\nexport const ComponentShowLoader = async ({ params }) => {\n const response = await fetch(`/beta/kits/${params.name}.json`);\n const data = await response.json();\n return data; \n};\n\nexport const CategoryLoader: (\n props: LoaderFunctionArgs\n) => Promise = async ({ params }) => {\n const response = await fetch(\"/beta/kits.json\");\n const { kits } = await response.json();\n\n const filteredData = kits.find(\n (kit: CategoryTypes) => kit.category === params.category\n );\n\n filteredData.components.sort(sortByName);\n\n return filteredData;\n};\n\n"],"names":["sortByName","a","b","sortComponentsByName","kitCategory","ComponentsLoader","data","ComponentShowLoader","params","CategoryLoader","response","kits","filteredData","kit"],"mappings":"AAcA,MAAMA,EAAa,CAACC,EAAmBC,IAC9BD,EAAE,KAAK,cAAcC,EAAE,IAAI,EAG9BC,EAAwBC,GAA+B,CAC/CA,EAAA,WAAW,KAAKJ,CAAU,CACxC,EAEaK,EAAmD,SAAY,CAEpE,MAAAC,EAAO,MADI,MAAM,MAAM,iBAAiB,GAClB,OAEvB,OAAAA,EAAA,KAAK,QAAQH,CAAoB,EAE/BG,CACT,EAEaC,EAAsB,MAAO,CAAE,OAAAC,KAE7B,MADI,MAAM,MAAM,cAAcA,EAAO,IAAI,OAAO,GACjC,OAIjBC,EAEkB,MAAO,CAAE,OAAAD,KAAa,CAC7C,MAAAE,EAAW,MAAM,MAAM,iBAAiB,EACxC,CAAE,KAAAC,CAAS,EAAA,MAAMD,EAAS,KAAK,EAE/BE,EAAeD,EAAK,KACvBE,GAAuBA,EAAI,WAAaL,EAAO,QAAA,EAGrC,OAAAI,EAAA,WAAW,KAAKZ,CAAU,EAEhCY,CACT"}