Initial post-listing community non-local.

This commit is contained in:
Dessalines 2020-04-14 15:43:58 -04:00
parent 26ad37a8c0
commit f040dac647
2 changed files with 52 additions and 37 deletions

View File

@ -30,6 +30,7 @@ import {
showAvatars,
pictshareImage,
setupTippy,
hostname,
} from '../utils';
import { i18n } from '../i18next';
@ -149,9 +150,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
let post = this.props.post;
return (
<img
className={`img-fluid thumbnail rounded ${(post.nsfw ||
post.community_nsfw) &&
'img-blur'}`}
className={`img-fluid thumbnail rounded ${
(post.nsfw || post.community_nsfw) && 'img-blur'
}`}
src={src}
/>
);
@ -311,8 +312,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
</Link>
)}
</h5>
{post.url &&
!(new URL(post.url).hostname == window.location.hostname) && (
{post.url && !(hostname(post.url) == window.location.hostname) && (
<small class="d-inline-block">
<a
className="ml-2 text-muted font-italic"
@ -320,7 +320,7 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
target="_blank"
title={post.url}
>
{new URL(post.url).hostname}
{hostname(post.url)}
<svg class="ml-1 icon icon-inline">
<use xlinkHref="#icon-external-link"></use>
</svg>
@ -447,9 +447,15 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
{this.props.showCommunity && (
<span>
<span> {i18n.t('to')} </span>
{post.local ? (
<Link to={`/c/${post.community_name}`}>
{post.community_name}
</Link>
) : (
<a href={post.community_actor_id} target="_blank">
{hostname(post.ap_id)}/{post.community_name}
</a>
)}
</span>
)}
</li>
@ -531,8 +537,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
}
>
<svg
class={`icon icon-inline ${post.saved &&
'text-warning'}`}
class={`icon icon-inline ${
post.saved && 'text-warning'
}`}
>
<use xlinkHref="#icon-star"></use>
</svg>
@ -575,8 +582,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
}
>
<svg
class={`icon icon-inline ${post.deleted &&
'text-danger'}`}
class={`icon icon-inline ${
post.deleted && 'text-danger'
}`}
>
<use xlinkHref="#icon-trash"></use>
</svg>
@ -607,8 +615,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
data-tippy-content={i18n.t('view_source')}
>
<svg
class={`icon icon-inline ${this.state
.viewSource && 'text-success'}`}
class={`icon icon-inline ${
this.state.viewSource && 'text-success'
}`}
>
<use xlinkHref="#icon-file-text"></use>
</svg>
@ -628,8 +637,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
}
>
<svg
class={`icon icon-inline ${post.locked &&
'text-danger'}`}
class={`icon icon-inline ${
post.locked && 'text-danger'
}`}
>
<use xlinkHref="#icon-lock"></use>
</svg>
@ -646,8 +656,9 @@ export class PostListing extends Component<PostListingProps, PostListingState> {
}
>
<svg
class={`icon icon-inline ${post.stickied &&
'text-success'}`}
class={`icon icon-inline ${
post.stickied && 'text-success'
}`}
>
<use xlinkHref="#icon-pin"></use>
</svg>

4
ui/src/utils.ts vendored
View File

@ -823,3 +823,7 @@ function hsl(num: number) {
function randomHsl() {
return `hsla(${Math.random() * 360}, 100%, 50%, 1)`;
}
export function hostname(url: string): string {
return new URL(url).hostname;
}