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;
|
||
|
};
|
||
|
};
|
||
|
}
|