<script lang="ts"> import { timefmt } from '../../../../helpers.js'; import Nav from '../../Nav.svelte'; import Tabs from '../../Tabs.svelte'; import Title from '../Title.svelte'; import CommentC from '../Comment.svelte'; import Tag from '../Tag.svelte'; import Patch from '../Patch.svelte'; import type { Comment } from '../../../../helpers.ts'; type Patch_ = { id: string; hash: string; can_add: boolean; can_remove: boolean; timestamp: number; pushed_by: string; removed?: number; authors: { login?: string; name?: string; key: string; }[]; header: { message: string; timestamp: string; }; }; type Tag_ = { timestamp: number; author: string; added: boolean; id?: string; tag?: { name: string; fg: string; color: string; }; }; type DiscussionItem = { comment?: Comment; patch?: Patch_; tag?: Tag_; }; type DiscussionT = { n: number; id: string; title: string; author: string; closed?: number; opened: number; }; export let data: { owner: string; repo: string; login: string; email: string; edit_comment?: string; d: DiscussionT; channels: string[]; default_channel: string; comments: DiscussionItem[]; uniq: number; token: string; }; </script> <svelte:head> <title>{data.owner}/{data.repo} - Discussion #{data.d.n} - {data.d.title}</title> </svelte:head> <div class="p-3"> <Nav user={data.owner} repo={data.repo} link={true} /> <Tabs user={data.owner} repo={data.repo} active="discussion" /> <div class="pt-3"> <Title n={data.d.n} title={data.d.title} /> <div class="my-3"> {#if data.d.closed} Closed {timefmt(data.d.closed * 1000)} {:else} Opened by <a class="author" href="/{data.d.author}">{data.d.author}</a> {timefmt(data.d.opened * 1000)} {/if} </div> </div> {#if data.comments.length} {#each data.comments as c} {#if c.comment} <CommentC disc={data.d} owner={data.owner} login={data.login} comment={c.comment} repo={data.repo} edit={c.comment.id == data.edit_comment} token={data.token} uniq={data.uniq} /> {:else if c.tag} <Tag owner={data.owner} repo={data.repo} tag={c.tag} /> {:else if c.patch} <Patch can_add={c.patch.can_add} can_remove={c.patch.can_remove} id={c.patch.id} disc={data.d.n} removed={c.patch.removed} hash={c.patch.hash} authors={c.patch.authors} timestamp={c.patch.timestamp} pushed_by={c.patch.pushed_by} owner={data.owner} repo={data.repo} header={c.patch.header} token={data.token} /> {/if} {/each} {/if} {#if data.login} <CommentC owner={data.owner} repo={data.repo} login={data.login} edit={true} comment={{ author: data.login, id: '', content: '', content_html: '', timestamp: 0 }} disc={data.d} token={data.token} uniq={data.uniq} /> {/if} </div>