This repository has been archived on 2023-12-20. You can view files and clone it, but cannot push or open issues/pull-requests.
PartyApp/src/user/types.ts

62 lines
1.2 KiB
TypeScript

import {ThemeMode} from '@configs/colors';
import {
AccountName,
langCode,
XAuthorization,
Username,
UserId,
} from '@configs/types';
export enum SourceProp {
online = -1,
offline = 0,
cached = 1,
}
export interface BasicUserProp<T1> {
source: SourceProp;
url?: string;
data?: T1;
}
export type ProfilePictureType = BasicUserProp<Blob | undefined>;
export interface ProfilePicture {
lq: ProfilePictureType; //low quality
hq?: ProfilePictureType; //high quality
}
export interface User {
UserId: UserId;
AccountName: BasicUserProp<AccountName>;
/* ProfilePicture: ProfilePicture;
lastUpdateTimestamp: timestamp; */
Username: BasicUserProp<Username> /*
Description: BasicUserProp<string>;
FollowersCount: BasicUserProp<number>;
FollowingCount: BasicUserProp<number>;
XpLevel: BasicUserProp<number>;
XpPoints: BasicUserProp<number>; */;
}
export interface MyUserAccount extends User {
//EMail: EMail;
SessionId: XAuthorization;
//WebSocketSessionId: WebSocketSessionId;
userSettings: userSettings;
}
export interface userSettings {
theme: ThemeMode;
lang: langCode;
}
export function createUserProp<T1>(
source: SourceProp,
data?: T1,
url?: string,
): BasicUserProp<T1> {
return {source, data, url};
}