--- import Layout from "../../../layouts/Layout.astro"; import { getSellersByIds, getSite, getSiteConfig, getSiteHomePage } from "../../../data/api-client"; import { genericPageForSeller } from "../../../lib/page-from-models"; import { SupportedLocales } from "../../../data/internals/LocalizedT"; import type { Page } from "../../../data/models/multis/Page"; import type { Site } from "../../../data/models/singles/Site"; import { pick as pickLanguage } from "../../../lib/accept-language-parser"; import { overrideLocaleFromUrl, localeFromLang } from "../../../lib/locales"; import Banner from "../../../components/Banner.astro"; import ComponentRouter from "../../../components/ComponentRouter.astro"; import Disclaimers from "../../../components/Disclaimers.astro"; const { sellerLookup, resource, id } = Astro.params; const locale = overrideLocaleFromUrl(sellerLookup!, localeFromLang(pickLanguage(['en', 'es', 'fr'], Astro.request.headers.get('Accept-Language')||'en-US', { loose: true })||'en')); const sellerLookupParts = sellerLookup?.split('/')||[]; if (sellerLookupParts?.length < 2) { return Astro.rewrite(`${locale}/404/`); } const sellerId = sellerLookupParts[1]; const sellerDto = await getSellersByIds(sellerId); if (sellerDto.items.length < 1) { return Astro.rewrite(`${locale}/404/`); } // else if (sellerDto.items[0].data && sellerDto.items[0].data.sellerPage && sellerDto.items[0].data.sellerPage.iv && sellerDto.items[0].data.sellerPage.iv.length) { // return Astro.rewrite(`/views/pages/${locale}/${sellerDto.items[0].data.sellerPage.iv[0]}`); // } const siteConfigDto = await getSiteConfig(); const siteConfig = siteConfigDto.items[0].data!; const siteDto = await getSite(); const site: Site = siteDto.items[0].data!; const siteEditToken = siteDto.items[0].editToken; const homePageId = site.homePage.iv[0]; const homePageDto = await getSiteHomePage(site); const homePage: Page = homePageDto.items[0].data!; const seller = sellerDto.items[0].data!; Astro.response.headers.set('Content-Type', 'text/html; charset=utf-8'); const page = genericPageForSeller({seller, sellerId, homePageId}); const pageEditToken = sellerDto.items[0].editToken; const title = page?.title[locale]||''; const metaDescription = page?.seo[locale]?.metaDescription || ''; const siteName = site.siteName[locale]; const pageContent = page?.content[locale]!; const shouldEmbedSquidexSDK = import.meta.env.MODE === 'development'; const renderContext = { ...Astro.params, title, metaDescription, siteName, pageComponents: pageContent, page, site, isHomePage: false, isLocaleHomepage: false, shouldEmbedSquidexSDK, } --- { metaDescription && } { Object.entries(SupportedLocales).map((supportedLanguage) => { return ( ); }) }