Validate dynamic route ID
❔Advice
When creating dynamic routes in Nextjs, how do we validate that the slug is a valid ID?
This is what I have so far:
This is what I have so far:
import { preloadQuery } from "convex/nextjs";
import { api } from "@/convex/_generated/api";
import OrderDetails from "@/components/order-details";
export default async function OrderPage({
params,
}: {
params: Promise<{ orderId: string }>;
}) {
const orderId = await params;
try {
const preloadedOrder = await preloadQuery(api.orders.getOrder, orderId);
} catch (err) {
console.log("invalid id", err);
return <div>Invalid order id</div>;
}
return (
<div>
<OrderDetails />
</div>
);
}import { preloadQuery } from "convex/nextjs";
import { api } from "@/convex/_generated/api";
import OrderDetails from "@/components/order-details";
export default async function OrderPage({
params,
}: {
params: Promise<{ orderId: string }>;
}) {
const orderId = await params;
try {
const preloadedOrder = await preloadQuery(api.orders.getOrder, orderId);
} catch (err) {
console.log("invalid id", err);
return <div>Invalid order id</div>;
}
return (
<div>
<OrderDetails />
</div>
);
}export const getOrder = query({
args: {
orderId: v.id("orders"),
},
handler: async (ctx, args) => {
return await ctx.db.get(args.orderId);
},
});export const getOrder = query({
args: {
orderId: v.id("orders"),
},
handler: async (ctx, args) => {
return await ctx.db.get(args.orderId);
},
});