diff --git a/next.config.js b/next.config.js
index 2e183dbb4..bdf978756 100644
--- a/next.config.js
+++ b/next.config.js
@@ -13,4 +13,11 @@ module.exports = withBundleAnalyzer({
output: 'standalone',
i18n,
transpilePackages: ['@jellyfin/sdk'],
+ redirects: async () => [
+ {
+ source: '/',
+ destination: '/board',
+ permanent: false,
+ },
+ ],
});
diff --git a/src/pages/[slug].tsx b/src/pages/[slug].tsx
deleted file mode 100644
index 4693f9175..000000000
--- a/src/pages/[slug].tsx
+++ /dev/null
@@ -1,68 +0,0 @@
-import { setCookie } from 'cookies-next';
-import fs from 'fs';
-import { GetServerSidePropsContext } from 'next';
-import path from 'path';
-
-import { LoadConfigComponent } from '../components/Config/LoadConfig';
-import { Dashboard } from '../components/Dashboard/Dashboard';
-import Layout from '../components/layout/Layout';
-import { useInitConfig } from '../config/init';
-import { getFallbackConfig } from '../tools/config/getFallbackConfig';
-import { getFrontendConfig } from '../tools/config/getFrontendConfig';
-import { getServerSideTranslations } from '../tools/server/getServerSideTranslations';
-import { dashboardNamespaces } from '../tools/server/translation-namespaces';
-import { ConfigType } from '../types/config';
-import { DashboardServerSideProps } from '../types/dashboardPageType';
-
-export async function getServerSideProps({
- req,
- res,
- locale,
- query,
-}: GetServerSidePropsContext): Promise<{ props: DashboardServerSideProps }> {
- const configName = query.slug as string;
- const configPath = path.join(process.cwd(), 'data/configs', `${configName}.json`);
- const configExists = fs.existsSync(configPath);
-
- const translations = await getServerSideTranslations(dashboardNamespaces, locale, req, res);
-
- if (!configExists) {
- // Redirect to 404
- res.writeHead(301, { Location: '/404' });
- res.end();
- return {
- props: {
- config: getFallbackConfig() as unknown as ConfigType,
- configName,
- ...translations,
- },
- };
- }
-
- const config = await getFrontendConfig(configName as string);
- setCookie('config-name', configName, {
- req,
- res,
- maxAge: 60 * 60 * 24 * 30,
- sameSite: 'strict',
- });
-
- return {
- props: {
- configName,
- config,
- ...translations,
- },
- };
-}
-
-export default function HomePage({ config: initialConfig }: DashboardServerSideProps) {
- useInitConfig(initialConfig);
-
- return (
-
-
-
-
- );
-}
diff --git a/src/pages/index.tsx b/src/pages/index.tsx
deleted file mode 100644
index bfa1eaca8..000000000
--- a/src/pages/index.tsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import { getCookie, setCookie } from 'cookies-next';
-import fs from 'fs';
-import { GetServerSidePropsContext } from 'next';
-import { MainLayout } from '~/components/layout/main';
-
-import { LoadConfigComponent } from '../components/Config/LoadConfig';
-import { Dashboard } from '../components/Dashboard/Dashboard';
-import Layout from '../components/layout/Layout';
-import { useInitConfig } from '../config/init';
-import { getFrontendConfig } from '../tools/config/getFrontendConfig';
-import { getServerSideTranslations } from '../tools/server/getServerSideTranslations';
-import { dashboardNamespaces } from '../tools/server/translation-namespaces';
-import { DashboardServerSideProps } from '../types/dashboardPageType';
-
-export async function getServerSideProps({
- req,
- res,
- locale,
-}: GetServerSidePropsContext): Promise<{ props: DashboardServerSideProps }> {
- // Get all the configs in the /data/configs folder
- // All the files that end in ".json"
- const configs = fs.readdirSync('./data/configs').filter((file) => file.endsWith('.json'));
-
- if (
- !configs.every(
- (config) => JSON.parse(fs.readFileSync(`./data/configs/${config}`, 'utf8')).schemaVersion
- )
- ) {
- // Replace the current page with the migrate page but don't redirect
- // This is to prevent the user from seeing the redirect
- res.writeHead(302, {
- Location: '/migrate',
- });
- res.end();
-
- return { props: {} as DashboardServerSideProps };
- }
-
- let configName = getCookie('config-name', { req, res });
- if (!configName) {
- setCookie('config-name', 'default', {
- req,
- res,
- maxAge: 60 * 60 * 24 * 30,
- sameSite: 'strict',
- });
- configName = 'default';
- }
-
- const translations = await getServerSideTranslations(dashboardNamespaces, locale, req, res);
- const config = await getFrontendConfig(configName as string);
-
- return {
- props: {
- configName: configName as string,
- config,
- ...translations,
- },
- };
-}
-
-export default function HomePage({ config: initialConfig }: DashboardServerSideProps) {
- useInitConfig(initialConfig);
-
- return (
-
-
-
-
- );
-}