diff --git a/apps/xi.land/app/(withhero)/layout.tsx b/apps/xi.land/app/(withhero)/layout.tsx index 71965755..cf737a88 100644 --- a/apps/xi.land/app/(withhero)/layout.tsx +++ b/apps/xi.land/app/(withhero)/layout.tsx @@ -1,8 +1,6 @@ -import React, { ReactNode } from 'react'; - import { Hero } from 'components/main'; -export default function HeroLayout({ children }: { children: ReactNode }) { +export default function HeroLayout({ children }: { children: any }) { return ( <> diff --git a/apps/xi.land/app/layout.tsx b/apps/xi.land/app/layout.tsx index 06d48fed..c5be3356 100644 --- a/apps/xi.land/app/layout.tsx +++ b/apps/xi.land/app/layout.tsx @@ -1,7 +1,6 @@ import { Metadata } from 'next'; import { Inter } from 'next/font/google'; import localFont from 'next/font/local'; -import { ReactNode } from 'react'; import { Header } from 'components/Header'; import { Footer } from 'pkg.landing.footer'; @@ -108,7 +107,7 @@ const inter = Inter({ variable: '--font-inter', }); -export default function RootLayout({ children }: { children: ReactNode }) { +export default function RootLayout({ children }: { children: React.ReactNode }) { return ( diff --git a/apps/xi.land/app/legal/layout.tsx b/apps/xi.land/app/legal/layout.tsx index 8222c95c..0efd74c7 100644 --- a/apps/xi.land/app/legal/layout.tsx +++ b/apps/xi.land/app/legal/layout.tsx @@ -1,11 +1,10 @@ 'use client'; import Link from 'next/link'; -import { ReactNode } from 'react'; import { usePathname } from 'next/navigation'; type LegalLayoutProps = { - children: ReactNode; + children: any; }; const LegalLayout = ({ children }: LegalLayoutProps) => { diff --git a/apps/xi.land/components/CookieBanner/CookieBanner.tsx b/apps/xi.land/components/CookieBanner/CookieBanner.tsx index 0e4673cd..6842b182 100644 --- a/apps/xi.land/components/CookieBanner/CookieBanner.tsx +++ b/apps/xi.land/components/CookieBanner/CookieBanner.tsx @@ -1,7 +1,6 @@ 'use client'; import { Button } from '@xipkg/button'; -import { Link } from '@xipkg/link'; import { motion } from 'motion/react'; import NextLink from 'next/link'; diff --git a/apps/xi.land/package.json b/apps/xi.land/package.json index 501b1431..4f6579e6 100644 --- a/apps/xi.land/package.json +++ b/apps/xi.land/package.json @@ -23,7 +23,7 @@ "@xipkg/form": "^4.2.0", "@xipkg/icons": "^2.4.0", "@xipkg/input": "^2.2.9", - "@xipkg/link": "^1.3.0", + "@xipkg/link": "^2.0.12", "@xipkg/modal": "^4.2.0", "@xipkg/scrollarea": "^2.2.0", "@xipkg/tailwind": "^0.8.1", diff --git a/apps/xi.support/app/layout.tsx b/apps/xi.support/app/layout.tsx index e34bee81..e5c59b71 100644 --- a/apps/xi.support/app/layout.tsx +++ b/apps/xi.support/app/layout.tsx @@ -5,28 +5,84 @@ import { Inter } from 'next/font/google'; import { Metadata } from 'next'; export const metadata: Metadata = { - title: 'xi.support', + title: 'База знаний sovlium - документация и поддержка', description: - 'Страница поддержки пользователей xi.effect - документация приложения и полезные материалы', + 'Документация платформы sovlium для репетиторов. Руководства по использованию функций, ответы на вопросы и полезные материалы.', manifest: '/manifest.webmanifest', keywords: [ - 'xi.effect', - 'кси эффект', - 'эффект', - 'стартап', - 'effect', - 'для репетитора', + 'sovlium', + 'совлиум', + 'платформа для репетиторов', + 'документация', 'поддержка', 'support', - 'xi.support', - 'инструмент', + 'sovlium support', + 'база знаний', + 'руководство', + 'онлайн уроки', + 'видеозвонки', + 'онлайн доска', + 'расписание уроков', + 'контроль оплат', + 'репетиторство', + 'дистанционное обучение', + 'EdTech', + 'образовательная платформа', ], + authors: [{ name: 'Sovlium Team' }], + creator: 'Sovlium', + publisher: 'Sovlium', + formatDetection: { + email: false, + address: false, + telephone: false, + }, + metadataBase: new URL('https://support.sovlium.ru'), + alternates: { + canonical: '/', + }, icons: { icon: [ - { url: '/favicon-for-light.svg' }, - { url: '/favicon-for-dark.svg', media: '(prefers-color-scheme: dark)' }, + { url: '/favicon.svg', type: 'image/svg+xml' }, + { url: '/favicon.ico', sizes: 'any' }, + ], + apple: '/apple-touch-icon.png', + }, + openGraph: { + title: 'База знаний sovlium - документация и поддержка', + description: + 'Документация платформы sovlium для репетиторов. Руководства по использованию функций, ответы на вопросы и полезные материалы.', + url: 'https://support.sovlium.ru', + siteName: 'Sovlium Support', + locale: 'ru_RU', + type: 'website', + images: [ + { + url: 'https://support.sovlium.ru/web-app-manifest-512x512.png', + width: 512, + height: 512, + alt: 'Sovlium Support - База знаний', + }, ], }, + twitter: { + card: 'summary_large_image', + title: 'База знаний sovlium - документация и поддержка', + description: + 'Документация платформы sovlium для репетиторов. Руководства по использованию функций, ответы на вопросы и полезные материалы.', + images: ['https://support.sovlium.ru/web-app-manifest-512x512.png'], + }, + robots: { + index: true, + follow: true, + googleBot: { + index: true, + follow: true, + 'max-video-preview': -1, + 'max-image-preview': 'large', + 'max-snippet': -1, + }, + }, }; const inter = Inter({ @@ -39,7 +95,7 @@ const inter = Inter({ export default function RootLayout({ children }: { children: ReactNode }) { return ( - + {children} ); diff --git a/apps/xi.support/app/not-found.tsx b/apps/xi.support/app/not-found.tsx index 09ff90e5..1c133374 100644 --- a/apps/xi.support/app/not-found.tsx +++ b/apps/xi.support/app/not-found.tsx @@ -25,7 +25,7 @@ export default function NotFound() {
Если ошибка повторяется — напишите нам об этом{' '} - + на электронную почту diff --git a/apps/xi.support/components/Common/HeaderDoc.tsx b/apps/xi.support/components/Common/HeaderDoc.tsx index 8a185f38..dce0e2b1 100644 --- a/apps/xi.support/components/Common/HeaderDoc.tsx +++ b/apps/xi.support/components/Common/HeaderDoc.tsx @@ -1,25 +1,33 @@ 'use client'; import Image from 'next/image'; -import NextLink from 'next/link'; +import Link from 'next/link'; import { Button } from '@xipkg/button'; export const HeaderDoc = () => (
- - xi.support logo - - - + + Sovlium Support logo + +
+ + +
); diff --git a/apps/xi.support/components/Common/HeaderMain.tsx b/apps/xi.support/components/Common/HeaderMain.tsx index 37b6bacf..0dccba37 100644 --- a/apps/xi.support/components/Common/HeaderMain.tsx +++ b/apps/xi.support/components/Common/HeaderMain.tsx @@ -1,24 +1,33 @@ 'use client'; import Image from 'next/image'; -import NextLink from 'next/link'; +import Link from 'next/link'; import { Button } from '@xipkg/button'; export const HeaderMain = () => (
- - xi.support logo - - - xi.support logo - - - + + Sovlium Support logo + +
+ + +
); diff --git a/apps/xi.support/components/Common/Layout.tsx b/apps/xi.support/components/Common/Layout.tsx index 360766e8..f8aebd54 100644 --- a/apps/xi.support/components/Common/Layout.tsx +++ b/apps/xi.support/components/Common/Layout.tsx @@ -1,9 +1,58 @@ import { ReactNode } from 'react'; -import { Footer } from 'pkg.footer'; +import { Footer } from 'pkg.landing.footer'; + +interface SectionLink { + link: string; + title: string; +} + +interface Section { + title: string; + links: SectionLink[]; +} + +const sections: Section[] = [ + { + title: 'Продукт', + links: [ + { link: 'https://sovlium.ru/calendar', title: 'Расписание' }, + { link: 'https://sovlium.ru/calls', title: 'Видеозвонки' }, + { link: 'https://sovlium.ru/whiteboard', title: 'Онлайн-доска' }, + { link: 'https://sovlium.ru/materials', title: 'Материалы' }, + { link: 'https://sovlium.ru/payments', title: 'Оплаты' }, + ], + }, + { + title: 'Клиентам', + links: [ + { link: 'https://sovlium.ru/prices', title: 'Тарифы' }, + { link: 'https://support.sovlium.ru/', title: 'Поддержка' }, + { link: 'https://t.me/sovlium_support_bot', title: 'Написать в Telegram' }, + ], + }, + { + title: 'Компания', + links: [ + { link: 'https://sovlium.ru/about', title: 'О нас' }, + { link: 'https://sovlium.ru/blog', title: 'Блог' }, + { link: 'https://sovlium.ru/legal/terms', title: 'Документы' }, + { link: 'https://vacancy.sovlium.ru/', title: 'Вакансии' }, + ], + }, + { + title: 'Социальные сети', + links: [{ link: 'https://t.me/sovlium', title: 'Telegram' }], + }, +]; export const Layout = ({ children }: { children: ReactNode }) => ( <>
{children}
-