feat: port TechLog Studio validation workflow

This commit is contained in:
DongHyeonka
2026-08-15 23:59:08 +09:00
parent 5933265975
commit 9c6906fc6f
20 changed files with 1551 additions and 35 deletions
@@ -1,9 +1,9 @@
import { useEffect, useState } from "react";
import { Link } from "react-router-dom";
import type { StudioDashboard as StudioDashboardData } from "../../../contracts/studio/contract.ts";
import type { components } from "../../../contracts/studio/generated.ts";
import { useStudio } from "../use-studio.ts";
import { GuardedStudioLink } from "./guarded-studio-link.tsx";
type DocumentSummary = components["schemas"]["DocumentSummary"];
@@ -27,9 +27,9 @@ function WorkRow({ item }: Readonly<{ item: DocumentSummary }>) {
<p className="studio-row-label">{kindLabel[item.kind]}</p>
<div>
<h3>
<Link to={`/studio/documents/${item.id}/edit`}>
<GuardedStudioLink href={`/studio/documents/${item.id}/edit`}>
{item.title || "제목 없는 작업본"}
</Link>
</GuardedStudioLink>
</h3>
<p>
{item.project?.label ?? "프로젝트 미지정"} · {actionLabel[item.nextAction]}
@@ -59,7 +59,7 @@ function WorkSection({
<section className="studio-work-section">
<div className="studio-section-title">
<h2>{title}</h2>
<Link to={href}> </Link>
<GuardedStudioLink href={href}> </GuardedStudioLink>
</div>
<div className="studio-work-list">
{items.length ? (
@@ -105,9 +105,9 @@ export function StudioDashboard() {
<h1> </h1>
<p> · .</p>
</div>
<Link className="studio-primary-action" to="/studio/documents/new">
<GuardedStudioLink className="studio-primary-action" href="/studio/documents/new">
</Link>
</GuardedStudioLink>
</header>
{error ? (
<p className="studio-screen-error" role="alert">
@@ -160,7 +160,9 @@ export function StudioDashboard() {
<section className="studio-work-section">
<div className="studio-section-title">
<h2> </h2>
<Link to="/studio/publications"> </Link>
<GuardedStudioLink href="/studio/publications">
</GuardedStudioLink>
</div>
<div className="studio-work-list">
{dashboard.recentPublications.length ? (