diff --git a/apps/dashboard/src/@/styles/globals.css b/apps/dashboard/src/@/styles/globals.css index 8e3f9b529..f8bf56d95 100644 --- a/apps/dashboard/src/@/styles/globals.css +++ b/apps/dashboard/src/@/styles/globals.css @@ -139,3 +139,8 @@ scrollbar-width: none; /* Firefox */ } } + +body, +html { + height: 100%; +} diff --git a/apps/dashboard/src/app/layout.tsx b/apps/dashboard/src/app/layout.tsx index 9f591b6ab..ac9f18a8f 100644 --- a/apps/dashboard/src/app/layout.tsx +++ b/apps/dashboard/src/app/layout.tsx @@ -69,7 +69,7 @@ export default function RootLayout({ diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/layout.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/layout.tsx index 2e27f95d0..ca705bb83 100644 --- a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/layout.tsx +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/layout.tsx @@ -34,7 +34,7 @@ export default async function TeamLayout(props: { } return ( -
+
-
{props.children}
+
{props.children}
); } diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/account-abstraction/page.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/account-abstraction/page.tsx new file mode 100644 index 000000000..c0cb5fd0f --- /dev/null +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/account-abstraction/page.tsx @@ -0,0 +1,9 @@ +export default function Page() { + return ( +
+

+ Account Abstraction Settings +

+
+ ); +} diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/in-app-wallets/page.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/in-app-wallets/page.tsx new file mode 100644 index 000000000..997956d50 --- /dev/null +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/in-app-wallets/page.tsx @@ -0,0 +1,9 @@ +export default function Page() { + return ( +
+

+ In-App wallet Settings +

+
+ ); +} diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/layout.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/layout.tsx new file mode 100644 index 000000000..70cbd9851 --- /dev/null +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/layout.tsx @@ -0,0 +1,38 @@ +import { SidebarLayout } from "@/components/blocks/SidebarLayout"; + +export default function Layout(props: { + children: React.ReactNode; + params: { + team_slug: string; + project_slug: string; + }; +}) { + const { project_slug, team_slug } = props.params; + const layoutPath = `/team/${team_slug}/${project_slug}/settings`; + + return ( + + {props.children} + + ); +} diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/page.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/page.tsx index 51af2b73e..2c0f47af4 100644 --- a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/page.tsx +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/page.tsx @@ -1,7 +1,9 @@ export default function Page() { return ( -
-

Usage

+
+

+ General Settings +

); } diff --git a/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/pay/page.tsx b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/pay/page.tsx new file mode 100644 index 000000000..19e55de33 --- /dev/null +++ b/apps/dashboard/src/app/team/[team_slug]/[project_slug]/settings/pay/page.tsx @@ -0,0 +1,9 @@ +export default function Page() { + return ( +
+

+ Pay Settings +

+
+ ); +} diff --git a/apps/dashboard/src/app/team/[team_slug]/layout.tsx b/apps/dashboard/src/app/team/[team_slug]/layout.tsx index 4228ce8a3..b334d2694 100644 --- a/apps/dashboard/src/app/team/[team_slug]/layout.tsx +++ b/apps/dashboard/src/app/team/[team_slug]/layout.tsx @@ -1,13 +1,13 @@ import { AppFooter } from "@/components/blocks/app-footer"; import { TWAutoConnect } from "../../components/autoconnect"; -export default async function RootTeamLayout(props: { +export default function RootTeamLayout(props: { children: React.ReactNode; params: { team_slug: string }; }) { return (
-
{props.children}
+
{props.children}
diff --git a/apps/dashboard/src/app/team/components/TeamHeader/ProjectSelectorUI.tsx b/apps/dashboard/src/app/team/components/TeamHeader/ProjectSelectorUI.tsx index a6d08e4d8..9756ceac6 100644 --- a/apps/dashboard/src/app/team/components/TeamHeader/ProjectSelectorUI.tsx +++ b/apps/dashboard/src/app/team/components/TeamHeader/ProjectSelectorUI.tsx @@ -56,7 +56,9 @@ export function ProjectSelectorUI(props: { asChild > {/* TODO - when we have overview page, remove /connect */} - +
{/* TODO - placeholder for now */}
diff --git a/apps/dashboard/src/pages/dashboard/settings/api-keys/[id].tsx b/apps/dashboard/src/pages/dashboard/settings/api-keys/[id].tsx index efd1c95c5..56f2b3b85 100644 --- a/apps/dashboard/src/pages/dashboard/settings/api-keys/[id].tsx +++ b/apps/dashboard/src/pages/dashboard/settings/api-keys/[id].tsx @@ -1,4 +1,5 @@ -import { useApiKeys } from "@3rdweb-sdk/react/hooks/useApi"; +import { Spinner } from "@/components/ui/Spinner/Spinner"; +import { type ApiKey, useApiKeys } from "@3rdweb-sdk/react/hooks/useApi"; import { useLoggedInUser } from "@3rdweb-sdk/react/hooks/useLoggedInUser"; import { AppLayout } from "components/app-layouts/app"; import { ApiKeyDetails } from "components/settings/ApiKeys/Details"; @@ -10,7 +11,6 @@ import { useEffect, useMemo, useState } from "react"; import type { ThirdwebNextPage } from "utils/types"; const SettingsApiKeyPage: ThirdwebNextPage = () => { - const [editing, setEditing] = useState(false); const keysQuery = useApiKeys(); const router = useRouter(); const { user } = useLoggedInUser(); @@ -27,20 +27,29 @@ const SettingsApiKeyPage: ThirdwebNextPage = () => { } }, [apiKey, keysQuery.isSuccess, router]); - if (!user) { - return null; + if (!user || !apiKey) { + return ( +
+ +
+ ); } - if (!apiKey) { - return null; - } + return ; +}; + +function APIKeyDetailsPage(props: { + apiKey: ApiKey; +}) { + const { apiKey } = props; + const [editing, setEditing] = useState(false); return editing ? ( setEditing(false)} /> ) : ( setEditing(true)} /> ); -}; +} SettingsApiKeyPage.getLayout = (page, props) => (