diff --git a/apps/admin/dist.zip b/apps/admin/dist.zip
index 18a8a68..86e5781 100644
Binary files a/apps/admin/dist.zip and b/apps/admin/dist.zip differ
diff --git a/apps/admin/src/sections/user/family/family-detail-sheet.tsx b/apps/admin/src/sections/user/family/family-detail-sheet.tsx
index 24ade79..4c81ae8 100644
--- a/apps/admin/src/sections/user/family/family-detail-sheet.tsx
+++ b/apps/admin/src/sections/user/family/family-detail-sheet.tsx
@@ -261,6 +261,11 @@ export function FamilyDetailSheet({
ID: {member.user_id}
+ {member.auth_type ? (
+
+ {member.auth_type}
+
+ ) : null}
{member.device_no ? (
@@ -268,7 +273,16 @@ export function FamilyDetailSheet({
) : null}
- {member.identifier}
+ {member.device_type ? (
+
+ {member.device_type}
+
+ ) : null}
+
+ {member.auth_type === "device"
+ ? member.device_no || member.identifier
+ : member.identifier}
+
{getFamilyRoleLabel(t, member.role_name)}
diff --git a/apps/admin/src/sections/user/family/index.tsx b/apps/admin/src/sections/user/family/index.tsx
index 14198b0..796a487 100644
--- a/apps/admin/src/sections/user/family/index.tsx
+++ b/apps/admin/src/sections/user/family/index.tsx
@@ -54,8 +54,19 @@ export default function FamilyManagement({
{
accessorKey: "owner_identifier",
header: t("owner", "Owner"),
- cell: ({ row }) =>
- `${row.original.owner_identifier} (ID: ${row.original.owner_user_id})`,
+ cell: ({ row }) => (
+
+ {row.original.owner_auth_type ? (
+
+ {row.original.owner_auth_type}
+
+ ) : null}
+ {row.original.owner_identifier}
+
+ (ID: {row.original.owner_user_id})
+
+
+ ),
},
{
accessorKey: "status",
diff --git a/apps/admin/src/sections/user/index.tsx b/apps/admin/src/sections/user/index.tsx
index ebcc18a..72af829 100644
--- a/apps/admin/src/sections/user/index.tsx
+++ b/apps/admin/src/sections/user/index.tsx
@@ -163,42 +163,30 @@ export default function User() {
-
+
{t("orderList", "Order List")}
-
+
{t("loginLogs", "Login Logs")}
-
+
{t("balanceLogs", "Balance Logs")}
{t("commissionLogs", "Commission Logs")}
-
+
{t("giftLogs", "Gift Logs")}
diff --git a/apps/admin/src/sections/user/user-detail.tsx b/apps/admin/src/sections/user/user-detail.tsx
index 320feaf..7f530ca 100644
--- a/apps/admin/src/sections/user/user-detail.tsx
+++ b/apps/admin/src/sections/user/user-detail.tsx
@@ -12,7 +12,6 @@ import {
getUserDetail,
getUserSubscribeById,
} from "@workspace/ui/services/admin/user";
-import { shortenDeviceIdentifier } from "@workspace/ui/utils/device";
import { formatBytes } from "@workspace/ui/utils/formatting";
import { useTranslation } from "react-i18next";
import { Display } from "@/components/display";
@@ -230,21 +229,29 @@ export function UserDetail({ id }: { id: number }) {
if (!id) return "--";
- const emailMethod = data?.auth_methods.find((m) => m.auth_type === "email");
const firstMethod = data?.auth_methods[0];
- const rawIdentifier =
- emailMethod?.auth_identifier || firstMethod?.auth_identifier || "";
- const isDevice = !emailMethod && firstMethod?.auth_type === "device";
- const identifier = isDevice
- ? shortenDeviceIdentifier(rawIdentifier)
- : rawIdentifier;
+ const isDevice = firstMethod?.auth_type === "device";
+ const deviceNo = (data as any)?.user_devices?.[0]?.device_no;
+ const rawIdentifier = firstMethod?.auth_identifier || "";
+ const identifier = isDevice ? deviceNo || rawIdentifier : rawIdentifier;
return (
diff --git a/apps/admin/src/sections/user/user-subscription/index.tsx b/apps/admin/src/sections/user/user-subscription/index.tsx
index bff7818..3723f6a 100644
--- a/apps/admin/src/sections/user/user-subscription/index.tsx
+++ b/apps/admin/src/sections/user/user-subscription/index.tsx
@@ -1,4 +1,4 @@
-import { Link } from "@tanstack/react-router";
+import { Link, useNavigate } from "@tanstack/react-router";
import { Alert, AlertDescription } from "@workspace/ui/components/alert";
import { Badge } from "@workspace/ui/components/badge";
import { Button } from "@workspace/ui/components/button";
@@ -42,6 +42,7 @@ export default function UserSubscription({ userId }: { userId: number }) {
const [loading, setLoading] = useState(false);
const ref = useRef(null);
const [sharedInfo, setSharedInfo] = useState(null);
+ const navigate = useNavigate();
const request = useCallback(
async (pagination: { page: number; size: number }) => {
@@ -116,19 +117,23 @@ export default function UserSubscription({ userId }: { userId: number }) {
-
diff --git a/packages/ui/src/services/admin/typings.d.ts b/packages/ui/src/services/admin/typings.d.ts
index 5261a87..47cb58f 100644
--- a/packages/ui/src/services/admin/typings.d.ts
+++ b/packages/ui/src/services/admin/typings.d.ts
@@ -2607,7 +2607,9 @@ declare namespace API {
type FamilyMemberItem = {
user_id: number;
identifier: string;
+ auth_type: string;
device_no: string;
+ device_type: string;
role: number;
role_name: string;
status: number;
@@ -2621,6 +2623,7 @@ declare namespace API {
family_id: number;
owner_user_id: number;
owner_identifier: string;
+ owner_auth_type: string;
status: string;
active_member_count: number;
max_members: number;