in src/app/(proper_react)/(redesign)/(authenticated)/user/welcome/[[...slug]]/page.tsx [34:86]
export default async function Onboarding(props: Props) {
const searchParams = await props.searchParams;
const params = await props.params;
const session = await getServerSession();
if (!session) {
return <AutoSignIn />;
}
const { slug } = params;
const firstSlug = slug?.[0];
// Only allow no or one specific slug. Otherwise: Respond with 404.
if (
typeof slug !== "undefined" &&
(firstSlug !== FreeScanSlug || slug.length >= 2)
) {
return notFound();
}
const headersList = await headers();
const countryCode = getCountryCode(headersList);
const userIsEligible = await isEligibleForFreeScan(session.user, countryCode);
if (!userIsEligible) {
console.error(
`Subscriber not eligible for free scan, ID: ${session?.user?.subscriber?.id}`,
);
return redirect("/user/dashboard");
}
const allBreachesCount = await getAllBreachesCount();
const previousRoute = getReferrerUrl({
headers: headersList,
referrerParam: searchParams.referrer,
});
const experimentationId = await getExperimentationId(session.user);
const experimentData = await getExperiments({
experimentationId,
countryCode,
locale: getLocale(getL10n(await getAcceptLangHeaderInServerComponents())),
});
return (
<View
user={session.user}
dataBrokerCount={CONST_ONEREP_DATA_BROKER_COUNT}
breachesTotalCount={allBreachesCount}
stepId={firstSlug === FreeScanSlug ? "enterInfo" : "getStarted"}
previousRoute={previousRoute}
experimentData={experimentData["Features"]}
/>
);
}