update to use segments
This commit is contained in:
@@ -9,8 +9,8 @@ import globals from "@/app.globals.json";
|
|||||||
|
|
||||||
export default function Page() {
|
export default function Page() {
|
||||||
const params = useParams();
|
const params = useParams();
|
||||||
const slug = Array.isArray(params?.slug) ? (params.slug as string[]) : [];
|
const segments = Array.isArray(params?.slug) ? (params.slug as string[]) : [];
|
||||||
const { key } = resolveRoute(slug);
|
const { key } = resolveRoute(segments);
|
||||||
const { root, content } = (schema as any)[key] ?? {};
|
const { root, content } = (schema as any)[key] ?? {};
|
||||||
const data = { root, content, globals };
|
const data = { root, content, globals };
|
||||||
return <Render config={appConfig as any} data={data} />;
|
return <Render config={appConfig as any} data={data} />;
|
||||||
|
|||||||
@@ -14,8 +14,8 @@ import globals from "@/app.globals.json";
|
|||||||
|
|
||||||
export default function EditorPage() {
|
export default function EditorPage() {
|
||||||
const params = useParams();
|
const params = useParams();
|
||||||
const slug = Array.isArray(params?.slug) ? (params.slug as string[]) : [];
|
const segments = Array.isArray(params?.slug) ? (params.slug as string[]) : [];
|
||||||
const { key, path, params: routeParams } = resolveRoute(slug);
|
const { key, path, params: routeParams } = resolveRoute(segments);
|
||||||
const { root, content } = (schema as any)[key] ?? {};
|
const { root, content } = (schema as any)[key] ?? {};
|
||||||
const data = { root, content, globals };
|
const data = { root, content, globals };
|
||||||
|
|
||||||
|
|||||||
@@ -11,8 +11,8 @@ export type ResolvedRoute = {
|
|||||||
params: Record<string, string>;
|
params: Record<string, string>;
|
||||||
};
|
};
|
||||||
|
|
||||||
const resolveRoute = (slug: string[] = []): ResolvedRoute => {
|
const resolveRoute = (segments: string[] = []): ResolvedRoute => {
|
||||||
const path = slug.length === 0 ? "/" : `/${slug.join("/")}`;
|
const path = segments.length === 0 ? "/" : `/${segments.join("/")}`;
|
||||||
|
|
||||||
for (const { key, prefix, param } of TEMPLATE_PATTERNS) {
|
for (const { key, prefix, param } of TEMPLATE_PATTERNS) {
|
||||||
if (path.startsWith(prefix) && path.length > prefix.length) {
|
if (path.startsWith(prefix) && path.length > prefix.length) {
|
||||||
@@ -30,8 +30,8 @@ const resolveRoute = (slug: string[] = []): ResolvedRoute => {
|
|||||||
*/
|
*/
|
||||||
export const useRouteHandle = (): string | undefined => {
|
export const useRouteHandle = (): string | undefined => {
|
||||||
const params = useParams();
|
const params = useParams();
|
||||||
const slug = Array.isArray(params?.slug) ? (params.slug as string[]) : [];
|
const segments = Array.isArray(params?.slug) ? (params.slug as string[]) : [];
|
||||||
return resolveRoute(slug).params.handle;
|
return resolveRoute(segments).params.handle;
|
||||||
};
|
};
|
||||||
|
|
||||||
export default resolveRoute;
|
export default resolveRoute;
|
||||||
|
|||||||
Reference in New Issue
Block a user