TeaSpeak-Client/imports/shared-app/ui/modal/group-assignment/Definitions.d.ts

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