2021-04-19 20:27:12 +02:00

58 lines
1.4 KiB
TypeScript

import { RemoteIconInfo } from "tc-shared/file/Icons";
export declare type AvailableGroup = {
groupId: number;
saveDB: boolean;
name: string;
icon: RemoteIconInfo | undefined;
addAble: boolean;
removeAble: boolean;
};
export declare type ClientInfo = {
status: "success";
clientDatabaseId: number;
clientUniqueId: string;
clientName: string;
} | {
status: "error";
message: string;
};
export interface ModalClientGroupAssignmentVariables {
readonly handlerId: string;
readonly targetClient: ClientInfo;
readonly availableGroups: {
groups: AvailableGroup[];
defaultGroup: number;
};
readonly assignedGroupStatus: {
status: "loaded";
assignedGroups: number;
} | {
status: "loading";
} | {
status: "error";
message: string;
};
groupAssigned: boolean;
}
export interface ModalClientGroupAssignmentEvents {
action_close: {};
action_remove_all: {};
action_refresh: {
slowMode: boolean;
};
notify_toggle_result: {
action: "add" | "remove";
groupId: number;
groupName: string;
result: {
status: "success";
} | {
status: "error";
reason: string;
} | {
status: "no-permissions";
permission: string;
};
};
}