feat: more twemoji and discord parsing in places
This commit is contained in:
		| @@ -1,11 +1,21 @@ | ||||
| <script lang="ts"> | ||||
|     import { Modal, CardHeader, CardTitle, Image, Spinner } from 'sveltestrap'; | ||||
|     import FaUserCircle from 'svelte-icons/fa/FaUserCircle.svelte' | ||||
|     import default_avatar from '../assets/default_avatar.png'; | ||||
|     import { toHTML } from 'discord-markdown'; | ||||
|     import twemoji from 'twemoji';   | ||||
|  | ||||
|     export let item: any; | ||||
|  | ||||
|     let icon_url = item.avatar_url ? item.avatar_url : item.icon ? item.icon : default_avatar; | ||||
|     let htmlName: string; | ||||
|     let nameElement: any;  | ||||
|     let settings = JSON.parse(localStorage.getItem("pk-settings")); | ||||
|  | ||||
|     $: htmlName = toHTML(item.name); | ||||
|     $: if (settings && settings.appearance.twemoji) { | ||||
|         if (nameElement) twemoji.parse(nameElement); | ||||
|     } | ||||
|  | ||||
|     $: icon_url = item.avatar_url ? item.avatar_url : item.icon ? item.icon : default_avatar; | ||||
|  | ||||
|     let avatarOpen = false; | ||||
|     const toggleAvatarModal = () => (avatarOpen = !avatarOpen); | ||||
| @@ -18,7 +28,7 @@ | ||||
|             <div class="icon d-inline-block"> | ||||
|                 <slot name="icon" /> | ||||
|             </div> | ||||
|             <span style="vertical-align: middle;">{item.name} ({item.id})</span> | ||||
|             <span bind:this={nameElement} style="vertical-align: middle;">{@html htmlName} ({item.id})</span> | ||||
|         </div> | ||||
|         <div> | ||||
|         {#if loading} | ||||
|   | ||||
| @@ -3,24 +3,40 @@ | ||||
|     import moment from 'moment'; | ||||
|     import { toHTML } from 'discord-markdown'; | ||||
|     import type Sys from '../../api/system'; | ||||
|     import twemoji from 'twemoji'; | ||||
|     | ||||
|     export let user: Sys; | ||||
|     export let editMode: boolean; | ||||
|     export let isPublic: boolean; | ||||
|  | ||||
|     let htmlDescription: string; | ||||
|     let htmlName: string; | ||||
|     if (user.description) {  | ||||
|         htmlDescription = toHTML(user.description, {embed: true}); | ||||
|     } else { | ||||
|         htmlDescription = "(no description)"; | ||||
|     } | ||||
|  | ||||
|     if (user.name) { | ||||
|         htmlName = toHTML(user.name); | ||||
|     } | ||||
|  | ||||
|     let created = moment(user.created).format("MMM D, YYYY"); | ||||
|  | ||||
|     let bannerOpen = false; | ||||
|     const toggleBannerModal = () => (bannerOpen = !bannerOpen); | ||||
|  | ||||
|     let settings = JSON.parse(localStorage.getItem("pk-settings")); | ||||
|     let descriptionElement: any; | ||||
|     let nameElement: any; | ||||
|     let tagElement: any; | ||||
|  | ||||
|     $: if (settings && settings.appearance.twemoji) { | ||||
|         if (descriptionElement) twemoji.parse(descriptionElement); | ||||
|         if (nameElement) twemoji.parse(nameElement); | ||||
|         if (tagElement) twemoji.parse(tagElement); | ||||
|     } | ||||
|  | ||||
| </script> | ||||
|  | ||||
| <Row> | ||||
| @@ -31,12 +47,12 @@ | ||||
|     {/if} | ||||
|     {#if user.name} | ||||
|     <Col xs={12} lg={4} class="mb-2"> | ||||
|         <b>Name:</b> {user.name} | ||||
|         <span  bind:this={nameElement}><b>Name:</b> {@html htmlName}</span> | ||||
|     </Col> | ||||
|     {/if} | ||||
|     {#if user.tag} | ||||
|     <Col xs={12} lg={4} class="mb-2"> | ||||
|         <b>Tag:</b> {user.tag} | ||||
|         <span bind:this={tagElement}><b>Tag:</b> {user.tag}</span> | ||||
|     </Col> | ||||
|     {/if} | ||||
|     {#if user.created && !isPublic} | ||||
| @@ -65,7 +81,7 @@ | ||||
|     </Col> | ||||
|     {/if} | ||||
| </Row> | ||||
| <div class="my-2 description"> | ||||
| <div class="my-2 description" bind:this={descriptionElement}> | ||||
|     <b>Description:</b><br /> | ||||
|     {@html htmlDescription} | ||||
| </div> | ||||
|   | ||||
| @@ -4,6 +4,8 @@ | ||||
|     import FaLockOpen from 'svelte-icons/fa/FaLockOpen.svelte'; | ||||
|     import { loggedIn, currentUser } from '../stores'; | ||||
|     import { Link } from 'svelte-navigator'; | ||||
|     import twemoji from 'twemoji'; | ||||
|     import { toHTML } from 'discord-markdown'; | ||||
|  | ||||
|     import PKAPI from '../api/index'; | ||||
|     import type Sys from '../api/system'; | ||||
| @@ -61,6 +63,16 @@ | ||||
|         currentUser.update(() => null); | ||||
|     } | ||||
|  | ||||
|     let settings = JSON.parse(localStorage.getItem("settings")); | ||||
|     let welcomeElement: any; | ||||
|     let htmlName: string; | ||||
|     $: if (user && user.name) { | ||||
|         htmlName = toHTML(user.name); | ||||
|     } | ||||
|     $: if (settings && settings.appearance.twemoji) { | ||||
|         if (welcomeElement) twemoji.parse(welcomeElement); | ||||
|     } | ||||
|  | ||||
| </script> | ||||
|  | ||||
| <Container> | ||||
| @@ -82,9 +94,9 @@ | ||||
|                         verifying login... | ||||
|                     {:else if isLoggedIn} | ||||
|                         {#if user && user.name} | ||||
|                             <p>Welcome back, <b>{user.name}</b>!</p> | ||||
|                             <p bind:this={welcomeElement}>Welcome, <b>{@html htmlName}</b>!</p> | ||||
|                         {:else} | ||||
|                             <p>Welcome back!</p> | ||||
|                             <p>Welcome!</p> | ||||
|                         {/if} | ||||
|                         <Link to="/dash"><Button style="float: left;" color='primary'>Go to dash</Button></Link><Button style="float: right;" color='danger' on:click={logout}>Log out</Button> | ||||
|                     {:else} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user