diff options
| author | Adam Soltys <[email protected]> | 2023-01-06 22:56:52 -0800 |
|---|---|---|
| committer | Adam Soltys <[email protected]> | 2023-01-06 22:56:52 -0800 |
| commit | 9809520d30af802596d87686c59a2e5d53778dcc (patch) | |
| tree | 60849fc87c94a4c595e1ea95bc22a81ad6fe3d63 /src/components/Event.svelte | |
| parent | 8bbcfc3534feceb5fb5756ba29613ab327e7ea5c (diff) | |
| download | coinos-ui-9809520d30af802596d87686c59a2e5d53778dcc.tar.gz coinos-ui-9809520d30af802596d87686c59a2e5d53778dcc.zip | |
event route and reaction ui
Diffstat (limited to 'src/components/Event.svelte')
| -rw-r--r-- | src/components/Event.svelte | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/src/components/Event.svelte b/src/components/Event.svelte new file mode 100644 index 00000000..704a0636 --- /dev/null +++ b/src/components/Event.svelte @@ -0,0 +1,84 @@ +<script> + import { Avatar, Icon } from "$comp"; + export let event; + + let { id, user, seen, content } = event; + + let distance = (date) => { + let m = 60; + let h = 60 * m; + let d = 24 * h; + + let diff = Math.round(Date.now() / 1000) - date; + return diff > d + ? Math.round(diff / d) + 'd' + : diff > h + ? Math.round(diff / h) + 'h' + : diff > m + ? Math.round(diff / m) + 'm' + : diff > 2 + ? diff + 's' + : 'now'; + }; + + let w; +</script> + +<svelte:window bind:innerWidth={w} /> + +<div class="flex text-sm lg:text-base text-secondary hover:bg-gray-100 px-4 py-3" :key={id}> + <a href={`/${user.pubkey}`}> + <div class="mb-auto mr-2"> + <div class="md:hidden"> + <Avatar size={12} user={user} disabled={true} /> + </div> + <div class="hidden md:block"> + <Avatar size={20} user={user} disabled={true} /> + </div> + </div> + </a> + + <div class="grow" style={`max-width: ${w - 100}px`}> + <div class="w-full flex pb-1 text-black pt-1"> + <div> + {user.display_name || ''} + <span class="text-secondary">@{user.username}</span> + </div> + <div class="text-secondary"> {distance(seen)}</div> + </div> + <div class="break-words text-black"> + {content} + </div> + + <div class="flex justify-between text-sm text-secondary pt-3"> + <div class="flex group"> + <Icon + icon="party" + style="mr-1 w-10 my-auto opacity-50 group-hover:opacity-100 group-hover:bg-white rounded-full p-2" + /> + <div class="my-auto group-hover:text-black">444</div> + </div> + <div class="flex group"> + <Icon + icon="support" + style="mr-1 w-10 my-auto opacity-50 group-hover:opacity-100 group-hover:bg-white rounded-full p-2" + /> + <div class="my-auto group-hover:text-black">1072</div> + </div> + <div class="flex group"> + <Icon + icon="smile" + style="mr-1 w-10 my-auto opacity-50 group-hover:opacity-100 group-hover:bg-white rounded-full p-2" + /> + <div class="my-auto group-hover:text-black">26</div> + </div> + <div class="flex group"> + <Icon + icon="bolt" + style="mr-1 h-10 my-auto opacity-50 group-hover:opacity-100 group-hover:bg-white rounded-full p-2" + /> + <div class="my-auto group-hover:text-black">4</div> + </div> + </div> + </div> +</div> |
