diff --git a/README.md b/README.md index 7e51d0e..09146a8 100644 --- a/README.md +++ b/README.md @@ -12,12 +12,6 @@ Manage is an open-source project management platform. With its intuitive interfa # See .env.example for all available environment variables ``` -### Run using Docker - -```bash -docker-compose up -``` - ## Deployment diff --git a/app/(auth)/accept-invite/page.tsx b/app/(auth)/accept-invite/page.tsx index be1d1de..879845b 100644 --- a/app/(auth)/accept-invite/page.tsx +++ b/app/(auth)/accept-invite/page.tsx @@ -67,6 +67,7 @@ export default function AcceptInvitePage() { } async function handleOtpSuccess() { + router.refresh(); await refetch(); } diff --git a/app/(auth)/sign-in/page.tsx b/app/(auth)/sign-in/page.tsx index 25627e0..8d319a2 100644 --- a/app/(auth)/sign-in/page.tsx +++ b/app/(auth)/sign-in/page.tsx @@ -65,7 +65,10 @@ export default function SignInPage() { router.push(redirect)} + onSuccess={async () => { + router.refresh(); + router.push(redirect); + }} onBack={() => setSent(false)} /> diff --git a/app/(dashboard)/[tenant]/today/page.tsx b/app/(dashboard)/[tenant]/today/page.tsx index 6b9859b..62d8dbe 100644 --- a/app/(dashboard)/[tenant]/today/page.tsx +++ b/app/(dashboard)/[tenant]/today/page.tsx @@ -11,7 +11,7 @@ import { } from "lucide-react"; import Link from "next/link"; import { useParams } from "next/navigation"; -import { useQueryState } from "nuqs"; +import { parseAsString, useQueryState } from "nuqs"; import { useState } from "react"; import { Greeting } from "@/components/core/greeting"; import { PageLoading } from "@/components/core/loaders"; @@ -35,9 +35,10 @@ export default function Today() { const trpc = useTRPC(); const queryClient = useQueryClient(); - const [statuses] = useQueryState("status", { - defaultValue: "active", - }); + const [statuses] = useQueryState( + "status", + parseAsString.withDefault("active"), + ); const [{ data: todayData }, { data: projectsData }, { data: timezone }] = useQueries({ diff --git a/app/page.tsx b/app/page.tsx index b498ea5..ccfeee0 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -15,9 +15,11 @@ export default async function Home() { return ; } + const signupsDisabled = isSignupDisabled(); + return (
-
+
@@ -49,12 +51,14 @@ export default async function Home() { tech stack and open source values.

- - Try Manage → - + {!signupsDisabled && ( + + Try Manage → + + )} -
- - Get started → - -
+ {!signupsDisabled && ( +
+ + Get started → + +
+ )}
diff --git a/components/auth/otp-verification-form.tsx b/components/auth/otp-verification-form.tsx index a5ce82f..9cef6ba 100644 --- a/components/auth/otp-verification-form.tsx +++ b/components/auth/otp-verification-form.tsx @@ -12,7 +12,7 @@ import { interface OtpVerificationFormProps { email: string; - onSuccess: () => void; + onSuccess: () => void | Promise; onBack: () => void; } @@ -39,7 +39,7 @@ export function OtpVerificationForm({ toast.error(result.error.message || "Invalid verification code"); } else { toast.success("Signed in successfully"); - onSuccess(); + await onSuccess(); } } catch { toast.error("Failed to verify code. Please try again."); diff --git a/components/layout/navbar.tsx b/components/layout/navbar.tsx index e7c5b5f..de780b2 100644 --- a/components/layout/navbar.tsx +++ b/components/layout/navbar.tsx @@ -155,48 +155,52 @@ export function Navbar({ notificationsWire }: { notificationsWire: string }) { - - - - - - - - - - {projects.map((project) => ( - - router.push(`/${tenant}/projects/${project.id}`) - } - className="cursor-pointer" - > - {project.name} - - ))} - - + + + + + + + + + {projects.map((project) => ( + + router.push(`/${tenant}/projects/${project.id}`) + } + className="cursor-pointer" + > + {project.name} + + ))} + + + + )}
diff --git a/components/settings/team-settings.tsx b/components/settings/team-settings.tsx index 4a6e7eb..8352fc1 100644 --- a/components/settings/team-settings.tsx +++ b/components/settings/team-settings.tsx @@ -159,11 +159,7 @@ export function TeamSettings() { } if (!activeOrg) { - return ( -
- Team settings are only available for workspaces. -
- ); + return null; } if (isLoading) {