update: workspace members 403

This commit is contained in:
tao.chen
2026-08-12 17:14:47 +08:00
parent 6b9f851810
commit a09551bd3c
2 changed files with 6 additions and 36 deletions
@@ -1,8 +1,8 @@
import { type ChangeEvent, type MouseEvent as ReactMouseEvent, type RefObject, useEffect, useMemo, useState } from "react";
import { type ChangeEvent, type MouseEvent as ReactMouseEvent, type RefObject, useMemo } from "react";
import Icon from "../common/Icon";
import { WorkspaceTreeGroup } from "~/features/platform/WorkspaceTree";
import type { ScriptItem, WorkspaceDirectory, WorkspaceMember } from "~/services/api";
import { useApi, useAuth, type AuthUser } from "~/context/AuthContext";
import type { ScriptItem, WorkspaceDirectory } from "~/services/api";
import { type AuthUser } from "~/context/AuthContext";
type ScriptExplorerProps = {
scripts: ScriptItem[];
@@ -50,37 +50,6 @@ export function ScriptExplorer({
uploadInputRef,
onHandleUpload,
}: ScriptExplorerProps) {
const api = useApi();
const { currentWorkspace } = useAuth();
const [members, setMembers] = useState<WorkspaceMember[]>([]);
useEffect(() => {
if (!currentWorkspace) {
setMembers([]);
return;
}
let cancelled = false;
api
.listWorkspaceMembers(currentWorkspace.workspace_id)
.then((list) => {
if (!cancelled) setMembers(list);
})
.catch(() => {
if (!cancelled) setMembers([]);
});
return () => {
cancelled = true;
};
}, [api, currentWorkspace]);
const displayNameByUserId = useMemo(() => {
const map = new Map<string, string>();
for (const m of members) {
map.set(m.user_id, m.display_name || m.username || m.user_id);
}
return map;
}, [members]);
const memberScriptGroups = useMemo(() => {
const visibleScripts =
user?.is_system_admin === true
@@ -106,7 +75,7 @@ export function ScriptExplorer({
}[] = [];
for (const [ownerUserId, groupScripts] of byOwner.entries()) {
const displayName =
displayNameByUserId.get(ownerUserId) ??
groupScripts[0]?.owner_display_name ??
(ownerUserId === user?.user_id ? user?.display_name : null) ??
`${ownerUserId.slice(-6)}`;
const groupUser =
@@ -139,7 +108,7 @@ export function ScriptExplorer({
});
return groups;
}, [filteredScripts, user, displayNameByUserId]);
}, [filteredScripts, user]);
return (
<aside className="explorer">
+1
View File
@@ -173,6 +173,7 @@ export type ScriptItem = {
workspace_id: string;
current_object_id: string;
owner_user_id: string;
owner_display_name: string | null;
script_name: string;
script_type: ScriptType;
visibility: Visibility;