Replace the landing with the artifact design and rebuild the admin in Ant Design.
Adds consultation leads, section editors, and the one-time content reset for this release. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -1,58 +1,56 @@
|
||||
<template>
|
||||
<div v-if="site">
|
||||
<SiteNavbar
|
||||
:brand="site.settings.brandName"
|
||||
:logo-url="site.settings.logoUrl"
|
||||
:timezone="site.settings.timezone"
|
||||
/>
|
||||
<main>
|
||||
<HeroSection :data="site.sections.hero" />
|
||||
<section class="relative overflow-hidden py-16 md:py-24">
|
||||
<div class="w-[110%] -translate-x-[5%] -rotate-2 bg-volt py-4 text-ink md:py-5 rtl:translate-x-[5%]">
|
||||
<SiteMarquee
|
||||
:items="site.sections.marquee.items"
|
||||
:duration="26"
|
||||
class-name="font-display text-xl font-bold tracking-[-0.01em] md:text-3xl"
|
||||
item-class-name="mx-4 md:mx-6"
|
||||
separator-class-name="text-ink/50"
|
||||
/>
|
||||
</div>
|
||||
</section>
|
||||
<ManifestoSection
|
||||
:data="site.sections.manifesto"
|
||||
:intro="{ body: site.sections.hero.body, cta: site.sections.hero.cta }"
|
||||
/>
|
||||
<ServicesSection :data="site.sections.services" />
|
||||
<WorkSection :data="site.sections.work" />
|
||||
<ProcessSection :data="site.sections.process" />
|
||||
<StatsSection :data="site.sections.stats" />
|
||||
<TeamSection :data="site.sections.team" />
|
||||
</main>
|
||||
<SiteFooter
|
||||
:brand="site.settings.brandName"
|
||||
:email="site.settings.email"
|
||||
:phone="site.settings.phone"
|
||||
:address="site.settings.address"
|
||||
:socials="site.settings.socials"
|
||||
:data="site.sections.footer"
|
||||
/>
|
||||
</div>
|
||||
<div v-else class="grid min-h-screen place-items-center text-ash">
|
||||
Unable to load site content. Is the API running?
|
||||
<div>
|
||||
<HeroSection />
|
||||
<MetricsBar />
|
||||
<FeaturesSection />
|
||||
<SolutionsSection />
|
||||
<TestimonialsSection />
|
||||
<CtaBanner />
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
const { data: site } = await useAsyncData("public-site", () => fetchPublicSite(), {
|
||||
// always refetch so admin edits show up after refresh
|
||||
getCachedData: () => undefined,
|
||||
});
|
||||
const homePage = computed(() => site.value?.pages?.find((p: any) => p.key === "home"));
|
||||
applyPageSeo(homePage.value?.seo);
|
||||
const { settings, pageSeo, section } = useSiteContent();
|
||||
const { siteUrl } = usePageSeo(pageSeo("home"));
|
||||
const hero = section("hero");
|
||||
|
||||
const loaderTitle = useState("intro-loader-title", () => "هوشافزار منتک");
|
||||
watchEffect(() => {
|
||||
const hero = site.value?.sections?.hero as { loaderTitle?: string } | undefined;
|
||||
if (hero?.loaderTitle) loaderTitle.value = hero.loaderTitle;
|
||||
useJsonLd(() => {
|
||||
const s = settings.value;
|
||||
const sameAs = s.socials.map((x) => x.url).filter((u) => /^https?:\/\//.test(u));
|
||||
return [
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "Organization",
|
||||
"@id": `${siteUrl}/#organization`,
|
||||
name: s.brandName,
|
||||
alternateName: "Montech",
|
||||
url: `${siteUrl}/`,
|
||||
logo: s.logoUrl ? new URL(s.logoUrl, siteUrl).toString() : `${siteUrl}/brand/logo.svg`,
|
||||
email: s.email,
|
||||
telephone: s.phone,
|
||||
address: { "@type": "PostalAddress", addressLocality: s.address, addressCountry: "IR" },
|
||||
...(sameAs.length ? { sameAs } : {}),
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebSite",
|
||||
"@id": `${siteUrl}/#website`,
|
||||
url: `${siteUrl}/`,
|
||||
name: s.brandName,
|
||||
inLanguage: "fa-IR",
|
||||
publisher: { "@id": `${siteUrl}/#organization` },
|
||||
},
|
||||
{
|
||||
"@context": "https://schema.org",
|
||||
"@type": "WebPage",
|
||||
"@id": `${siteUrl}/#webpage`,
|
||||
url: `${siteUrl}/`,
|
||||
name: `${hero.value.titleLine1} ${hero.value.titleHighlight}`,
|
||||
description: hero.value.subtitle,
|
||||
inLanguage: "fa-IR",
|
||||
isPartOf: { "@id": `${siteUrl}/#website` },
|
||||
about: { "@id": `${siteUrl}/#organization` },
|
||||
},
|
||||
];
|
||||
});
|
||||
</script>
|
||||
|
||||
Reference in New Issue
Block a user