diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index cacd139..f06b92d 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -6,10 +6,7 @@ interface Props { description?: string } -const { - title = 'SOFTCLICK - Российские IT-решения с 2021 года', - description = 'SOFTCLICK - российская IT-компания, специализирующаяся на импортозамещении и внедрении отечественных решений', -} = Astro.props +const { title = '', description = '' } = Astro.props --- diff --git a/src/pages/500.astro b/src/pages/500.astro index 2f94df4..9b8bcaf 100644 --- a/src/pages/500.astro +++ b/src/pages/500.astro @@ -1,9 +1,21 @@ --- import Layout from '../layouts/Layout.astro' import '../styles/globals.css' +import { siteConfigQuery } from '../graphql-documents/site-config.gql.generated' + +let siteTitle = '' +let siteDescription = '' + +try { + const siteResult = await siteConfigQuery.execute() + siteTitle = siteResult.data?.siteConfig?.title ?? '' + siteDescription = siteResult.data?.siteConfig?.description ?? '' +} catch { + // CMS may be unavailable on error pages +} --- - +
500
Мы скоро всё починим
diff --git a/src/pages/[slug].astro b/src/pages/[slug].astro index 6d56844..f51e3f8 100644 --- a/src/pages/[slug].astro +++ b/src/pages/[slug].astro @@ -13,7 +13,10 @@ const [siteResult, menuItemsResult] = await Promise.all([siteConfigQuery.execute if (siteResult.errors?.length) { throw new Error(siteResult.errors.map(e => e.message).join(', ')) } -const contacts = siteResult.data?.siteConfig?.contacts?.filter(c => c != null) ?? [] +const siteConfig = siteResult.data?.siteConfig +const siteTitle = siteConfig?.title ?? '' +const siteDescription = siteConfig?.description ?? '' +const contacts = siteConfig?.contacts?.filter(c => c != null) ?? [] if (menuItemsResult.errors?.length) { throw new Error(menuItemsResult.errors.map(e => e.message).join(', ')) } @@ -51,10 +54,13 @@ const vendors = (category.vendors?.filter(v => v != null) ?? []).map(vendor => ( })) --- - +
-
+
-
+
diff --git a/src/pages/index.astro b/src/pages/index.astro index 4e24092..a8b5cf9 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -26,7 +26,10 @@ if (menuItemsResult.errors?.length) { } const homePage = homeResult.data?.homePage ?? null -const contacts = siteResult.data?.siteConfig?.contacts?.filter(c => c != null) ?? [] +const siteConfig = siteResult.data?.siteConfig +const siteTitle = siteConfig?.title ?? '' +const siteDescription = siteConfig?.description ?? '' +const contacts = siteConfig?.contacts?.filter(c => c != null) ?? [] const menuItems = (menuItemsResult.data?.categories?.filter(c => c != null) ?? []).sort( (a, b) => a.sortOrder - b.sortOrder ) @@ -35,10 +38,10 @@ const solutionCategories = menuItems.filter(c => c.group === Enum_Category_Group const serviceCategories = menuItems.filter(c => c.group === Enum_Category_Group.Service) --- - +
-
+
-
+
diff --git a/src/sections/Footer.tsx b/src/sections/Footer.tsx index 353b1d5..6cf3c35 100644 --- a/src/sections/Footer.tsx +++ b/src/sections/Footer.tsx @@ -7,11 +7,12 @@ import type { SiteConfigContact } from '../lib/cms/contact/types' type CategoryNavItem = NonNullable export interface FooterProps { + siteTitle?: string contacts?: readonly SiteConfigContact[] solutionCategories?: CategoryNavItem[] } -export function Footer({ contacts = [], solutionCategories = [] }: FooterProps) { +export function Footer({ siteTitle = '', contacts = [], solutionCategories = [] }: FooterProps) { return (