-
-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathMembershipItem.svelte
More file actions
64 lines (59 loc) · 2.05 KB
/
MembershipItem.svelte
File metadata and controls
64 lines (59 loc) · 2.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
<script lang="ts">
import Message from './Message.svelte';
import MessageRun from './MessageRuns.svelte';
import { showProfileIcons } from '../ts/storage';
import { membershipBackground, milestoneChatBackground } from '../ts/chat-constants';
import GiftedMembershipToggle from './GiftedMembershipToggle.svelte';
export let message: Ytc.ParsedMessage;
const classes = 'inline-flex flex-col rounded break-words overflow-hidden w-full text-white';
$: membership = message.membership;
$: membershipGift = message.membershipGiftPurchase;
$: if (!(membership || membershipGift)) {
console.error('Not a membership item', { message });
}
$: isMilestoneChat = message.message.length > 0;
$: primaryText = (membership || membershipGift)?.headerPrimaryText;
</script>
{#if membership || membershipGift}
<div class={classes} style="background-color: #{membershipBackground};">
<div
class="p-2 relative"
style="{isMilestoneChat ? `background-color: #${milestoneChatBackground};` : ''}"
>
{#if $showProfileIcons}
<img
class="h-5 w-5 inline align-middle rounded-full flex-none mr-1"
src={message.author.profileIcon.src}
alt={message.author.profileIcon.alt}
/>
{/if}
<span class="font-bold tracking-wide align-middle mr-3">
{message.author.name}
</span>
{#if primaryText && primaryText.length > 0}
<MessageRun
class="font-medium mr-3"
runs={primaryText}
/>
{/if}
{#if membership}
<MessageRun runs={membership.headerSubtext} />
{/if}
{#if membershipGift}
<div class="float-right inline-flex flex-row items-center">
<img
class="h-10 w-10"
src={membershipGift.image.src}
alt={membershipGift.image.alt}
title={membershipGift.image.alt} />
<GiftedMembershipToggle />
</div>
{/if}
</div>
{#if isMilestoneChat}
<div class="p-2">
<Message message={message} hideName />
</div>
{/if}
</div>
{/if}