From c2832348f86372ed2a081af3b6fc096dacce2473 Mon Sep 17 00:00:00 2001 From: Vassiliy Yegorov Date: Sun, 5 Jul 2026 12:19:50 +0700 Subject: [PATCH] feat(web): view zone without template, snapshot button, no-template status, drop delete Co-Authored-By: Claude Opus 4.8 (1M context) Claude-Session: https://claude.ai/code/session_01BwxdSt4reTm7Dj1oxRvpP3 --- web/src/api/client.ts | 7 +- web/src/components/StatusBadge.test.tsx | 6 ++ web/src/components/StatusBadge.tsx | 7 +- web/src/hooks/useApi.ts | 25 ++++- web/src/pages/DomainDiffPage.test.tsx | 49 +++++++++- web/src/pages/DomainDiffPage.tsx | 123 +++++++++++++++++++++--- web/src/pages/DomainsPage.test.tsx | 18 +++- web/src/pages/DomainsPage.tsx | 27 +----- 8 files changed, 217 insertions(+), 45 deletions(-) diff --git a/web/src/api/client.ts b/web/src/api/client.ts index a55bc2e..f09822a 100644 --- a/web/src/api/client.ts +++ b/web/src/api/client.ts @@ -3,7 +3,7 @@ import type { AuthState, Account, CreateAccountInput, Template, CreateTemplateInput, Domain, CreateDomainInput, ChangesetResponse, ApplyRequest, - Schedule, Channel, CreateChannelInput, CheckRun, + Schedule, Channel, CreateChannelInput, CheckRun, RecordDTO, } from "./types" export class UnauthorizedError extends Error { @@ -74,6 +74,11 @@ export const api = { setDomainTemplate: (projectId: string, id: string, templateId: string | null) => req(projectPath(projectId, `/domains/${id}`), { method: "PATCH", body: JSON.stringify({ templateId }) }), + zoneRecords: (projectId: string, id: string) => + req(projectPath(projectId, `/domains/${id}/records`)), + templateFromZone: (projectId: string, id: string) => + req