export default async function Onboarding()

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"]}
    />
  );
}