diff --git a/src/app/(dashboard)/team/user/page.tsx b/src/app/(dashboard)/team/user/page.tsx index fa67969..d751ff5 100644 --- a/src/app/(dashboard)/team/user/page.tsx +++ b/src/app/(dashboard)/team/user/page.tsx @@ -121,7 +121,7 @@ function UserOverview({ user }: Props) { /> )} - +
@@ -138,7 +138,9 @@ function UserOverview({ user }: Props) { } : { color: user?.name - ? generateColorFromString(user?.name || "System User") + ? generateColorFromString( + user?.name || user?.id || "System User", + ) : "#808080", } } @@ -146,10 +148,12 @@ function UserOverview({ user }: Props) { {user.is_service_user ? ( ) : ( - user?.name?.charAt(0) + user?.name?.charAt(0) || user?.id?.charAt(0) )}
-

{user.name}

+

+ {user.name || user.id} +

@@ -256,10 +260,10 @@ function UserInformationCard({ user }: { user: User }) { label={ <> - Name + {user.name ? "Name" : "User ID"} } - value={user.name} + value={user.name || user.id} /> {!isServiceUser && ( @@ -270,7 +274,7 @@ function UserInformationCard({ user }: { user: User }) { E-Mail } - value={user.email} + value={user.email || "-"} /> )} diff --git a/src/components/ui/UserAvatar.tsx b/src/components/ui/UserAvatar.tsx index ffa084a..5864428 100644 --- a/src/components/ui/UserAvatar.tsx +++ b/src/components/ui/UserAvatar.tsx @@ -31,11 +31,11 @@ export const UserAvatar = ({ size = "default" }: Props) => { )} style={{ color: user?.name - ? generateColorFromString(user?.name || "System User") + ? generateColorFromString(user?.name || user?.id || "System User") : "#808080", }} > - {user?.name?.charAt(0)} + {user?.name?.charAt(0) || user?.id?.charAt(0)}
); }; diff --git a/src/modules/activity/ActivityDescription.tsx b/src/modules/activity/ActivityDescription.tsx index f2d9b35..4baca2d 100644 --- a/src/modules/activity/ActivityDescription.tsx +++ b/src/modules/activity/ActivityDescription.tsx @@ -314,8 +314,7 @@ export default function ActivityDescription({ event }: Props) { return (
User {event.meta.username}{" "} - {event.meta.email} - was deleted + {event.meta.email} was deleted
); @@ -454,7 +453,7 @@ function Value({ return children ? ( diff --git a/src/modules/activity/ActivityEntryRow.tsx b/src/modules/activity/ActivityEntryRow.tsx index 7e2c1e8..74aa3a5 100644 --- a/src/modules/activity/ActivityEntryRow.tsx +++ b/src/modules/activity/ActivityEntryRow.tsx @@ -61,23 +61,25 @@ export const ActivityEntryRow = ({ event }: { event: ActivityEvent }) => { } style={{ color: user?.name - ? generateColorFromString(user?.name || "System User") + ? generateColorFromString( + user?.name || user?.id || "System User", + ) : "#808080", }} > - {!user?.name && } - {user?.name?.charAt(0)} + {!user?.name && !user?.id && } + {user?.name?.charAt(0) || user?.id?.charAt(0)} - - - + + + @@ -91,11 +93,15 @@ export const ActivityEntryRow = ({ event }: { event: ActivityEvent }) => {
-
+
diff --git a/src/modules/activity/ActivityUserSelector.tsx b/src/modules/activity/ActivityUserSelector.tsx index 4459f09..0c5c03a 100644 --- a/src/modules/activity/ActivityUserSelector.tsx +++ b/src/modules/activity/ActivityUserSelector.tsx @@ -88,13 +88,18 @@ export function ActivityUserSelector({ style={{ color: selectedUser?.name ? generateColorFromString( - selectedUser?.name || "System User", + selectedUser?.name || + selectedUser?.id || + "System User", ) : "#808080", }} > - {!selectedUser?.name && } - {selectedUser?.name?.charAt(0)} + {selectedUser?.email === "NetBird" ? ( + + ) : ( + selectedUser?.name?.charAt(0) || selectedUser?.id?.charAt(0) + )}
{users.map((user) => { + const searchValue = + user.email === "NetBird" + ? "NetBird System" + : user.name + " " + user.id + " " + user.email; return ( { toggle(user.email); @@ -222,19 +231,26 @@ export function ActivityUserSelector({ style={{ color: user?.name ? generateColorFromString( - user?.name || "System User", + user?.name || user?.id || "System User", ) : "#808080", }} > - {!user?.name && } - {user?.name?.charAt(0)} + {user?.email === "NetBird" ? ( + + ) : ( + user?.name?.charAt(0) || user?.id?.charAt(0) + )}
diff --git a/src/modules/users/ServiceUsersTable.tsx b/src/modules/users/ServiceUsersTable.tsx index b01af53..d79faca 100644 --- a/src/modules/users/ServiceUsersTable.tsx +++ b/src/modules/users/ServiceUsersTable.tsx @@ -88,7 +88,7 @@ export default function ServiceUsersTable({ users, isLoading }: Props) { <>
- {user.name} + {user.name || user.id}
diff --git a/src/modules/users/table-cells/UserActionCell.tsx b/src/modules/users/table-cells/UserActionCell.tsx index 634150c..3820291 100644 --- a/src/modules/users/table-cells/UserActionCell.tsx +++ b/src/modules/users/table-cells/UserActionCell.tsx @@ -18,8 +18,9 @@ export default function UserActionCell({ user, serviceUser = false }: Props) { const { mutate } = useSWRConfig(); const deleteRule = async () => { + const name = user.name || "User"; notify({ - title: user.name + "deleted", + title: name + "deleted", description: "User was successfully deleted.", promise: userRequest.del("", `/${user.id}`).then(() => { mutate(`/users?service_user=${serviceUser}`); @@ -29,8 +30,9 @@ export default function UserActionCell({ user, serviceUser = false }: Props) { }; const openConfirm = async () => { + const name = user.name || "User"; const choice = await confirm({ - title: `Delete '${user.name}'?`, + title: `Delete '${name}'?`, description: "Deleting this user will remove their devices and remove dashboard access. This action cannot be undone.", confirmText: "Delete", diff --git a/src/modules/users/table-cells/UserBlockCell.tsx b/src/modules/users/table-cells/UserBlockCell.tsx index c2241c2..bd8881b 100644 --- a/src/modules/users/table-cells/UserBlockCell.tsx +++ b/src/modules/users/table-cells/UserBlockCell.tsx @@ -20,12 +20,12 @@ export default function UserBlockCell({ user, isUserPage = false }: Props) { const disabled = user.is_current || user.role === "owner"; const update = async (blocked: boolean) => { + const name = user.name || "User"; + notify({ title: blocked ? "User blocked" : "User unblocked", description: - user.name + - " was successfully " + - (blocked ? "blocked." : "unblocked."), + name + " was successfully " + (blocked ? "blocked." : "unblocked."), promise: userRequest .put( { diff --git a/src/modules/users/table-cells/UserNameCell.tsx b/src/modules/users/table-cells/UserNameCell.tsx index 3a5d1e5..e527020 100644 --- a/src/modules/users/table-cells/UserNameCell.tsx +++ b/src/modules/users/table-cells/UserNameCell.tsx @@ -18,12 +18,12 @@ export default function UserNameCell({ user }: Props) { } style={{ color: user?.name - ? generateColorFromString(user?.name || "System User") + ? generateColorFromString(user?.name || user?.id || "System User") : "#808080", }} > - {!user?.name && } - {user?.name?.charAt(0)} + {!user?.name && !user?.id && } + {user?.name?.charAt(0) || user?.id?.charAt(0)} {(status == "invited" || status == "blocked") && (
- {user.name} + {user.name || user.id} {isCurrent && (