<script lang="ts"> import { timefmt } from '../../../helpers.js'; import Nav from '../Nav.svelte'; import Tabs from '../Tabs.svelte'; import ChannelBar from '../ChannelBar.svelte'; import type { PageData } from './$types'; export let data: PageData; const channel = data.channel ? data.channel : 'main'; </script> <svelte:head> <title>{data.owner} / {data.repo}</title> </svelte:head> <div class="p-3"> <Nav user={data.owner} repo={data.repo} link={true} /> <Tabs user={data.owner} repo={data.repo} channel={data.channel} active="changes" /> <div class="pt-3"> <ChannelBar owner={data.owner} repo={data.repo} {channel} channels={data.channels} token={data.token} tab="change" can_delete={true} /> <div class="list"> {#each data.hashes as hash} <div class="list-row flex py-8" id={hash.hash}> {#if !hash.authors?.length} <div class="ms-16" id={hash.hash}> <a href="/{data.owner}/{data.repo}/change/{hash.hash}" ><code class="hash">{hash.hash}</code> </a> </div> {:else if hash.author?.login} <div class="size-12"> <a href="/{hash.author.login}"> <img class="profile-picture" alt="" src="/identicon/{hash.author.login}/small" /> </a> </div> <div> <div> <a class="link" href="/{data.owner}/{data.repo}/change/{hash.hash}" >{hash.message}</a> </div> <div> Created by <a class="change-authors link" href="/{hash.author.login}" >{hash.author.login}</a > {timefmt(hash.timestamp)} </div> <div> <a href="/{data.owner}/{data.repo}/change/{hash.hash}" ><code class="hash">{hash.hash}</code></a> </div> </div> {:else} <div class="size-12 my-auto"> <img alt="" class="profile-picture" src="/identicon/question/small" /> </div> <div> <a class="link" href="/{data.owner}/{data.repo}/change/{hash.hash}">{hash.message}</a> <div class="break-all"> Created by {hash.authors[0].name || hash.authors[0].key} {timefmt( hash.timestamp )} </div> <div class="break-all"> <a href="/{data.owner}/{data.repo}/change/{hash.hash}" ><code class="hash">{hash.hash}</code></a> </div> </div> {/if} {#if hash.unrecordable} <div class="w-auto shrink-0"> <form method="POST" action="/api/change/{data.owner}/{data.repo}:{channel}/unrecord"> <input type="hidden" name="hash" value={hash.hash} /> <input type="hidden" name="token" value={data.token} /> <button class="btn btn-outline-danger my-2">Unrecord</button> </form> </div> {/if} </div> {/each} </div> {#if data.hashes.length} <div class="text-center"> {#if data.range && data.hashes[0].n < data.range[1]} <a class="btn btn-outline-secondary mx-2" href="?to={data.hashes[0].n + 1}">Previous</a> {/if} {#if data.hashes[data.hashes.length - 1].n > 0} <a class="btn btn-outline-secondary mx-2" href="?from={data.hashes[0].n + 1}">Next</a> {/if} </div> {/if} </div> </div> <style lang="postcss"> img.profile-picture { width: 100%; aspect-ratio: 1; border-radius: 50%; padding: 0; background-color: white; } .hash { color: var(--color-neutral-500); } </style>