- {option.description}
+
+ {option.icon && (
+
+ {option.icon}
+
+ )}
+
+
{option.title}
+
+ {option.description}
+
diff --git a/src/app/[orgId]/settings/access/users/UsersDataTable.tsx b/src/components/UsersDataTable.tsx
similarity index 100%
rename from src/app/[orgId]/settings/access/users/UsersDataTable.tsx
rename to src/components/UsersDataTable.tsx
diff --git a/src/app/[orgId]/settings/access/users/UsersTable.tsx b/src/components/UsersTable.tsx
similarity index 95%
rename from src/app/[orgId]/settings/access/users/UsersTable.tsx
rename to src/components/UsersTable.tsx
index 61567e15..57fe5c91 100644
--- a/src/app/[orgId]/settings/access/users/UsersTable.tsx
+++ b/src/components/UsersTable.tsx
@@ -9,7 +9,7 @@ import {
} from "@app/components/ui/dropdown-menu";
import { Button } from "@app/components/ui/button";
import { ArrowRight, ArrowUpDown, Crown, MoreHorizontal } from "lucide-react";
-import { UsersDataTable } from "./UsersDataTable";
+import { UsersDataTable } from "@app/components/UsersDataTable";
import { useState } from "react";
import ConfirmDeleteDialog from "@app/components/ConfirmDeleteDialog";
import { useOrgContext } from "@app/hooks/useOrgContext";
@@ -21,6 +21,7 @@ import { createApiClient } from "@app/lib/api";
import { useEnvContext } from "@app/hooks/useEnvContext";
import { useUserContext } from "@app/hooks/useUserContext";
import { useTranslations } from "next-intl";
+import IdpTypeBadge from "./IdpTypeBadge";
export type UserRow = {
id: string;
@@ -31,6 +32,7 @@ export type UserRow = {
idpId: number | null;
idpName: string;
type: string;
+ idpVariant: string | null;
status: string;
role: string;
isOwner: boolean;
@@ -81,6 +83,16 @@ export default function UsersTable({ users: u }: UsersTableProps) {
);
+ },
+ cell: ({ row }) => {
+ const userRow = row.original;
+ return (
+
+ );
}
},
{
@@ -146,7 +158,7 @@ export default function UsersTable({ users: u }: UsersTableProps) {
{`${userRow.username}-${userRow.idpId}` !==
- `${user?.username}-${userRow.idpId}` && (
+ `${user?.username}-${user?.idpId}` && (
{
setIsDeleteModalOpen(
diff --git a/src/app/auth/idp/[idpId]/oidc/callback/ValidateOidcToken.tsx b/src/components/ValidateOidcToken.tsx
similarity index 100%
rename from src/app/auth/idp/[idpId]/oidc/callback/ValidateOidcToken.tsx
rename to src/components/ValidateOidcToken.tsx
diff --git a/src/app/auth/verify-email/VerifyEmailForm.tsx b/src/components/VerifyEmailForm.tsx
similarity index 99%
rename from src/app/auth/verify-email/VerifyEmailForm.tsx
rename to src/components/VerifyEmailForm.tsx
index e9761eef..9cf48a2f 100644
--- a/src/app/auth/verify-email/VerifyEmailForm.tsx
+++ b/src/components/VerifyEmailForm.tsx
@@ -30,7 +30,7 @@ import {
import { AxiosResponse } from "axios";
import { VerifyEmailResponse } from "@server/routers/auth";
import { ArrowRight, IdCard, Loader2 } from "lucide-react";
-import { Alert, AlertDescription } from "../../../components/ui/alert";
+import { Alert, AlertDescription } from "./ui/alert";
import { toast } from "@app/hooks/useToast";
import { useRouter } from "next/navigation";
import { formatAxiosError } from "@app/lib/api";
diff --git a/src/lib/api/index.ts b/src/lib/api/index.ts
index edb281b7..5cef9f0e 100644
--- a/src/lib/api/index.ts
+++ b/src/lib/api/index.ts
@@ -22,7 +22,7 @@ export function createApiClient({ env }: { env: Env }): AxiosInstance {
axios.defaults.withCredentials = true;
} else {
// user is accessing through a proxy
- baseURL = window.location.origin + `/${suffix}`;
+ baseURL = `${env.app.dashboardUrl}/${suffix}`;
}
if (!baseURL) {