import { redirect } from 'next/navigation'; import urlJoin from 'url-join'; import StructuredData from '@/components/StructuredData'; import { Locales } from '@/locales/resources'; import { ldModule } from '@/server/ld'; import { metadataModule } from '@/server/metadata'; import { translation } from '@/server/translation'; import { PageProps } from '@/types/next'; import { RouteVariants } from '@/utils/server/routeVariants'; import AssistantsResult from './features/AssistantsResult'; import ModelsResult from './features/ModelsResult'; import PluginsResult from './features/PluginsResult'; import ProvidersResult from './features/ProvidersResult'; type Props = PageProps< { variants: string }, { hl?: Locales; q?: string; type?: 'assistants' | 'plugins' | 'models' | 'providers'; } >; const getSharedProps = async (props: Props) => { const searchParams = await props.searchParams; const { q, type = 'assistants',userid } = searchParams; const { isMobile, locale: hl } = await RouteVariants.getVariantsFromProps(props); const { t, locale } = await translation('metadata', searchParams?.hl || hl); return { isMobile, locale, q, t, type, userid, }; }; export const generateMetadata = async (props: Props) => { const { locale, t } = await getSharedProps(props); return metadataModule.generate({ alternate: true, description: t('discover.description'), locale, title: t('discover.search'), url: '/discover/search', }); }; const Page = async (props: Props) => { const { locale, t, q, type, isMobile,userid } = await getSharedProps(props); console.log(userid,'search88888888888888----') if (!q) redirect(urlJoin(`/discover`, type)); const keywords = decodeURIComponent(q); const ld = ldModule.generate({ description: t('discover.description'), locale, title: t('discover.search'), url: '/discover/search', webpage: { enable: true, search: '/discover/search', }, }); return ( <> {type === 'assistants' && } {type === 'plugins' && } {type === 'models' && } {type === 'providers' && } ); }; Page.DisplayName = 'DiscoverSearch'; export default Page;