import { headers } from "next/headers";

import { PublicLocaleSuggestion } from "@/components/public-language-controls";
import { resolveLocaleFromCountry } from "@/lib/i18n-config";
import { resolveRequestLocale } from "@/lib/i18n-server";
import { getRequestCountryCode } from "@/lib/request-country";

export async function resolvePublicSuggestedLocale() {
  const locale = await resolveRequestLocale();

  if (locale !== "ko") return null;

  const countryCode = getRequestCountryCode(await headers());
  const countryLocale = countryCode
    ? resolveLocaleFromCountry(countryCode)
    : null;

  return countryLocale === "ko" ? null : countryLocale;
}

export async function PublicLocaleSuggestionForRequest({
  pathname,
}: {
  pathname: string;
}) {
  const countryLocale = await resolvePublicSuggestedLocale();

  return countryLocale ? (
    <PublicLocaleSuggestion
      countryLocale={countryLocale}
      pathname={pathname}
    />
  ) : null;
}
