feat: add organization settings and invitations

This commit is contained in:
2026-07-02 05:12:35 -07:00
parent a555c9dd23
commit ba8097e583
20 changed files with 2959 additions and 130 deletions

View File

@@ -28,6 +28,7 @@ function AuthPanelContent({ mode }: AuthPanelProps): React.ReactElement {
const router = useRouter();
const searchParams = useSearchParams();
const redirectTo = searchParams.get("redirectTo") ?? "/app/dashboard";
const invitationToken = searchParams.get("invite") ?? "";
const [message, setMessage] = useState("");
const [isPending, setIsPending] = useState(false);
const [hasAccounts, setHasAccounts] = useState<boolean | null>(null);
@@ -117,6 +118,7 @@ function AuthPanelContent({ mode }: AuthPanelProps): React.ReactElement {
password,
organization,
organizationId,
invitationToken,
}),
});
const result = (await response.json()) as ApiResult<{ account: unknown; pendingApproval?: boolean }>;
@@ -195,7 +197,13 @@ function AuthPanelContent({ mode }: AuthPanelProps): React.ReactElement {
</label>
) : null}
{mode === "register" && organizations.length > 0 ? (
{mode === "register" && invitationToken ? (
<p className="rounded-md bg-secondary px-3 py-2 text-sm text-secondary-foreground">
使
</p>
) : null}
{mode === "register" && !invitationToken && organizations.length > 0 ? (
<label className="block space-y-2">
<span className="text-sm font-medium"></span>
<select