feat: add searchable view assignment targets

This commit is contained in:
2026-07-29 14:16:29 +02:00
parent 3de8d4aa5f
commit c24d1f2ca4
7 changed files with 525 additions and 30 deletions
+35
View File
@@ -45,6 +45,8 @@ export type ViewAssignment = {
tenant_id?: string | null;
scope_type: ViewAssignmentScopeType;
scope_id?: string | null;
scope_label?: string | null;
scope_detail?: string | null;
definition_id: string;
revision_id?: string | null;
mode: ViewAssignmentMode;
@@ -57,6 +59,21 @@ export type ViewAssignment = {
updated_at: string;
};
export type ViewAssignmentTarget = {
id: string;
scope_type: "group" | "user";
label: string;
detail?: string | null;
disabled: boolean;
disabled_reason?: string | null;
};
export type ViewAssignmentTargetList = {
directory_available: boolean;
targets: ViewAssignmentTarget[];
unavailable_reason?: string | null;
};
type EffectiveViewApiResponse = {
active_view_id?: string | null;
active_revision_id?: string | null;
@@ -239,6 +256,24 @@ export async function fetchViewAssignments(
return response.assignments;
}
export function fetchViewAssignmentTargets(
settings: ApiSettings,
scopeType: "group" | "user",
query: string,
limit: number,
signal?: AbortSignal
): Promise<ViewAssignmentTargetList> {
return apiFetch(
settings,
apiPath("/api/v1/views/assignment-targets", {
scope_type: scopeType,
query: query || undefined,
limit
}),
{ signal }
);
}
export function createViewAssignment(
settings: ApiSettings,
payload: {