]> Untitled Git - lemmy.git/commitdiff
Better tippy loading. Fixes #577
authorDessalines <tyhou13@gmx.com>
Thu, 5 Mar 2020 03:35:55 +0000 (22:35 -0500)
committerDessalines <tyhou13@gmx.com>
Thu, 5 Mar 2020 03:35:55 +0000 (22:35 -0500)
ui/src/components/comment-node.tsx
ui/src/components/community.tsx
ui/src/components/main.tsx
ui/src/components/moment-time.tsx
ui/src/components/navbar.tsx
ui/src/components/post-listing.tsx
ui/src/components/post.tsx
ui/src/components/sidebar.tsx
ui/src/services/WebSocketService.ts

index 47930377c820dfefd3b4e8b397cc7770fe30f13b..a02a3cf85f804e995d0e8ad091667cf3bf441ee1 100644 (file)
@@ -103,18 +103,6 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> {
     this.handleCommentDownvote = this.handleCommentDownvote.bind(this);
   }
 
-  componentDidUpdate(prevProps: CommentNodeProps) {
-    let prevComment = prevProps.node.comment;
-    let comment = this.props.node.comment;
-    if (
-      prevComment.saved !== comment.saved ||
-      prevComment.deleted !== comment.deleted ||
-      prevComment.read !== comment.read
-    ) {
-      setupTippy();
-    }
-  }
-
   componentWillReceiveProps(nextProps: CommentNodeProps) {
     this.state.my_vote = nextProps.node.comment.my_vote;
     this.state.upvotes = nextProps.node.comment.upvotes;
index 0be549a5a69e6e9f133465dbfaed027dac01afcb..4e8e9d1b63279a13ce5da0ae0b40b051c946ff0d 100644 (file)
@@ -43,6 +43,7 @@ import {
   createPostLikeFindRes,
   editPostFindRes,
   commentsToFlatNodes,
+  setupTippy,
 } from '../utils';
 import { i18n } from '../i18next';
 
@@ -341,6 +342,7 @@ export class Community extends Component<any, State> {
       this.state.posts = data.posts;
       this.state.loading = false;
       this.setState(this.state);
+      setupTippy();
     } else if (res.op == UserOperation.EditPost) {
       let data = res.data as PostResponse;
       editPostFindRes(data, this.state.posts);
index 85fa5d33963a703e83a7e0456851fca1c8835815..ee028151fa7a66c0bf342e112eaf3badbf31cd1a 100644 (file)
@@ -52,6 +52,7 @@ import {
   editPostFindRes,
   commentsToFlatNodes,
   commentSortSortType,
+  setupTippy,
 } from '../utils';
 import { i18n } from '../i18next';
 import { T } from 'inferno-i18next';
@@ -620,6 +621,7 @@ export class Main extends Component<any, MainState> {
       this.state.posts = data.posts;
       this.state.loading = false;
       this.setState(this.state);
+      setupTippy();
     } else if (res.op == UserOperation.CreatePost) {
       let data = res.data as PostResponse;
 
index 4aba68d2b9782395d774911e20d627ae17f33afb..24ab2d8973074c7ff5122121cf20b5fc1618bd82 100644 (file)
@@ -1,6 +1,6 @@
 import { Component } from 'inferno';
 import moment from 'moment';
-import { getMomentLanguage, setupTippy, capitalizeFirstLetter } from '../utils';
+import { getMomentLanguage, capitalizeFirstLetter } from '../utils';
 import { i18n } from '../i18next';
 
 interface MomentTimeProps {
@@ -20,10 +20,6 @@ export class MomentTime extends Component<MomentTimeProps, any> {
     moment.locale(lang);
   }
 
-  componentDidMount() {
-    setupTippy();
-  }
-
   render() {
     if (this.props.data.updated) {
       return (
index 031c2ecbfb21f095329a72f9e5f222952bd9a138..ef3f84309e71a05bfa1dcb77ea9681a866ba01fc 100644 (file)
@@ -26,7 +26,6 @@ import {
   fetchLimit,
   isCommentType,
   toast,
-  setupTippy,
 } from '../utils';
 import { version } from '../version';
 import { i18n } from '../i18next';
@@ -85,10 +84,6 @@ export class Navbar extends Component<any, NavbarState> {
     WebSocketService.Instance.getSite();
   }
 
-  componentDidMount() {
-    setupTippy();
-  }
-
   render() {
     return this.navbar();
   }
@@ -283,7 +278,7 @@ export class Navbar extends Component<any, NavbarState> {
     } else if (res.op == UserOperation.GetSite) {
       let data = res.data as GetSiteResponse;
 
-      if (data.site) {
+      if (data.site && !this.state.siteName) {
         this.state.siteName = data.site.name;
         WebSocketService.Instance.site = data.site;
         this.setState(this.state);
index e170c711ac7440ab7a390799d5f75e18bf1adf99..f8f194486f3bbaa51066c0a05522aa2b4655686e 100644 (file)
@@ -102,19 +102,6 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
     }
   }
 
-  componentDidUpdate(prevProps: PostListingProps) {
-    let prevPost = prevProps.post;
-    let post = this.props.post;
-    if (
-      prevPost.saved !== post.saved ||
-      prevPost.deleted !== post.deleted ||
-      prevPost.locked !== post.locked ||
-      prevPost.stickied !== post.stickied
-    ) {
-      setupTippy();
-    }
-  }
-
   componentWillReceiveProps(nextProps: PostListingProps) {
     this.state.my_vote = nextProps.post.my_vote;
     this.state.upvotes = nextProps.post.upvotes;
index d8f662cf72cae09370cef0d5736c9ed98cb8f0a9..faee23ed09c0d0f4e0705e1ade4db30266b4be4c 100644 (file)
@@ -37,6 +37,7 @@ import {
   createCommentLikeRes,
   createPostLikeRes,
   commentsToFlatNodes,
+  setupTippy,
 } from '../utils';
 import { PostListing } from './post-listing';
 import { PostListings } from './post-listings';
@@ -370,6 +371,7 @@ export class Post extends Component<any, PostState> {
       }
 
       this.setState(this.state);
+      setupTippy();
     } else if (res.op == UserOperation.CreateComment) {
       let data = res.data as CommentResponse;
 
@@ -386,6 +388,7 @@ export class Post extends Component<any, PostState> {
       let data = res.data as CommentResponse;
       saveCommentRes(data, this.state.comments);
       this.setState(this.state);
+      setupTippy();
     } else if (res.op == UserOperation.CreateCommentLike) {
       let data = res.data as CommentResponse;
       createCommentLikeRes(data, this.state.comments);
@@ -398,10 +401,12 @@ export class Post extends Component<any, PostState> {
       let data = res.data as PostResponse;
       this.state.post = data.post;
       this.setState(this.state);
+      setupTippy();
     } else if (res.op == UserOperation.SavePost) {
       let data = res.data as PostResponse;
       this.state.post = data.post;
       this.setState(this.state);
+      setupTippy();
     } else if (res.op == UserOperation.EditCommunity) {
       let data = res.data as CommunityResponse;
       this.state.community = data.community;
index a78589d557baab407ca9f3bc9c24e96012354397..042b67dbbe33e5028008f890057ae80828530f5f 100644 (file)
@@ -13,7 +13,6 @@ import {
   getUnixTime,
   pictshareAvatarThumbnail,
   showAvatars,
-  setupTippy,
 } from '../utils';
 import { CommunityForm } from './community-form';
 import { i18n } from '../i18next';
@@ -47,10 +46,6 @@ export class Sidebar extends Component<SidebarProps, SidebarState> {
     this.handleEditCancel = this.handleEditCancel.bind(this);
   }
 
-  componentDidUpdate() {
-    setupTippy();
-  }
-
   render() {
     return (
       <div>
index 3df69457a612909790876b8b3c8b623cb6cd7ab1..02c97cc944badf6db31833066fca3dd845508011 100644 (file)
@@ -61,6 +61,7 @@ export class WebSocketService {
 
   private constructor() {
     this.ws = new ReconnectingWebSocket(wsUri);
+    let firstConnect = true;
 
     this.subject = Observable.create((obs: any) => {
       this.ws.onmessage = e => {
@@ -68,13 +69,19 @@ export class WebSocketService {
       };
       this.ws.onopen = () => {
         console.log(`Connected to ${wsUri}`);
+
         if (UserService.Instance.user) {
           this.userJoin();
         }
-        let res: WebSocketJsonResponse = {
-          reconnect: true,
-        };
-        obs.next(res);
+
+        if (!firstConnect) {
+          let res: WebSocketJsonResponse = {
+            reconnect: true,
+          };
+          obs.next(res);
+        }
+
+        firstConnect = false;
       };
     }).pipe(share());
   }