import pick from "lodash/pick";
import { NextIntlClientProvider } from "next-intl";
import { getMessages } from "next-intl/server";

interface PageMessagesProviderProps {
  children: React.ReactNode;
  namespaces: string[];
}

/**
 * Wraps children with NextIntlClientProvider, picking only
 * the specified message namespaces. Used in pages to provide
 * page-specific translations without loading the full ~150KB messages file.
 */
export async function PageMessagesProvider({
  namespaces,
  children,
}: PageMessagesProviderProps) {
  const messages = await getMessages();

  return (
    <NextIntlClientProvider messages={pick(messages, namespaces)}>
      {children}
    </NextIntlClientProvider>
  );
}
