diff options
author | Filip785 <fdjuricic98@gmail.com> | 2020-07-08 19:46:18 +0200 |
---|---|---|
committer | Filip785 <fdjuricic98@gmail.com> | 2020-07-08 19:46:18 +0200 |
commit | 8fe8836bc263be11895fafa958409499c9e9fc9d (patch) | |
tree | 139c834b9f3245beeb7d7f101ce88c992ba77b8c | |
parent | 1b351e08aa1dfd4a6150111c9ce63b2251baa4fe (diff) |
Updates to PR as requested
-rw-r--r-- | ui/src/components/cake-day.tsx | 35 | ||||
-rw-r--r-- | ui/src/components/comment-node.tsx | 9 | ||||
-rw-r--r-- | ui/src/components/post-listing.tsx | 10 | ||||
-rw-r--r-- | ui/src/utils.ts | 11 |
4 files changed, 31 insertions, 34 deletions
diff --git a/ui/src/components/cake-day.tsx b/ui/src/components/cake-day.tsx index 67ac7f8b..be807184 100644 --- a/ui/src/components/cake-day.tsx +++ b/ui/src/components/cake-day.tsx @@ -1,37 +1,26 @@ import { Component } from 'inferno'; -import moment from 'moment'; import { i18n } from '../i18next'; interface CakeDayProps { creator_name: string; - creator_published: string; + is_post_creator?: boolean; } export class CakeDay extends Component<CakeDayProps, any> { render() { - const { creator_name, creator_published } = this.props; + const { creator_name, is_post_creator } = this.props; return ( - this.isCakeDay(creator_published) && ( - <div - className="mr-lg-2 d-inline-block unselectable pointer mx-2" - data-tippy-content={this.cakeDayTippy(creator_name)} - > - <svg class="icon icon-inline"> - <use xlinkHref="#icon-cake"></use> - </svg> - </div> - ) - ); - } - - isCakeDay(input: string): boolean { - const userCreationDate = moment.utc(input).local(); - const currentDate = moment(new Date()); - - return ( - userCreationDate.date() === currentDate.date() && - userCreationDate.month() === currentDate.month() + <div + className={`mr-lg-2 d-inline-block unselectable pointer${ + is_post_creator ? ' mx-2' : '' + }`} + data-tippy-content={this.cakeDayTippy(creator_name)} + > + <svg class="icon icon-inline"> + <use xlinkHref="#icon-cake"></use> + </svg> + </div> ); } diff --git a/ui/src/components/comment-node.tsx b/ui/src/components/comment-node.tsx index ab9321bd..2d1426b0 100644 --- a/ui/src/components/comment-node.tsx +++ b/ui/src/components/comment-node.tsx @@ -26,6 +26,7 @@ import { isMod, setupTippy, colorList, + isCakeDay, } from '../utils'; import moment from 'moment'; import { MomentTime } from './moment-time'; @@ -126,7 +127,6 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> { render() { let node = this.props.node; - const { creator_name, creator_published } = node.comment; return ( <div className={`comment ${ @@ -164,10 +164,9 @@ export class CommentNode extends Component<CommentNodeProps, CommentNodeState> { /> </span> - <CakeDay - creator_name={creator_name} - creator_published={creator_published} - /> + {isCakeDay(node.comment.creator_published) && ( + <CakeDay creator_name={node.comment.creator_name} /> + )} {this.isMod && ( <div className="badge badge-light d-none d-sm-inline mr-2"> diff --git a/ui/src/components/post-listing.tsx b/ui/src/components/post-listing.tsx index 7199510b..92a2f9cb 100644 --- a/ui/src/components/post-listing.tsx +++ b/ui/src/components/post-listing.tsx @@ -33,6 +33,7 @@ import { setupTippy, hostname, previewLines, + isCakeDay, } from '../utils'; import { i18n } from '../i18next'; import { CakeDay } from './cake-day'; @@ -258,8 +259,6 @@ export class PostListing extends Component<PostListingProps, PostListingState> { listing() { let post = this.props.post; - const { creator_name, creator_published } = post; - return ( <div class="row"> <div className={`vote-bar col-1 pr-0 small text-center`}> @@ -440,10 +439,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> { }} /> - <CakeDay - creator_name={creator_name} - creator_published={creator_published} - /> + {isCakeDay(post.creator_published) && ( + <CakeDay creator_name={post.creator_name} is_post_creator /> + )} {this.isMod && ( <span className="mx-1 badge badge-light"> diff --git a/ui/src/utils.ts b/ui/src/utils.ts index f65ca4e3..3ccaae12 100644 --- a/ui/src/utils.ts +++ b/ui/src/utils.ts @@ -53,6 +53,7 @@ import emojiShortName from 'emoji-short-name'; import Toastify from 'toastify-js'; import tippy from 'tippy.js'; import EmojiButton from '@joeattardi/emoji-button'; +import moment from 'moment'; export const repoUrl = 'https://github.com/LemmyNet/lemmy'; export const helpGuideUrl = '/docs/about_guide.html'; @@ -489,6 +490,16 @@ export function showAvatars(): boolean { ); } +export function isCakeDay(creator_published: string): boolean { + const userCreationDate = moment.utc(creator_published).local(); + const currentDate = moment(new Date()); + + return ( + userCreationDate.date() === currentDate.date() && + userCreationDate.month() === currentDate.month() + ); +} + // Converts to image thumbnail export function pictrsImage(hash: string, thumbnail: boolean = false): string { let root = `/pictrs/image`; |