diff --git a/website/next.config.js b/website/next.config.js
index 0fee93b73f..911de0c25c 100644
--- a/website/next.config.js
+++ b/website/next.config.js
@@ -31,30 +31,6 @@ const nextConfig = {
ignoreDuringBuilds: true,
},
async redirects() {
- if (process.env.BYE === "true") {
- return [
- {
- source: "/",
- destination: "/bye",
- permanent: false,
- },
- {
- source: "/dashboard",
- destination: "/bye",
- permanent: false,
- },
- {
- source: "/chat",
- destination: "/bye",
- permanent: false,
- },
- {
- source: "/contributors",
- destination: "https://ykilcher.com/oa-contributors",
- permanent: false,
- },
- ];
- }
if (process.env.MAINTENANCE_MODE !== "true") {
return [];
}
diff --git a/website/src/hooks/env/BrowserEnv.ts b/website/src/hooks/env/BrowserEnv.ts
index 4d863c0d9a..8ed2f357f9 100644
--- a/website/src/hooks/env/BrowserEnv.ts
+++ b/website/src/hooks/env/BrowserEnv.ts
@@ -1,6 +1,7 @@
import { createContext, useContext } from "react";
export interface BrowserConfig {
+ BYE: boolean;
ENABLE_CHAT: boolean;
ENABLE_DRAFTS_WITH_PLUGINS: boolean;
NUM_GENERATED_DRAFTS: number;
diff --git a/website/src/pages/api/config.ts b/website/src/pages/api/config.ts
index 36c4a6b53d..33c9d8c70a 100644
--- a/website/src/pages/api/config.ts
+++ b/website/src/pages/api/config.ts
@@ -4,6 +4,7 @@ import { BrowserConfig } from "src/types/Config";
// don't put sensitive information here
const config: BrowserConfig = {
+ BYE: boolean(process.env.BYE),
ENABLE_CHAT: boolean(process.env.ENABLE_CHAT),
ENABLE_DRAFTS_WITH_PLUGINS: boolean(process.env.ENABLE_DRAFTS_WITH_PLUGINS),
NUM_GENERATED_DRAFTS: Number(process.env.NUM_GENERATED_DRAFTS),
diff --git a/website/src/pages/bye.tsx b/website/src/pages/bye.tsx
index 02ea848d50..0ad9018b04 100644
--- a/website/src/pages/bye.tsx
+++ b/website/src/pages/bye.tsx
@@ -1,4 +1,5 @@
import Image from "next/image";
+import Link from "next/link";
import { Container } from "src/components/Container";
export { getStaticProps } from "src/lib/defaultServerSideProps";
@@ -20,7 +21,7 @@ const ByePage = () => {
Links:
-
- List of contributors
+ List of contributors
-
Paper
diff --git a/website/src/pages/chat/[id].tsx b/website/src/pages/chat/[id].tsx
index b8bb0b81db..8e3cf55f75 100644
--- a/website/src/pages/chat/[id].tsx
+++ b/website/src/pages/chat/[id].tsx
@@ -8,9 +8,12 @@ import { get } from "src/lib/api";
import { ModelInfo, PluginEntry } from "src/types/Chat";
export { getServerSideProps } from "src/lib/defaultServerSideProps";
import useSWRImmutable from "swr/immutable";
+import { useBrowserConfig } from "src/hooks/env/BrowserEnv";
const Chat = () => {
- const { query } = useRouter();
+ const { BYE } = useBrowserConfig();
+ const router = useRouter();
+ const { query } = router;
const id = query.id as string;
const { t } = useTranslation(["common", "chat"]);
const { data: modelInfos } = useSWRImmutable("/api/chat/models", get, {
@@ -20,6 +23,11 @@ const Chat = () => {
keepPreviousData: true,
});
+ if (BYE) {
+ router.push("/bye");
+ return null;
+ }
+
return (
<>
diff --git a/website/src/pages/contributors.tsx b/website/src/pages/contributors.tsx
new file mode 100644
index 0000000000..98610c4fb4
--- /dev/null
+++ b/website/src/pages/contributors.tsx
@@ -0,0 +1,9 @@
+import { useRouter } from "next/router";
+
+const ContributorsPage = () => {
+ const router = useRouter();
+ router.push("https://ykilcher.com/oa-contributors");
+ return null;
+};
+
+export default ContributorsPage;
diff --git a/website/src/pages/dashboard.tsx b/website/src/pages/dashboard.tsx
index 62d2bbdf99..2f6d9c0e84 100644
--- a/website/src/pages/dashboard.tsx
+++ b/website/src/pages/dashboard.tsx
@@ -14,10 +14,12 @@ import { useBrowserConfig } from "src/hooks/env/BrowserEnv";
import { useCurrentLocale } from "src/hooks/locale/useCurrentLocale";
import { API_ROUTES } from "src/lib/routes";
import useSWR from "swr";
+import { useRouter } from "next/router";
const Dashboard = () => {
const { t } = useTranslation(["dashboard", "common", "tasks"]);
- const { ENABLE_CHAT } = useBrowserConfig();
+ const { ENABLE_CHAT, BYE } = useBrowserConfig();
+ const router = useRouter();
const lang = useCurrentLocale();
const { data } = useSWR(API_ROUTES.AVAILABLE_TASK({ lang }), get, {
refreshInterval: 2 * 60 * 1000, //2 minutes
@@ -55,6 +57,11 @@ const Dashboard = () => {
},
};
+ if (BYE) {
+ router.push("/bye");
+ return null;
+ }
+
return (
<>
diff --git a/website/src/pages/index.tsx b/website/src/pages/index.tsx
index 3c33b94367..453d6b7cf7 100644
--- a/website/src/pages/index.tsx
+++ b/website/src/pages/index.tsx
@@ -8,8 +8,10 @@ import { CallToAction } from "src/components/CallToAction";
import { Faq } from "src/components/Faq";
import { Hero } from "src/components/Hero";
export { getDefaultServerSideProps as getStaticProps } from "src/lib/defaultServerSideProps";
+import { useBrowserConfig } from "src/hooks/env/BrowserEnv";
const Home = () => {
+ const { BYE } = useBrowserConfig();
const router = useRouter();
const { status } = useSession();
const { t } = useTranslation();
@@ -19,6 +21,11 @@ const Home = () => {
}
}, [router, status]);
+ if (BYE) {
+ router.push("/bye");
+ return null;
+ }
+
return (
<>
diff --git a/website/src/types/Config.ts b/website/src/types/Config.ts
index 087cc55faa..37de5d9070 100644
--- a/website/src/types/Config.ts
+++ b/website/src/types/Config.ts
@@ -1,4 +1,5 @@
export interface BrowserConfig {
+ BYE: boolean;
ENABLE_CHAT: boolean;
ENABLE_DRAFTS_WITH_PLUGINS: boolean; // Whether draft messages should be generated if plugins are in use
NUM_GENERATED_DRAFTS: number;
diff --git a/website/types/env.d.ts b/website/types/env.d.ts
index 58667dd643..c338c506d7 100644
--- a/website/types/env.d.ts
+++ b/website/types/env.d.ts
@@ -9,6 +9,7 @@ declare global {
ADMIN_USERS: string;
MODERATOR_USERS: string;
INFERENCE_SERVER_HOST: string;
+ BYE: boolean;
ENABLE_CHAT: boolean;
ENABLE_DRAFTS_WITH_PLUGINS: boolean;
NUM_GENERATED_DRAFTS: number;