import OrpheusClient from './OrpheusClient';

type OrpheusPageProps = {
  searchParams?: Promise<Record<string, string | string[] | undefined>>;
};

const BOOLEAN_REDIRECT_VALUES = new Set(['1', 'true', 'yes', 'on', 'chat']);

export default async function OrpheusPage({ searchParams }: OrpheusPageProps) {
  const resolvedSearchParams = searchParams ? await searchParams : {};

  const chatParam = resolvedSearchParams.chat_id;
  const redirectParam = resolvedSearchParams.redirect;

  const initialChatId = Array.isArray(chatParam)
    ? chatParam[0]
    : chatParam || undefined;

  const redirectValue = Array.isArray(redirectParam)
    ? redirectParam[0]
    : redirectParam;

  const redirectToChat =
    typeof redirectValue === 'string' &&
    BOOLEAN_REDIRECT_VALUES.has(redirectValue.toLowerCase());

  return (
    <OrpheusClient
      initialChatId={initialChatId}
      redirectToChat={redirectToChat}
    />
  );
}
