]> Untitled Git - lemmy-ui.git/blobdiff - src/shared/interfaces.ts
Use http client (#1081)
[lemmy-ui.git] / src / shared / interfaces.ts
index aeb4678c9fd4f3d18119a99ee77289960a137bb3..3b64f60533dc246b6fd6fe74f5dfb2387ef29fed 100644 (file)
@@ -1,15 +1,21 @@
-import { GetSiteResponse, LemmyHttp } from "lemmy-js-client";
+import { CommentView, GetSiteResponse } from "lemmy-js-client";
 import type { ParsedQs } from "qs";
+import { RequestState, WrappedLemmyHttp } from "./services/HttpService";
+import { ErrorPageData } from "./utils";
 
 /**
  * This contains serialized data, it needs to be deserialized before use.
  */
 export interface IsoData {
   path: string;
-  routeData: any[];
+  routeData: RequestState<any>[];
   site_res: GetSiteResponse;
+  errorPageData?: ErrorPageData;
 }
 
+export type IsoDataOptionalSite = Partial<IsoData> &
+  Pick<IsoData, Exclude<keyof IsoData, "site_res">>;
+
 export interface ILemmyConfig {
   wsHost?: string;
 }
@@ -23,7 +29,7 @@ declare global {
 
 export interface InitialFetchRequest<T extends ParsedQs = ParsedQs> {
   auth?: string;
-  client: LemmyHttp;
+  client: WrappedLemmyHttp;
   path: string;
   query: T;
   site: GetSiteResponse;
@@ -63,3 +69,14 @@ export enum PurgeType {
   Post,
   Comment,
 }
+
+export enum VoteType {
+  Upvote,
+  Downvote,
+}
+
+export interface CommentNodeI {
+  comment_view: CommentView;
+  children: Array<CommentNodeI>;
+  depth: number;
+}