diff --git a/.changeset/long-clocks-laugh.md b/.changeset/long-clocks-laugh.md
new file mode 100644
index 00000000..4c2c18e5
--- /dev/null
+++ b/.changeset/long-clocks-laugh.md
@@ -0,0 +1,5 @@
+---
+"@fleek-platform/dashboard": minor
+---
+
+Added Landinmg Page
diff --git a/src/fragments/Home/HomeStyles.ts b/src/fragments/Home/HomeStyles.ts
index 7c288055..96261ccb 100644
--- a/src/fragments/Home/HomeStyles.ts
+++ b/src/fragments/Home/HomeStyles.ts
@@ -23,7 +23,7 @@ export const HomeStyles = {
height: '120vh',
width: '90vw',
- bottom: '-80%',
+ bottom: '-95%',
}),
},
Hero: {
diff --git a/src/pages/LandingPage/index.tsx b/src/pages/LandingPage/index.tsx
index b849ed05..ca594f5c 100644
--- a/src/pages/LandingPage/index.tsx
+++ b/src/pages/LandingPage/index.tsx
@@ -1,56 +1,58 @@
// TODO: This page can be removed
// to favour redirection to website
// the user can login from website
-import { useEffect } from 'react';
-import { Home } from '@/fragments/Home/Home';
import { App } from '../../fragments/App/App';
import { HomeStyles } from '../../fragments/Home/HomeStyles';
import { LayoutHead } from '@/components';
import { LandingPageProvider } from '@/providers/Providers';
-import { useAuthContext } from '../../providers/AuthProvider';
-import { Navbar } from '../../fragments/App/Navbar/Navbar';
-import { Box, Button } from '@/ui';
-import { ExternalLink, FleekLogo, Link } from '@/components';
-import { routes } from '@fleek-platform/utils-routes';
-import { constants } from '@/constants';
-
-const LoginButton = ({ title, handleLogIn }) => (
-
-);
+import { Box } from '@/ui';
+import { FleekLogo } from '@/components';
+import {
+ DynamicEmbeddedWidget,
+ useDynamicContext,
+} from '@dynamic-labs/sdk-react-core';
const HomePage = () => {
- const auth = useAuthContext();
-
- const handleLogIn = () => {
- auth.login('dynamic');
- };
-
- useEffect(() => {
- handleLogIn();
- }, []);
+ const { sdkHasLoaded } = useDynamicContext();
return (
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/src/providers/DynamicProvider.tsx b/src/providers/DynamicProvider.tsx
index a81eacd3..fb792a20 100644
--- a/src/providers/DynamicProvider.tsx
+++ b/src/providers/DynamicProvider.tsx
@@ -10,7 +10,7 @@ import { secrets } from '@/secrets';
import { useCookies } from './CookiesProvider';
import { useGenerateUserSessionDetailsMutation } from '@/generated/graphqlClient';
-import { useRouter } from 'next/router';
+import { useLoading } from './LoadingProvider';
export type DynamicProviderProps = React.PropsWithChildren<{}>;
@@ -22,7 +22,7 @@ export const DynamicProvider: React.FC = ({
const [meQuery] = useMeQuery({ pause: !cookies.values.accessToken });
const [, generateUserSessionDetails] =
useGenerateUserSessionDetailsMutation();
- const router = useRouter();
+ const { showLoading } = useLoading();
return (
= ({
walletConnectors: [EthereumWalletConnectors],
eventsCallbacks: {
onAuthSuccess: async ({ authToken }) => {
+ showLoading();
// TODO: Solved accessToken and projectId here
// thus, remove previous handling elsewhere
const { data, error } = await generateUserSessionDetails({
diff --git a/src/providers/LoadingProvider.tsx b/src/providers/LoadingProvider.tsx
new file mode 100644
index 00000000..997de000
--- /dev/null
+++ b/src/providers/LoadingProvider.tsx
@@ -0,0 +1,41 @@
+import { createContext, useContext, useState } from 'react';
+import { LoadingFullScreen } from '@/components/Loading';
+import { Box } from '@/ui';
+
+type LoadingContextType = {
+ showLoading: () => void;
+ hideLoading: () => void;
+ isLoading: boolean;
+};
+
+const LoadingContext = createContext(undefined);
+
+export const useLoading = () => {
+ const context = useContext(LoadingContext);
+ if (!context) {
+ throw new Error('useLoading must be used within a LoadingProvider');
+ }
+ return context;
+};
+
+export const LoadingProvider: React.FC> = ({
+ children,
+}) => {
+ const [isLoading, setIsLoading] = useState(false);
+
+ const showLoading = () => setIsLoading(true);
+ const hideLoading = () => setIsLoading(false);
+
+ return (
+
+
+ {isLoading && (
+
+
+
+ )}
+ {children}
+
+
+ );
+};
diff --git a/src/providers/PermissionsProvider.tsx b/src/providers/PermissionsProvider.tsx
index 2ba11675..29884691 100644
--- a/src/providers/PermissionsProvider.tsx
+++ b/src/providers/PermissionsProvider.tsx
@@ -17,6 +17,8 @@ const [Provider, useContext] = createContext({
export const PermissionsProvider: React.FC = ({ children }) => {
const { project: data, loading } = useProjectContext();
+ if (!data) return null;
+
return (
({
export const ProjectProvider: React.FC> = ({
children,
}) => {
+ const { hideLoading } = useLoading();
const [isLoading, setIsLoading] = useState(true);
const auth = useAuthContext();
const router = useRouter();
@@ -112,7 +114,11 @@ export const ProjectProvider: React.FC> = ({
return () => clearTimeout(timer);
}, [project, projectsQuery.data]);
- if (isLoading || !auth.accessToken) return ;
+ if (isLoading || !auth.accessToken) {
+ return ;
+ }
+
+ hideLoading();
return (
= ({
return (
-
-
-
-
-
-
-
- {children}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+ {children}
+
+
+
+
+
+
+
+
+
);
@@ -52,9 +57,11 @@ export const LandingPageProvider: React.FC = ({
-
- {children}
-
+
+
+ {children}
+
+