diff --git a/web/src/app/auth/login/_components/LoginConfigProvider.tsx b/web/src/app/app/_components/LoginComponents/LoginConfigProvider.tsx
similarity index 97%
rename from web/src/app/auth/login/_components/LoginConfigProvider.tsx
rename to web/src/app/app/_components/LoginComponents/LoginConfigProvider.tsx
index f83ac0301..46d2a5fec 100644
--- a/web/src/app/auth/login/_components/LoginConfigProvider.tsx
+++ b/web/src/app/app/_components/LoginComponents/LoginConfigProvider.tsx
@@ -1,3 +1,5 @@
+'use client';
+
import { ConfigProvider } from 'antd';
import { ThemeConfig } from 'antd/lib';
import React from 'react';
diff --git a/web/src/app/auth/login/_components/LoginForm.tsx b/web/src/app/app/_components/LoginComponents/LoginForm.tsx
similarity index 100%
rename from web/src/app/auth/login/_components/LoginForm.tsx
rename to web/src/app/app/_components/LoginComponents/LoginForm.tsx
diff --git a/web/src/app/auth/login/_components/PolicyCheck.tsx b/web/src/app/app/_components/LoginComponents/PolicyCheck.tsx
similarity index 100%
rename from web/src/app/auth/login/_components/PolicyCheck.tsx
rename to web/src/app/app/_components/LoginComponents/PolicyCheck.tsx
diff --git a/web/src/app/app/_components/LoginComponents/WelcomeSidebar.tsx b/web/src/app/app/_components/LoginComponents/WelcomeSidebar.tsx
new file mode 100644
index 000000000..024891455
--- /dev/null
+++ b/web/src/app/app/_components/LoginComponents/WelcomeSidebar.tsx
@@ -0,0 +1,41 @@
+import React from 'react';
+import { Text } from '@/components/ui/text';
+import Link from 'next/link';
+import { BusterFrameLogoWithText } from '@/assets';
+import { BUSTER_HOME_PAGE } from '@/routes/externalRoutes';
+
+export const WelcomeToBuster: React.FC<{
+ hasUser: boolean;
+}> = () => {
+ return (
+
+
+
+
+
+
+
+
+
+ Welcome to Buster.
+
+
Stand up a PoC in 30 minutes.
+
+
+
+
+ );
+};
diff --git a/web/src/app/auth/login/_components/submit-button.tsx b/web/src/app/app/_components/LoginComponents/submit-button.tsx
similarity index 100%
rename from web/src/app/auth/login/_components/submit-button.tsx
rename to web/src/app/app/_components/LoginComponents/submit-button.tsx
diff --git a/web/src/app/app/new-user/page.tsx b/web/src/app/app/new-user/page.tsx
index 561514c1a..cadf34e24 100644
--- a/web/src/app/app/new-user/page.tsx
+++ b/web/src/app/app/new-user/page.tsx
@@ -1,6 +1,6 @@
import React from 'react';
-import { LoginConfigProvider } from '@/app/auth/login/_components/LoginConfigProvider';
import { NewUserController } from './_NewUserController';
+import { LoginConfigProvider } from '../_components/LoginComponents/LoginConfigProvider';
export default function NewUserPage() {
return (
diff --git a/web/src/app/auth/layout.tsx b/web/src/app/auth/layout.tsx
index d8bea93f1..23e2aea3d 100644
--- a/web/src/app/auth/layout.tsx
+++ b/web/src/app/auth/layout.tsx
@@ -1,13 +1,13 @@
import React, { PropsWithChildren } from 'react';
-import { WelcomeToBuster } from './login/_components/WelcomeSidebar';
+import { WelcomeToBuster } from '@appComponents/LoginComponents/WelcomeSidebar';
import { Metadata } from 'next';
-import { LoginConfigProvider } from './login/_components/LoginConfigProvider';
+import { LoginConfigProvider } from '@appComponents/LoginComponents/LoginConfigProvider';
export const metadata: Metadata = {
title: 'Buster Login'
};
-const LoginLayout: React.FC> = ({ children }) => {
+const LoginLayout: React.FC> = async ({ children }) => {
return (
diff --git a/web/src/app/auth/login/_components/WelcomeSidebar.tsx b/web/src/app/auth/login/_components/WelcomeSidebar.tsx
deleted file mode 100644
index 9bf9354e9..000000000
--- a/web/src/app/auth/login/_components/WelcomeSidebar.tsx
+++ /dev/null
@@ -1,66 +0,0 @@
-import React from 'react';
-import { BusterFrameLogoWithText } from '@/assets/svg/BusterFrameLogoWithText';
-import Link from 'next/link';
-import { BUSTER_HOME_PAGE } from '@/routes/externalRoutes';
-import PodiumImage from '@/assets/png/podium.png';
-import ArtifactImage from '@/assets/png/artifact.png';
-import AdobeImage from '@/assets/png/adobe.png';
-import BambooImage from '@/assets/png/bamboo.png';
-import CartaImage from '@/assets/png/carta.png';
-import GuideCX from '@/assets/png/guidecx.png';
-import { Text } from '@/components/ui';
-
-export const WelcomeToBuster: React.FC<{
- hasUser: boolean;
-}> = () => {
- const allImages = [ArtifactImage, AdobeImage, BambooImage, CartaImage, GuideCX, PodiumImage];
-
- return (
-
-
-
-
-
-
-
-
-
- Welcome to Buster.
-
-
Stand up a PoC in 30 minutes.
-
-
-
- {/*
-
Join startups & enterprises
-
- {allImages.map((image, index) => {
- return (
-

- );
- })}
-
-
*/}
- {/*
*/}
-
-
-
-
- );
-};
diff --git a/web/src/app/auth/login/page.tsx b/web/src/app/auth/login/page.tsx
index e149c0bb7..b8d64ae4f 100644
--- a/web/src/app/auth/login/page.tsx
+++ b/web/src/app/auth/login/page.tsx
@@ -1,4 +1,4 @@
-import { LoginForm } from './_components/LoginForm';
+import { LoginForm } from '@appComponents/LoginComponents/LoginForm';
import { useBusterSupabaseAuthMethods } from '@/hooks/useBusterSupabaseAuthMethods';
import { redirect } from 'next/navigation';
import { BusterRoutes, createBusterRoute } from '@/routes';
diff --git a/web/src/app/auth/reset-password-email/_ResetEmailForm.tsx b/web/src/app/auth/reset-password-email/_ResetEmailForm.tsx
index dd7c56fc9..1cb353f69 100644
--- a/web/src/app/auth/reset-password-email/_ResetEmailForm.tsx
+++ b/web/src/app/auth/reset-password-email/_ResetEmailForm.tsx
@@ -4,11 +4,11 @@ import { createBusterRoute, BusterRoutes } from '@/routes';
import { isValidEmail, timeout } from '@/utils';
import { Button, Input, Result } from 'antd';
import Link from 'next/link';
-import React, { useContext, useState } from 'react';
-import { useStyles } from '../login/_components/LoginForm';
+import React, { useState } from 'react';
import { Title, Text } from '@/components/ui';
import { useMemoizedFn } from 'ahooks';
import { useBusterNotifications } from '@/context/BusterNotifications';
+import { useStyles } from '@appComponents/LoginComponents/LoginForm';
export const ResetEmailForm: React.FC<{
queryEmail: string;
diff --git a/web/src/app/auth/reset-password/_ResetPasswordForm.tsx b/web/src/app/auth/reset-password/_ResetPasswordForm.tsx
index cdbf68a9d..58f5149ed 100644
--- a/web/src/app/auth/reset-password/_ResetPasswordForm.tsx
+++ b/web/src/app/auth/reset-password/_ResetPasswordForm.tsx
@@ -3,7 +3,6 @@
import { Title } from '@/components/ui';
import React, { useState } from 'react';
import { Button, Input } from 'antd';
-import { PolicyCheck } from '../login/_components/PolicyCheck';
import { useMemoizedFn } from 'ahooks';
import { BusterAppRoutes } from '@/routes/busterRoutes/busterAppRoutes';
import type { User } from '@supabase/supabase-js';
@@ -12,6 +11,7 @@ import { useRouter } from 'next/navigation';
import { createBusterRoute } from '@/routes';
import { Result } from 'antd';
import { useBusterNotifications } from '@/context/BusterNotifications';
+import { PolicyCheck } from '@appComponents/LoginComponents/PolicyCheck';
export const ResetPasswordForm: React.FC<{
supabaseUser: User;
diff --git a/web/src/context/BusterStyles/BusterStyles.tsx b/web/src/context/BusterStyles/BusterStyles.tsx
index 53838d18e..40f7f01e4 100644
--- a/web/src/context/BusterStyles/BusterStyles.tsx
+++ b/web/src/context/BusterStyles/BusterStyles.tsx
@@ -2,7 +2,7 @@
import 'react-material-symbols/rounded';
import React, { PropsWithChildren } from 'react';
-import { usePreventBackwardNavigation } from '@/hooks';
+import { usePreventBackwardNavigation } from '@/hooks/dom/usePreventBackwardsNavigation';
import { App, ConfigProvider, theme, ThemeConfig } from 'antd';
import {
busterAppStyleConfig,
diff --git a/web/src/controllers/AppPasswordAccess.tsx b/web/src/controllers/AppPasswordAccess.tsx
index 6f65f6225..aaca3d0e7 100644
--- a/web/src/controllers/AppPasswordAccess.tsx
+++ b/web/src/controllers/AppPasswordAccess.tsx
@@ -4,7 +4,7 @@ import { BusterLogo } from '@/assets/svg/BusterLogo';
import React, { useRef } from 'react';
import { Title } from '@/components/ui';
import { Button, Input, InputRef, Typography } from 'antd';
-import { LoginConfigProvider } from '@/app/auth/login/_components/LoginConfigProvider';
+import { LoginConfigProvider } from '@appComponents/LoginComponents/LoginConfigProvider';
import { ShareAssetType } from '@/api/asset_interfaces';
import { useBusterAssetsContextSelector } from '@/context/Assets/BusterAssetsProvider';
import { useMemoizedFn } from 'ahooks';
diff --git a/web/src/hooks/dom/useConfetti.tsx b/web/src/hooks/dom/useConfetti.tsx
index 6982ca345..f28828730 100644
--- a/web/src/hooks/dom/useConfetti.tsx
+++ b/web/src/hooks/dom/useConfetti.tsx
@@ -1,3 +1,5 @@
+'use client';
+
import React from 'react';
import confetti from 'canvas-confetti';
import { Options } from 'canvas-confetti';
diff --git a/web/src/hooks/dom/useOnWindowResize.tsx b/web/src/hooks/dom/useOnWindowResize.tsx
index 899967de7..19874d068 100644
--- a/web/src/hooks/dom/useOnWindowResize.tsx
+++ b/web/src/hooks/dom/useOnWindowResize.tsx
@@ -1,3 +1,5 @@
+'use client';
+
import React from 'react';
const useOnWindowResize = (handler: { (): void }) => {
diff --git a/web/src/hooks/dom/useSmoothScroll.tsx b/web/src/hooks/dom/useSmoothScroll.tsx
index 75a11cd17..8e5a90119 100644
--- a/web/src/hooks/dom/useSmoothScroll.tsx
+++ b/web/src/hooks/dom/useSmoothScroll.tsx
@@ -1,3 +1,5 @@
+'use client';
+
import { useRef, useState } from 'react';
import { useMemoizedFn, useThrottleFn, useUpdateEffect } from 'ahooks';
diff --git a/web/src/hooks/dom/useWindowFocus.ts b/web/src/hooks/dom/useWindowFocus.ts
index 83bb084a5..6b9a7a49e 100644
--- a/web/src/hooks/dom/useWindowFocus.ts
+++ b/web/src/hooks/dom/useWindowFocus.ts
@@ -1,3 +1,5 @@
+'use client';
+
import { useEffect } from 'react';
import isFunction from 'lodash/isFunction';
diff --git a/web/src/styles/busterAntDStyleConfig.tsx b/web/src/styles/busterAntDStyleConfig.tsx
index 8c10c14b2..caf648ca0 100644
--- a/web/src/styles/busterAntDStyleConfig.tsx
+++ b/web/src/styles/busterAntDStyleConfig.tsx
@@ -1,6 +1,6 @@
import type { ConfigProviderProps, ThemeConfig } from 'antd';
import { createStyles } from 'antd-style';
-import { AppMaterialIcons } from '@/components/ui';
+import { AppMaterialIcons } from '@/components/ui/icons/AppMaterialIcons';
export const busterAppStyleConfig: ThemeConfig = {
token: {