diff --git a/frontend/src/lib/api/entities.ts b/frontend/src/lib/api/entities.ts index 875cb10..66861dc 100644 --- a/frontend/src/lib/api/entities.ts +++ b/frontend/src/lib/api/entities.ts @@ -111,6 +111,14 @@ export enum ErrorCode { RequestTooBig = 4001, } +export const pronounDisplay = (entry: Pronoun) => { + if (entry.display_text) return entry.display_text; + + const split = entry.pronouns.split("/"); + if (split.length < 2) return split.join("/"); + else return split.slice(0, 2).join("/"); +}; + export const userAvatars = (user: User | MeUser | MemberPartialUser) => { if (!user.avatar) return []; diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index fccd7c6..99ff373 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -5,12 +5,20 @@ import Navigation from "./nav/Navigation.svelte"; import type { LayoutData } from "./$types"; import { version } from "$app/environment"; + import { PUBLIC_BASE_URL } from "$env/static/public"; export let data: LayoutData; const versionMismatch = data.git_commit !== version && data.git_commit !== "[unknown]"; + + pronouns.cc + + + + +
diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index f9c82a3..fd37ee8 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,5 +1,12 @@ + + pronouns.cc + + +

pronouns.cc

diff --git a/frontend/src/routes/@[username]/+page.svelte b/frontend/src/routes/@[username]/+page.svelte index f387b0a..05098ad 100644 --- a/frontend/src/routes/@[username]/+page.svelte +++ b/frontend/src/routes/@[username]/+page.svelte @@ -11,16 +11,56 @@ import PartialMemberCard from "$lib/components/PartialMemberCard.svelte"; import FallbackImage from "$lib/components/FallbackImage.svelte"; import { userStore } from "$lib/store"; - import { userAvatars } from "$lib/api/entities"; + import { pronounDisplay, userAvatars, WordStatus } from "$lib/api/entities"; + import { PUBLIC_BASE_URL } from "$env/static/public"; export let data: PageData; let bio: string | null; $: bio = data.bio ? sanitizeHtml(marked.parse(data.bio)) : null; + + const favNames = data.names.filter((entry) => entry.status === WordStatus.Favourite); + const favPronouns = data.pronouns.filter((entry) => entry.status === WordStatus.Favourite); @{data.name} - pronouns.cc + + + + + {#if data.avatar} + + {/if} + + {#if favNames.length !== 0 && favPronouns.length !== 0} + + {:else if favNames.length !== 0} + + {:else if favPronouns.length !== 0} + + {:else if data.bio && data.bio !== ""} + + {:else} + + {/if}
diff --git a/frontend/src/routes/@[username]/[memberName]/+page.svelte b/frontend/src/routes/@[username]/[memberName]/+page.svelte index 5c11172..2e4f35d 100644 --- a/frontend/src/routes/@[username]/[memberName]/+page.svelte +++ b/frontend/src/routes/@[username]/[memberName]/+page.svelte @@ -9,16 +9,58 @@ import PronounLink from "$lib/components/PronounLink.svelte"; import FallbackImage from "$lib/components/FallbackImage.svelte"; import { Button, Icon } from "sveltestrap"; - import { memberAvatars } from "$lib/api/entities"; + import { memberAvatars, pronounDisplay, WordStatus } from "$lib/api/entities"; + import { PUBLIC_BASE_URL } from "$env/static/public"; export let data: PageData; let bio: string | null; $: bio = data.bio ? sanitizeHtml(marked.parse(data.bio)) : null; + + const favNames = data.names.filter((entry) => entry.status === WordStatus.Favourite); + const favPronouns = data.pronouns.filter((entry) => entry.status === WordStatus.Favourite); {data.display_name ?? data.name} - @{data.user.name} - pronouns.cc + + + + + {#if data.avatar} + + {/if} + + {#if favNames.length !== 0 && favPronouns.length !== 0} + + {:else if favNames.length !== 0} + + {:else if favPronouns.length !== 0} + + {:else if data.bio && data.bio !== ""} + + {:else} + + {/if}
diff --git a/frontend/src/routes/pronouns/[...pronouns]/+page.svelte b/frontend/src/routes/pronouns/[...pronouns]/+page.svelte index 32e40f8..26d3e42 100644 --- a/frontend/src/routes/pronouns/[...pronouns]/+page.svelte +++ b/frontend/src/routes/pronouns/[...pronouns]/+page.svelte @@ -1,4 +1,5 @@ + + + + + +

{displayText}

Here are some example sentences using {displayText} pronouns!