ŠtosdenferŠ
Convex Community4mo ago
4 replies
Štosdenfer

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:
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);
  },
});
Was this page helpful?