update 15/01

This commit is contained in:
2026-01-15 17:30:04 +07:00
parent f5de4a5313
commit b921d73f73
20 changed files with 618 additions and 259 deletions

View File

@@ -1,5 +1,5 @@
// src/lib/articlePage.ts
import { categories } from "../../data/categories";
import { categories } from "@/data/categories";
export type ArticleResult =
| { type: "article_home"; data: any }
@@ -29,5 +29,8 @@ export function resolveArticlePage(slug: string): ArticleResult | null {
}
// DETAIL
return { type: "article_detail", data: { slug } };
const isValidSlugFormat = slug.includes('-') && slug.length > 5;
if (!isValidSlugFormat) {
return null;
}
}

View File

@@ -1,6 +1,6 @@
// hoanghapc/src/lib/productPage.ts
import { categories } from "../../data/categories";
import { productList } from "../../data/product-list";
import { categories } from "@/data/categories";
import { productList } from "@/data/products";
export type ProductResult =
| { type: "product_category"; data: any }
@@ -23,7 +23,7 @@ export function resolveProductPage(slug: string): ProductResult | null {
}
// DETAIL
const product = productList.find(p => p.productUrl === url);
const product = productList.list?.find(p => p.productUrl === url);
if (product) {
return { type: "product_detail", data: product };
}

View File

@@ -1,3 +1,4 @@
import { notFound } from "next/navigation";
import { resolveArticlePage } from "./resolveArticlePage";
import { resolveProductPage } from "./resolveProductPage";
@@ -6,12 +7,18 @@ export type SlugResult =
| ReturnType<typeof resolveProductPage>;
export function findBySlug(slug?: string): SlugResult | null {
if (!slug) return null;
if (!slug || slug.trim() === '') {
return null;
}
// PRODUCT
const product = resolveProductPage(slug);
if (product) return product;
// ARTICLE
return resolveArticlePage(slug);
const articler = resolveArticlePage(slug);
if (articler) return articler;
// 404
return null;
}