Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 1 addition & 3 deletions apps/xi.land/app/(withhero)/layout.tsx
Original file line number Diff line number Diff line change
@@ -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 (
<>
<Hero />
Expand Down
3 changes: 1 addition & 2 deletions apps/xi.land/app/layout.tsx
Original file line number Diff line number Diff line change
@@ -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';
Expand Down Expand Up @@ -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 (
<html lang="ru" suppressHydrationWarning className={`${inter.variable} ${markerHand.variable}`}>
<body>
Expand Down
3 changes: 1 addition & 2 deletions apps/xi.land/app/legal/layout.tsx
Original file line number Diff line number Diff line change
@@ -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) => {
Expand Down
1 change: 0 additions & 1 deletion apps/xi.land/components/CookieBanner/CookieBanner.tsx
Original file line number Diff line number Diff line change
@@ -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';

Expand Down
2 changes: 1 addition & 1 deletion apps/xi.land/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand Down
82 changes: 69 additions & 13 deletions apps/xi.support/app/layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,29 +4,85 @@
import { Inter } from 'next/font/google';
import { Metadata } from 'next';

export const metadata: Metadata = {

Check warning on line 7 in apps/xi.support/app/layout.tsx

View workflow job for this annotation

GitHub Actions / main / lint / lint-and-format

Fast refresh only works when a file only exports components. Use a new file to share constants or functions between components
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({
Expand All @@ -39,7 +95,7 @@

export default function RootLayout({ children }: { children: ReactNode }) {
return (
<html lang="en" className={inter.variable}>
<html lang="ru" className={inter.variable}>
<body className="overflow-x-hidden">{children}</body>
</html>
);
Expand Down
2 changes: 1 addition & 1 deletion apps/xi.support/app/not-found.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ export default function NotFound() {
<div className="my-16">
<div>
Если ошибка повторяется — напишите нам об этом{' '}
<a className="text-brand-80" href="mailto:xieffect@yandex.ru">
<a className="text-brand-80" href="mailto:support@sovlium.ru">
<Mail className="inline-block fill-brand-80" />
<span className='inline-block relative ml-1 after:block after:content-[""] after:left-0 after:bottom-0 after:w-full after:h-[1px] after:bg-brand-20'>
на электронную почту
Expand Down
36 changes: 22 additions & 14 deletions apps/xi.support/components/Common/HeaderDoc.tsx
Original file line number Diff line number Diff line change
@@ -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 = () => (
<div className="w-full h-[72px] md:h-[112px] 2xl:h-[176px] p-4 md:p-8 2xl:py-16 2xl:px-40 flex justify-center items-center flex-row z-10">
<div className="w-full max-w-[1920px] flex flex-row justify-between items-center gap-4">
<NextLink href="/">
<Image src="/xisupportlight.webp" alt="xi.support logo" height={24} width={243} />
</NextLink>
<Button variant="default" className="ml-auto w-24 z-10 max-sm:hidden" asChild>
<NextLink href="https://app.xieffect.ru/signin">Войти</NextLink>
</Button>
<Button
variant="secondary"
className="w-[214px] z-10 max-sm:hidden border-2 border-gray-30"
asChild
>
<NextLink href="https://app.xieffect.ru/signup">Зарегистрироваться</NextLink>
</Button>
<Link href="/">
<Image
src="/logoforwhite.svg"
alt="Sovlium Support logo"
width={216}
height={64}
className="h-[24px] w-auto sm:h-[40px]"
/>
</Link>
<div className="hidden md:flex items-center gap-1.5 lg:gap-2.5 xl:gap-4 ml-auto">
<Button
asChild
variant="secondary"
className="text-sm lg:text-m-base md:px-3 lg:px-auto xl:w-53.5 bg-brand-0 bg-brand-0 dark:text-brand-80 hover:bg-brand-80 hover:text-brand-0 dark:hover:bg-brand-80 active:bg-brand-20 dark:active:bg-brand-20 focus:bg-brand-20 dark:focus:bg-brand-20"
>
<Link href="https://app.sovlium.ru/signup">Зарегистрироваться</Link>
</Button>
<Button asChild className="text-sm lg:text-m-base md:px-3 lg:px-auto xl:w-24">
<Link href="https://app.sovlium.ru/signin">Войти</Link>
</Button>
</div>
</div>
</div>
);
35 changes: 22 additions & 13 deletions apps/xi.support/components/Common/HeaderMain.tsx
Original file line number Diff line number Diff line change
@@ -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 = () => (
<div className="static sm:absolute w-full h-[72px] md:h-[112px] 2xl:h-[176px] p-4 md:p-8 2xl:py-16 2xl:px-40 flex justify-center items-center flex-row z-10">
<div className="w-full max-w-[1920px] flex flex-row justify-between items-center gap-4">
<NextLink className="hidden sm:flex" href="/">
<Image src="/xisupport.webp" alt="xi.support logo" height={24} width={243} />
</NextLink>
<NextLink className="flex sm:hidden" href="/">
<Image src="/xisupportlight.webp" alt="xi.support logo" height={24} width={243} />
</NextLink>
<Button variant="default" className="ml-auto w-24 z-10 max-sm:hidden" asChild>
<NextLink href="https://app.xieffect.ru/signin">Войти</NextLink>
</Button>
<Button variant="secondary" className="w-[214px] z-10 max-sm:hidden border-none" asChild>
<NextLink href="https://app.xieffect.ru/signup">Зарегистрироваться</NextLink>
</Button>
<Link href="/">
<Image
src="/logofordark.svg"
alt="Sovlium Support logo"
width={216}
height={64}
className="h-[24px] w-auto sm:h-[40px]"
/>
</Link>
<div className="hidden md:flex items-center gap-1.5 lg:gap-2.5 xl:gap-4 ml-auto">
<Button
asChild
variant="secondary"
className="text-sm lg:text-m-base md:px-3 lg:px-auto xl:w-53.5 bg-brand-0 dark:text-brand-80 hover:bg-brand-80 hover:text-brand-0 dark:hover:bg-brand-80 active:bg-brand-20 dark:active:bg-brand-20 focus:bg-brand-20 dark:focus:bg-brand-20"
>
<Link href="https://app.sovlium.ru/signup">Зарегистрироваться</Link>
</Button>
<Button asChild className="text-sm lg:text-m-base md:px-3 lg:px-auto xl:w-24">
<Link href="https://app.sovlium.ru/signin">Войти</Link>
</Button>
</div>
</div>
</div>
);
Expand Down
53 changes: 51 additions & 2 deletions apps/xi.support/components/Common/Layout.tsx
Original file line number Diff line number Diff line change
@@ -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 }) => (
<>
<main className="w-screen">{children}</main>
<Footer />
<Footer
topContent={<></>}
sections={sections}
logoPath="/logofordark.svg"
classNameFooter="bg-gray-100 rounded-t-[32px] xl:rounded-t-[64px]"
/>
</>
);
14 changes: 10 additions & 4 deletions apps/xi.support/components/HomePage/CallToAction.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,22 @@

import { Button } from '@xipkg/button';
import { TelegramFilled } from '@xipkg/icons';
import NextLink from 'next/link';

export const CallToAction = () => (
<section className="flex flex-col justify-center items-center py-16 px-8 sm:py-32">
<div className="w-full max-w-[1920px] flex flex-col justify-center items-center gap-4">
<h3 className="font-medium text-[24px] sm:text-[40px] xl:text-[64px] leading-[31.2px] sm:leading-[52px] xl:leading-[83.2px] text-gray-100">
<h3 className="font-medium text-[24px] sm:text-[40px] xl:text-[48px] leading-[31.2px] sm:leading-[52px] xl:leading-[83.2px] text-gray-100">
Не нашлось ответа?
</h3>
<Button className="h-8 sm:h-[56px] xl:h-[84px] font-medium text-sm sm:text-xl xl:text-[30px] xl:leading-[42px] rounded-md sm:rounded-xl xl:rounded-[18px] pl-3 sm:pl-6 xl:pl-9 pr-2 sm:pr-3 xl:pr-[18px] mt-4 sm:mt-8">
Написать в телеграм
<TelegramFilled className="fill-gray-0 !size-4 sm:!size-8 xl:!size-12 ml-[6px] sm:ml-4 xl:ml-6" />
<Button
className="h-8 sm:h-[56px] xl:h-[84px] font-medium text-sm sm:text-xl xl:text-[30px] xl:leading-[42px] rounded-md sm:rounded-xl xl:rounded-[18px] pl-3 sm:pl-6 xl:pl-9 pr-2 sm:pr-3 xl:pr-[18px] mt-4 sm:mt-8"
asChild
>
<NextLink href="https://t.me/sovlium_support_bot" target="_blank" rel="noopener noreferrer">
Написать в телеграм
<TelegramFilled className="fill-gray-0 !size-4 sm:!size-8 xl:!size-12 ml-[6px] sm:ml-4 xl:ml-6" />
</NextLink>
</Button>
</div>
</section>
Expand Down
2 changes: 1 addition & 1 deletion apps/xi.support/components/HomePage/Hero.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ export const Hero = () => (
<div className="w-full z-10">
<div className="text-[24px] leading-[31.2px] sm:text-[48px] md:text-[64px] sm:leading-[62.4px] md:leading-[83.2px] text-gray-100 sm:text-gray-0 font-medium">
<h2>Привет 👋</h2>
<h2>Это база знаний xi.effect</h2>
<h2>Это база знаний sovlium</h2>
</div>
<p className="text-[14px] leading-[18.2px] mb-4 sm:text-[20px] sm:leading-[32px] md:text-2xl font-normal sm:mb-8 text-gray-90 sm:text-gray-10">
Рассказываем как пользоваться приложением
Expand Down
Loading
Loading