Something went wrong. Try again.
Monorepo for Tangled
Something went wrong. Try again.
Svelte
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586<script lang="ts"> import { resolve } from "$app/paths"; import GitBranch from "$icon/git-branch"; import GitCommitHorizontal from "$icon/git-commit-horizontal"; import SearchCode from "$icon/search-code"; import Tags from "$icon/tags"; import Input from "$lib/components/ui/Input.svelte"; import CloneDropdown from "$lib/components/repo/CloneDropdown.svelte"; import Separator from "$lib/components/ui/Separator.svelte"; import PanelHeader from "$lib/components/repo/PanelHeader.svelte"; import RefSelector from "$lib/components/repo/RefSelector.svelte"; import type { RepoInfo } from "$lib/components/repo/types";
interface Props { repo: RepoInfo; ref: string; refs: { branches: string[]; tags: string[]; capped: boolean }; totalCommits: number; totalBranches: number; totalTags: number; bobbinUrl: string; }
let { repo, ref, refs, totalCommits, totalBranches, totalTags, bobbinUrl }: Props = $props();
const base = $derived(`/${repo.ownerHandle}/${repo.name}`); const encodedRef = $derived(encodeURIComponent(ref));</script>
<div class="flex flex-wrap items-center justify-between gap-sm pb-lg"> <RefSelector ownerHandle={repo.ownerHandle} repoName={repo.name} current={ref} branches={refs.branches} tags={refs.tags} defaultBranch={repo.defaultBranch} />
<Separator class="order-last md:hidden" />
<form class="order-last w-full md:order-0 md:w-64" method="GET" action={resolve(`${base}/search` as "/")} > <Input class="w-full" type="text" name="q" placeholder="Find files or code..." aria-label="Search this repository" iconLeft={SearchCode} /> </form>
<div class="flex w-full items-center justify-between gap-sm md:w-auto"> <div class="flex items-center gap-sm md:hidden"> <PanelHeader compact title="Commits" icon={GitCommitHorizontal} href={`${base}/commits/${encodedRef}`} count={totalCommits} /> <PanelHeader compact title="Branches" icon={GitBranch} href={`${base}/branches`} count={totalBranches} approximate={refs.capped} /> <PanelHeader compact title="Tags" icon={Tags} href={`${base}/tags`} count={totalTags} approximate={refs.capped} /> </div> <CloneDropdown {repo} {ref} {bobbinUrl} /> </div></div>