58 lines
1.4 KiB
TypeScript
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;
|
|
};
|
|
};
|
|
}
|