⚙️ Create utility to get categories + fix prerender function with `entries`
⚙️ Check app / vitest (push) Has been cancelled
⚙️ Check app / svgs-size (push) Has been cancelled

This commit is contained in:
Pablo Hdez
2024-09-24 08:41:12 +00:00
parent 863df46ff9
commit 30d9e63afe
3 changed files with 42 additions and 27 deletions
+14 -15
View File
@@ -1,35 +1,34 @@
import { error } from '@sveltejs/kit';
import type { PageLoad } from './$types';
import { svgs } from '@/data/svgs';
import type { PageLoad, EntryGenerator } from './$types';
import type { iSVG } from '@/types/svg';
import { error } from '@sveltejs/kit';
import { svgs } from '@/data/svgs';
import { getCategoriesForDirectory } from '@/data';
export const entries: EntryGenerator = () => {
const categories = getCategoriesForDirectory();
return categories;
};
export const prerender = true;
export const load = (async ({ params }) => {
const { slug } = params;
// Check if slug is valid:
if (!slug) {
return error(404, 'Not found');
}
// Filter out the svg with the matching slug:
const svgsByCategory = svgs.filter((svg: iSVG) => {
if (Array.isArray(svg.category)) {
return svg.category.some((categoryItem) => categoryItem.toLowerCase() === slug);
return svg.category.some((categoryItem) => categoryItem.toLowerCase() === slug.toLowerCase());
} else {
return svg.category.toLowerCase() === slug;
return svg.category.toLowerCase() === slug.toLowerCase();
}
});
// If SVGs array is empty, category can't exist
if (svgsByCategory.length === 0) {
return error(404, 'Not found');
throw error(404, 'Category not found');
}
return {
category: slug as string,
category: slug,
svgs: svgsByCategory
};
}) satisfies PageLoad;