mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-12 01:02:39 +02:00
chore: delete unused useMembers hook from use-rbac.ts
This commit is contained in:
parent
bce8340750
commit
e520e3e217
1 changed files with 0 additions and 122 deletions
|
|
@ -96,128 +96,6 @@ export interface InviteInfo {
|
||||||
|
|
||||||
// ============ Members Hook ============
|
// ============ Members Hook ============
|
||||||
|
|
||||||
export function useMembers(searchSpaceId: number) {
|
|
||||||
const [members, setMembers] = useState<Member[]>([]);
|
|
||||||
const [loading, setLoading] = useState(true);
|
|
||||||
const [error, setError] = useState<string | null>(null);
|
|
||||||
|
|
||||||
const fetchMembers = useCallback(async () => {
|
|
||||||
if (!searchSpaceId) return;
|
|
||||||
|
|
||||||
try {
|
|
||||||
setLoading(true);
|
|
||||||
const response = await authenticatedFetch(
|
|
||||||
`${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/searchspaces/${searchSpaceId}/members`,
|
|
||||||
{ method: "GET" }
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
const errorData = await response.json().catch(() => ({}));
|
|
||||||
throw new Error(errorData.detail || "Failed to fetch members");
|
|
||||||
}
|
|
||||||
|
|
||||||
const data = await response.json();
|
|
||||||
setMembers(data);
|
|
||||||
setError(null);
|
|
||||||
return data;
|
|
||||||
} catch (err: any) {
|
|
||||||
setError(err.message || "Failed to fetch members");
|
|
||||||
console.error("Error fetching members:", err);
|
|
||||||
} finally {
|
|
||||||
setLoading(false);
|
|
||||||
}
|
|
||||||
}, [searchSpaceId]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
fetchMembers();
|
|
||||||
}, [fetchMembers]);
|
|
||||||
|
|
||||||
const updateMemberRole = useCallback(
|
|
||||||
async (membershipId: number, roleId: number | null) => {
|
|
||||||
try {
|
|
||||||
const response = await authenticatedFetch(
|
|
||||||
`${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/searchspaces/${searchSpaceId}/members/${membershipId}`,
|
|
||||||
{
|
|
||||||
headers: { "Content-Type": "application/json" },
|
|
||||||
method: "PUT",
|
|
||||||
body: JSON.stringify({ role_id: roleId }),
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
const errorData = await response.json().catch(() => ({}));
|
|
||||||
throw new Error(errorData.detail || "Failed to update member role");
|
|
||||||
}
|
|
||||||
|
|
||||||
const updatedMember = await response.json();
|
|
||||||
setMembers((prev) => prev.map((m) => (m.id === membershipId ? updatedMember : m)));
|
|
||||||
toast.success("Member role updated successfully");
|
|
||||||
return updatedMember;
|
|
||||||
} catch (err: any) {
|
|
||||||
toast.error(err.message || "Failed to update member role");
|
|
||||||
throw err;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[searchSpaceId]
|
|
||||||
);
|
|
||||||
|
|
||||||
const removeMember = useCallback(
|
|
||||||
async (membershipId: number) => {
|
|
||||||
try {
|
|
||||||
const response = await authenticatedFetch(
|
|
||||||
`${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/searchspaces/${searchSpaceId}/members/${membershipId}`,
|
|
||||||
{ method: "DELETE" }
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
const errorData = await response.json().catch(() => ({}));
|
|
||||||
throw new Error(errorData.detail || "Failed to remove member");
|
|
||||||
}
|
|
||||||
|
|
||||||
setMembers((prev) => prev.filter((m) => m.id !== membershipId));
|
|
||||||
toast.success("Member removed successfully");
|
|
||||||
return true;
|
|
||||||
} catch (err: any) {
|
|
||||||
toast.error(err.message || "Failed to remove member");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
[searchSpaceId]
|
|
||||||
);
|
|
||||||
|
|
||||||
const leaveSearchSpace = useCallback(async () => {
|
|
||||||
try {
|
|
||||||
const response = await authenticatedFetch(
|
|
||||||
`${process.env.NEXT_PUBLIC_FASTAPI_BACKEND_URL}/api/v1/searchspaces/${searchSpaceId}/members/me`,
|
|
||||||
{ method: "DELETE" }
|
|
||||||
);
|
|
||||||
|
|
||||||
if (!response.ok) {
|
|
||||||
const errorData = await response.json().catch(() => ({}));
|
|
||||||
throw new Error(errorData.detail || "Failed to leave search space");
|
|
||||||
}
|
|
||||||
|
|
||||||
toast.success("Successfully left the search space");
|
|
||||||
return true;
|
|
||||||
} catch (err: any) {
|
|
||||||
toast.error(err.message || "Failed to leave search space");
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}, [searchSpaceId]);
|
|
||||||
|
|
||||||
return {
|
|
||||||
members,
|
|
||||||
loading,
|
|
||||||
error,
|
|
||||||
fetchMembers,
|
|
||||||
updateMemberRole,
|
|
||||||
removeMember,
|
|
||||||
leaveSearchSpace,
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// ============ Roles Hook ============
|
|
||||||
|
|
||||||
export function useUserAccess(searchSpaceId: number) {
|
export function useUserAccess(searchSpaceId: number) {
|
||||||
const [access, setAccess] = useState<UserAccess | null>(null);
|
const [access, setAccess] = useState<UserAccess | null>(null);
|
||||||
const [loading, setLoading] = useState(true);
|
const [loading, setLoading] = useState(true);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue