///
import { TriangleAlert } from "lucide-react";
import { hydrateIsland } from "@/client/hydrate";
import { countRefsByKind } from "@/shared/git/ref-display";
export type { RepoAdminProps } from "./types";
import type { RepoAdminProps } from "./types";
import { useRepoAdminActions } from "./useRepoAdminActions";
import { RepoOverviewCard } from "./RepoOverviewCard";
import { CompactionCard } from "./CompactionCard";
import { PackFilesCard } from "./PackFilesCard";
import { RefsCard } from "./RefsCard";
import { DebugToolsCard } from "./DebugToolsCard";
import { DangerZoneCard } from "./DangerZoneCard";
export function RepoAdminIsland(props: RepoAdminProps) {
const {
owner,
repo,
head,
refs,
storageSize,
packCount,
packList,
state,
defaultBranch,
compactionStatus,
compactionStartedAt,
compactionData,
supersededPackCount,
} = props;
const {
compactionResult,
oidResult,
stateDump,
pending,
startCompaction,
clearCompaction,
removePack,
checkOid,
dumpState,
purgeRepo,
} = useRepoAdminActions(owner, repo);
const { branchCount, tagCount } = countRefsByKind(refs);
const packStats = Array.isArray(state.packStats) ? state.packStats : [];
return (
Admin Area
{" "}
- Actions here can permanently modify repository data
);
}
export function initRepoAdmin() {
hydrateIsland("repo-admin", RepoAdminIsland);
}