Feliday-UI/src/shared/interfaces.ts

76 lines
1.1 KiB
TypeScript
Raw Normal View History

import { Either, Option } from "@sniptt/monads";
2020-12-24 01:58:27 +00:00
import {
CommentView,
GetSiteResponse,
LemmyHttp,
2021-03-15 18:09:31 +00:00
PersonMentionView,
2021-02-22 02:39:04 +00:00
} from "lemmy-js-client";
/**
* This contains serialized data, it needs to be deserialized before use.
*/
export interface IsoData {
path: string;
routeData: any[];
2020-12-24 01:58:27 +00:00
site_res: GetSiteResponse;
}
export interface ILemmyConfig {
wsHost?: string;
}
declare global {
interface Window {
isoData: IsoData;
lemmyConfig?: ILemmyConfig;
}
}
export interface InitialFetchRequest {
auth: Option<string>;
client: LemmyHttp;
path: string;
}
2020-12-24 01:58:27 +00:00
export interface CommentNode {
2021-03-15 18:09:31 +00:00
comment_view: CommentView | PersonMentionView;
2020-12-24 01:58:27 +00:00
children?: CommentNode[];
depth?: number;
}
export interface PostFormParams {
name: Option<string>;
url: Option<string>;
body: Option<string>;
nameOrId: Option<Either<string, number>>;
2020-12-24 01:58:27 +00:00
}
export enum CommentSortType {
Hot,
Top,
New,
Old,
}
export enum CommentViewType {
Tree,
Chat,
}
export enum DataType {
Post,
Comment,
}
export enum BanType {
Community,
Site,
}
2021-03-15 18:09:31 +00:00
export enum PersonDetailsView {
Overview,
Comments,
Posts,
Saved,
}