From 6884de0afc381174bbbb49f35913cd4499f44027 Mon Sep 17 00:00:00 2001 From: Dessalines Date: Fri, 5 Apr 2019 13:22:59 -0700 Subject: [PATCH] Adding comment permalinks. Fixes #18 --- ui/src/components/post-listings.tsx | 2 +- ui/src/components/post.tsx | 17 ++++++++++++++--- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ui/src/components/post-listings.tsx b/ui/src/components/post-listings.tsx index fcc41cf5b..98fe8f211 100644 --- a/ui/src/components/post-listings.tsx +++ b/ui/src/components/post-listings.tsx @@ -83,7 +83,7 @@ export class PostListings extends Component 0 ? this.state.posts.map(post => ) - :
No Listings
+ :
No Listings. Subscribe to some forums.
} ) diff --git a/ui/src/components/post.tsx b/ui/src/components/post.tsx index 2a870c4dc..e7c66e94b 100644 --- a/ui/src/components/post.tsx +++ b/ui/src/components/post.tsx @@ -21,6 +21,7 @@ interface PostState { commentSort: CommentSortType; community: Community; moderators: Array; + scrolled: boolean; } export class Post extends Component { @@ -31,7 +32,8 @@ export class Post extends Component { comments: [], commentSort: CommentSortType.Hot, community: null, - moderators: [] + moderators: [], + scrolled: false } constructor(props, context) { @@ -60,6 +62,15 @@ export class Post extends Component { autosize(document.querySelectorAll('textarea')); } + componentDidUpdate(lastProps: any, lastState: PostState, snapshot: any) { + if (!this.state.scrolled && lastState.comments.length > 0 && window.location.href.includes('#comment-')) { + let id = window.location.hash.split("#")[2]; + var elmnt = document.getElementById(`${id}`); + elmnt.scrollIntoView(); + this.state.scrolled = true; + } + } + render() { return (
@@ -294,7 +305,7 @@ export class CommentNode extends Component { render() { let node = this.props.node; return ( -
+
{node.comment.score}
@@ -336,7 +347,7 @@ export class CommentNode extends Component { }
  • - link + link