]> Untitled Git - lemmy.git/blobdiff - ui/src/interfaces.ts
Merge branch 'dev' into federation
[lemmy.git] / ui / src / interfaces.ts
index 5022d81765e50817ae04cc0ec6d64e27f67b7084..12430836c45d1b0ad9f95f550bdc4a6d1ea2e210 100644 (file)
@@ -42,12 +42,16 @@ export enum UserOperation {
   EditPrivateMessage,
   GetPrivateMessages,
   UserJoin,
+  GetComments,
+  GetSiteConfig,
+  SaveSiteConfig,
 }
 
 export enum CommentSortType {
   Hot,
   Top,
   New,
+  Old,
 }
 
 export enum ListingType {
@@ -56,6 +60,11 @@ export enum ListingType {
   Community,
 }
 
+export enum DataType {
+  Post,
+  Comment,
+}
+
 export enum SortType {
   Hot,
   New,
@@ -86,15 +95,18 @@ export interface User {
   lang: string;
   avatar?: string;
   show_avatars: boolean;
+  unreadCount?: number;
 }
 
 export interface UserView {
   id: number;
+  actor_id: string;
   name: string;
   avatar?: string;
   email?: string;
   matrix_user_id?: string;
-  fedi_name: string;
+  bio?: string;
+  local: boolean;
   published: string;
   number_of_posts: number;
   post_score: number;
@@ -108,15 +120,21 @@ export interface UserView {
 export interface CommunityUser {
   id: number;
   user_id: number;
+  user_actor_id: string;
+  user_local: boolean;
   user_name: string;
   avatar?: string;
   community_id: number;
+  community_actor_id: string;
+  community_local: boolean;
   community_name: string;
   published: string;
 }
 
 export interface Community {
   id: number;
+  actor_id: string;
+  local: boolean;
   name: string;
   title: string;
   description?: string;
@@ -127,6 +145,9 @@ export interface Community {
   nsfw: boolean;
   published: string;
   updated?: string;
+  creator_actor_id: string;
+  creator_local: boolean;
+  last_refreshed_at: string;
   creator_name: string;
   creator_avatar?: string;
   category_name: string;
@@ -148,13 +169,23 @@ export interface Post {
   deleted: boolean;
   locked: boolean;
   stickied: boolean;
+  embed_title?: string;
+  embed_description?: string;
+  embed_html?: string;
+  thumbnail_url?: string;
+  ap_id: string;
+  local: boolean;
   nsfw: boolean;
   banned: boolean;
   banned_from_community: boolean;
   published: string;
   updated?: string;
+  creator_actor_id: string;
+  creator_local: boolean;
   creator_name: string;
   creator_avatar?: string;
+  community_actor_id: string;
+  community_local: boolean;
   community_name: string;
   community_removed: boolean;
   community_deleted: boolean;
@@ -164,17 +195,19 @@ export interface Post {
   upvotes: number;
   downvotes: number;
   hot_rank: number;
+  newest_activity_time: string;
   user_id?: number;
   my_vote?: number;
   subscribed?: boolean;
   read?: boolean;
   saved?: boolean;
-  upvoteLoading?: boolean;
-  downvoteLoading?: boolean;
+  duplicates?: Array<Post>;
 }
 
 export interface Comment {
   id: number;
+  ap_id: string;
+  local: boolean;
   creator_id: number;
   post_id: number;
   parent_id?: number;
@@ -185,20 +218,28 @@ export interface Comment {
   published: string;
   updated?: string;
   community_id: number;
+  community_actor_id: string;
+  community_local: boolean;
+  community_name: string;
   banned: boolean;
   banned_from_community: boolean;
+  creator_actor_id: string;
+  creator_local: boolean;
   creator_name: string;
   creator_avatar?: string;
   score: number;
   upvotes: number;
   downvotes: number;
+  hot_rank: number;
   user_id?: number;
   my_vote?: number;
+  subscribed?: number;
   saved?: boolean;
   user_mention_id?: number; // For mention type
   recipient_id?: number;
-  upvoteLoading?: boolean;
-  downvoteLoading?: boolean;
+  recipient_actor_id?: string;
+  recipient_local?: boolean;
+  depth?: number;
 }
 
 export interface Category {
@@ -249,6 +290,10 @@ export interface FollowCommunityForm {
   auth?: string;
 }
 
+export interface GetFollowedCommunitiesForm {
+  auth: string;
+}
+
 export interface GetFollowedCommunitiesResponse {
   communities: Array<CommunityUser>;
 }
@@ -524,10 +569,17 @@ export interface CommunityForm {
   auth?: string;
 }
 
+export interface GetCommunityForm {
+  id?: number;
+  name?: string;
+  auth?: string;
+}
+
 export interface GetCommunityResponse {
   community: Community;
   moderators: Array<CommunityUser>;
   admins: Array<UserView>;
+  online: number;
 }
 
 export interface CommunityResponse {
@@ -573,12 +625,18 @@ export interface PostFormParams {
   community?: string;
 }
 
+export interface GetPostForm {
+  id: number;
+  auth?: string;
+}
+
 export interface GetPostResponse {
   post: Post;
   comments: Array<Comment>;
   community: Community;
   moderators: Array<CommunityUser>;
   admins: Array<UserView>;
+  online: number;
 }
 
 export interface SavePostForm {
@@ -612,6 +670,7 @@ export interface SaveCommentForm {
 
 export interface CommentResponse {
   comment: Comment;
+  recipient_ids: Array<number>;
 }
 
 export interface CommentLikeForm {
@@ -639,16 +698,25 @@ export interface GetPostsResponse {
   posts: Array<Post>;
 }
 
+export interface GetCommentsForm {
+  type_: string;
+  sort: string;
+  page?: number;
+  limit: number;
+  community_id?: number;
+  auth?: string;
+}
+
+export interface GetCommentsResponse {
+  comments: Array<Comment>;
+}
+
 export interface CreatePostLikeForm {
   post_id: number;
   score: number;
   auth?: string;
 }
 
-export interface CreatePostLikeResponse {
-  post: Post;
-}
-
 export interface SiteForm {
   name: string;
   description?: string;
@@ -658,6 +726,19 @@ export interface SiteForm {
   auth?: string;
 }
 
+export interface GetSiteConfig {
+  auth?: string;
+}
+
+export interface GetSiteConfigResponse {
+  config_hjson: string;
+}
+
+export interface SiteConfigForm {
+  config_hjson: string;
+  auth?: string;
+}
+
 export interface GetSiteResponse {
   site: Site;
   admins: Array<UserView>;
@@ -760,12 +841,60 @@ export interface PrivateMessageResponse {
   message: PrivateMessage;
 }
 
+export interface UserJoinForm {
+  auth: string;
+}
+
+export interface UserJoinResponse {
+  user_id: number;
+}
+
+export type MessageType =
+  | EditPrivateMessageForm
+  | LoginForm
+  | RegisterForm
+  | CommunityForm
+  | FollowCommunityForm
+  | ListCommunitiesForm
+  | GetFollowedCommunitiesForm
+  | PostForm
+  | GetPostForm
+  | GetPostsForm
+  | GetCommunityForm
+  | CommentForm
+  | CommentLikeForm
+  | SaveCommentForm
+  | CreatePostLikeForm
+  | BanFromCommunityForm
+  | AddAdminForm
+  | AddModToCommunityForm
+  | TransferCommunityForm
+  | TransferSiteForm
+  | SaveCommentForm
+  | BanUserForm
+  | AddAdminForm
+  | GetUserDetailsForm
+  | GetRepliesForm
+  | GetUserMentionsForm
+  | EditUserMentionForm
+  | GetModlogForm
+  | SiteForm
+  | SearchForm
+  | UserSettingsForm
+  | DeleteAccountForm
+  | PasswordResetForm
+  | PasswordChangeForm
+  | PrivateMessageForm
+  | EditPrivateMessageForm
+  | GetPrivateMessagesForm
+  | SiteConfigForm;
+
 type ResponseType =
   | SiteResponse
   | GetFollowedCommunitiesResponse
   | ListCommunitiesResponse
   | GetPostsResponse
-  | CreatePostLikeResponse
+  | PostResponse
   | GetRepliesResponse
   | GetUserMentionsResponse
   | ListCategoriesResponse
@@ -780,7 +909,8 @@ type ResponseType =
   | BanUserResponse
   | AddAdminResponse
   | PrivateMessageResponse
-  | PrivateMessagesResponse;
+  | PrivateMessagesResponse
+  | GetSiteConfigResponse;
 
 export interface WebSocketResponse {
   op: UserOperation;
@@ -791,4 +921,5 @@ export interface WebSocketJsonResponse {
   op?: string;
   data?: ResponseType;
   error?: string;
+  reconnect?: boolean;
 }