summaryrefslogtreecommitdiff
path: root/examples/hackernews/src/components/Comment.astro
blob: 07e55d19b953aee94e35bd8e42ac9187c9228163 (plain) (blame)
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
---
import type { IComment } from '../types.js';
import For from './For.astro';
import Show from './Show.astro';
import Toggle from './Toggle.astro';

interface Props {
	comment: IComment;
}

const { comment } = Astro.props;
---

<li>
	<div class="by">
		<a href={`/users/${comment.user}`}>{comment.user}</a>{' '}
		{comment.time_ago}
	</div>
	<div class="text" set:html={comment.content} />
	<Show when={comment.comments.length}>
		<Toggle open>
			<For each={comment.comments}>{(comment: IComment) => <Astro.self comment={comment} />}</For>
		</Toggle>
	</Show>
</li>

<style>
	li {
		border-top: 1px solid #eee;
		position: relative;
	}

	.by,
	.text {
		font-size: 0.9em;
		margin: 1em 0;
	}

	.by {
		color: rgb(51 65 85);
	}

	.by a {
		color: rgb(51 65 85);
		text-decoration: underline;
	}

	.text {
		overflow-wrap: break-word;
	}

	.text :global(a:hover) {
		color: #335d92;
	}

	.text :global(pre) {
		white-space: pre-wrap;
	}
</style>