import { Box, Button, Center, Image, Stack, Text, Title, useMantineTheme } from '@mantine/core'; import { useDisclosure } from '@mantine/hooks'; import { IconArrowRight } from '@tabler/icons-react'; import fs from 'fs'; import { GetServerSideProps, InferGetServerSidePropsType } from 'next'; import Head from 'next/head'; import { OnboardingSteps } from '~/components/Onboarding/onboarding-steps'; import { ThemeSchemeToggle } from '~/components/ThemeSchemeToggle/ThemeSchemeToggle'; import { FloatingBackground } from '~/components/layout/Background/FloatingBackground'; import { prisma } from '~/server/db'; import { getConfig } from '~/tools/config/getConfig'; import { getServerSideTranslations } from '~/tools/server/getServerSideTranslations'; export default function OnboardPage({ configSchemaVersions, }: InferGetServerSidePropsType) { const { fn, colors, colorScheme } = useMantineTheme(); const background = colorScheme === 'dark' ? 'dark.6' : 'gray.1'; const [onboardingSteps, { open: showOnboardingSteps }] = useDisclosure(false); const isUpgradeFromSchemaOne = configSchemaVersions.includes(1); return ( <> Onboard • Homarr
Homarr Logo
{onboardingSteps ? ( ) : (
Welcome to Homarr! Your favorite dashboard has received a big upgrade.
We'll help you update within the next few steps
)}
); } export const getServerSideProps: GetServerSideProps = async (ctx) => { const userCount = await prisma.user.count(); if (userCount >= 1) { return { notFound: true, }; } const files = fs.readdirSync('./data/configs').filter((file) => file.endsWith('.json')); const configs = files.map((file) => getConfig(file)); const configSchemaVersions = configs.map((config) => config.schemaVersion); const translations = await getServerSideTranslations(['password-requirements'], ctx.locale, ctx.req, ctx.res); return { props: { ...translations, configSchemaVersions: configSchemaVersions, }, }; };