Something went wrong. Try again.
Monorepo for Tangled tangled.org
Something went wrong. Try again.
Svelte
at icy/tmrrpn
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364<script lang="ts"> import { resolve } from "$app/paths"; import type { DiffFile, DiffStat } from "$lib/api/diff"; import type { CommitDetail } from "$lib/api/repo"; import { FULL_HASH_RE } from "$lib/api/repo"; import CommitHeader from "./CommitHeader.svelte"; import DiffView from "./DiffView.svelte"; import type { DiffStyle } from "./pierre"; import TabPanel from "$lib/components/ui/TabPanel.svelte"; import type { CommitStatuses } from "$lib/api/commitStatuses";
interface Props { ownerHandle: string; repoName: string; // the ref the page was loaded with. raw downloads only work for full hashes ref: string; commit: CommitDetail; // hex of the first parent, empty for a root commit parent?: string; changeId?: string; files: DiffFile[]; stat?: DiffStat; // side-by-side or stacked diffStyle?: DiffStyle; // server-prerendered shadow dom per row key, only for the initial ssr prerendered?: Record<string, string>; pipelineStatuses?: Promise<CommitStatuses>; }
let { ownerHandle, repoName, ref, commit, parent = "", changeId = "", files, stat, diffStyle = "unified", prerendered, pipelineStatuses }: Props = $props();
const base = $derived(`/${ownerHandle}/${repoName}`);
// the raw commit route only accepts full sha1/sha256 hex, anything shorter 404s const downloadUrls = $derived( FULL_HASH_RE.test(ref) ? { patch: resolve(`${base}/commit/${ref}.patch` as "/"), diff: resolve(`${base}/commit/${ref}.diff` as "/") } : undefined ); const blobBase = $derived(resolve(`${base}/blob/${encodeURIComponent(ref)}` as "/"));</script>
<div class="flex flex-col gap-4"> <TabPanel> <CommitHeader {ownerHandle} {repoName} {commit} {parent} {changeId} {pipelineStatuses} /> </TabPanel> <DiffView {files} {stat} {diffStyle} {downloadUrls} {blobBase} {prerendered} /></div>