Browse Source
so that it is easier to read large threads and connect replies to their parent messagemaster
4 changed files with 103 additions and 19 deletions
@ -1,3 +1,51 @@
@@ -1,3 +1,51 @@
|
||||
<div class="border-l border-blue-500 pl-1"> |
||||
<slot /> |
||||
</div> |
||||
<script lang="ts"> |
||||
import { icons_misc } from '../icons' |
||||
|
||||
let show_replies = true |
||||
export let num_replies = 0 |
||||
|
||||
const toggle_replies = () => { |
||||
show_replies = !show_replies |
||||
} |
||||
</script> |
||||
|
||||
{#if num_replies > 0} |
||||
<div class="border-l border-blue-500 pl-1"> |
||||
{#if show_replies} |
||||
<div class="opacity-20 hover:opacity-70" class:relative={show_replies}> |
||||
<button |
||||
on:click={() => { |
||||
toggle_replies() |
||||
}} |
||||
class=" right-0 -mt-8 p-1" |
||||
class:absolute={show_replies} |
||||
> |
||||
<span class="inline text-xs" |
||||
>{show_replies ? 'hide' : 'show'} {num_replies} replies</span |
||||
> |
||||
<svg |
||||
xmlns="http://www.w3.org/2000/svg" |
||||
viewBox="0 0 16 16" |
||||
class="inline h-7 w-7 flex-none fill-base-content pt-1" |
||||
> |
||||
{#each show_replies ? icons_misc.chevron_up : icons_misc.chevron_down as p} |
||||
<path d={p} /> |
||||
{/each} |
||||
</svg> |
||||
</button> |
||||
</div> |
||||
{:else} |
||||
<button |
||||
on:click={() => { |
||||
toggle_replies() |
||||
}} |
||||
class="w-full cursor-pointer bg-base-300 p-3 text-left hover:bg-base-400" |
||||
> |
||||
show {num_replies} hidden replies |
||||
</button> |
||||
{/if} |
||||
<div class:hidden={!show_replies}> |
||||
<slot /> |
||||
</div> |
||||
</div> |
||||
{/if} |
||||
|
||||
@ -0,0 +1,8 @@
@@ -0,0 +1,8 @@
|
||||
export const icons_misc = { |
||||
chevron_down: [ |
||||
'M6 8.825c-.2 0-.4-.1-.5-.2l-3.3-3.3c-.3-.3-.3-.8 0-1.1c.3-.3.8-.3 1.1 0l2.7 2.7l2.7-2.7c.3-.3.8-.3 1.1 0c.3.3.3.8 0 1.1l-3.2 3.2c-.2.2-.4.3-.6.3', |
||||
], |
||||
chevron_up: [ |
||||
'M6 4c-.2 0-.4.1-.5.2L2.2 7.5c-.3.3-.3.8 0 1.1c.3.3.8.3 1.1 0L6 5.9l2.7 2.7c.3.3.8.3 1.1 0c.3-.3.3-.8 0-1.1L6.6 4.3C6.4 4.1 6.2 4 6 4', |
||||
], |
||||
} |
||||
Loading…
Reference in new issue