Files
gpustack-ui/src/config/global.d.ts
T
2026-01-30 18:48:55 +08:00

86 lines
1.8 KiB
TypeScript

type PageActionType = 'create' | 'update' | 'view' | 'edit';
declare namespace Global {
type WithFalse<T> = T | false;
interface Pagination {
page: number;
perPage?: number;
watch?: boolean;
}
interface PageResponse<T> {
items: T[];
pagination: {
total: number;
totalPage: number;
page: number;
perPage: number;
};
}
interface UserInfo {
username: string;
is_admin: boolean;
full_name: string;
require_password_change: boolean;
id: number;
source: string;
avatar_url: string;
}
type EmptyObject = Record<never, never>;
type BaseListItem<T, U extends object = EmptyObject> = {
key: string;
locale?: boolean;
value: T;
} & Partial<U>;
type BaseOption<T, U extends object = EmptyObject> = {
label: string;
locale?: boolean;
value: T;
meta?: Record<string, any>;
} & Partial<U>;
type BaseOptionGroup<T, U extends object = EmptyObject> = {
label: string;
options?: BaseOption<T, U>[];
};
interface HintOptions {
label: string;
value: string;
opts?: Array<BaseOption<string | number>>;
}
interface InitialStateType {
fetchUserInfo: () => Promise<UserInfo>;
currentUser?: UserInfo;
}
type SearchParams = Pagination & { search?: string; [key: string]: any };
type MessageType = 'transition' | 'warning' | 'danger' | 'success' | 'info';
interface ScrollerModalProps<T = unknown, U = unknown> {
title?: string;
action?: PageActionType;
open: boolean;
currentData?: T | null;
onOk?: (values: U) => void;
onCancel: () => void;
}
interface ActionItem {
label: string;
key: string;
icon: React.ReactNode;
locale?: boolean;
props?: {
danger?: boolean;
};
}
}
interface Window {
__GPUSTACK_BODY_SCROLLER__?: any;
}