Browse Source

feat: show avatar at compose

to make it more in keeping with other event messages
when displayed in thread
master
DanConwayDev 2 years ago
parent
commit
42a8c0fe3d
No known key found for this signature in database
GPG Key ID: 68E15486D73F75E1
  1. 54
      src/lib/components/events/Compose.svelte
  2. 2
      src/lib/components/users/UserHeader.svelte

54
src/lib/components/events/Compose.svelte

@ -1,5 +1,7 @@
<script lang="ts"> <script lang="ts">
import { login } from '$lib/stores/users' import { logged_in_user, login } from '$lib/stores/users'
import UserHeader from '../users/UserHeader.svelte'
import { defaults as user_defaults } from '../users/type'
export let sendReply: (content: string) => void = () => {} export let sendReply: (content: string) => void = () => {}
export let placeholder = 'reply...' export let placeholder = 'reply...'
@ -12,27 +14,35 @@
let content = '' let content = ''
</script> </script>
<div class=""> <div class="flex pt-5">
<textarea <div class="mt-0 flex-none px-3">
disabled={submitting} <UserHeader
bind:value={content} avatar_only={true}
class="textarea textarea-primary w-full" user={$logged_in_user || { ...user_defaults, loading: false }}
{placeholder} />
></textarea> </div>
<div class="flex"> <div class="flex-grow pt-2">
<div class="flex-auto"></div> <textarea
<button
on:click={submit}
disabled={submitting} disabled={submitting}
class="align-right btn btn-primary btn-sm mt-2 align-bottom" bind:value={content}
> class="textarea textarea-primary w-full"
{#if submitting} {placeholder}
Sending ></textarea>
{:else if !logged_in} <div class="flex">
Login before Sending <div class="flex-auto"></div>
{:else} <button
Send on:click={submit}
{/if} disabled={submitting}
</button> class="align-right btn btn-primary btn-sm mt-2 align-bottom"
>
{#if submitting}
Sending
{:else if !logged_in}
Login before Sending
{:else}
Send
{/if}
</button>
</div>
</div> </div>
</div> </div>

2
src/lib/components/users/UserHeader.svelte

@ -9,6 +9,7 @@
export let inline = false export let inline = false
export let size: 'xs' | 'sm' | 'md' = 'md' export let size: 'xs' | 'sm' | 'md' = 'md'
export let avatar_only = false
$: ({ profile, loading } = user) $: ({ profile, loading } = user)
$: display_name = getName(user) $: display_name = getName(user)
@ -56,6 +57,7 @@
class:flex-auto={!inline} class:flex-auto={!inline}
class:m-auto={!inline} class:m-auto={!inline}
class:inline-block={inline} class:inline-block={inline}
class:hidden={avatar_only}
> >
{#if loading} {#if loading}
<div <div

Loading…
Cancel
Save