[CLAUDE] FE-Admin+FE-User: hotfix CI build TS errors — forcedPhase rename + unused import
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 3m3s
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 3m3s
CI run #125 + #126 fail (red ❌ Gitea Actions) do TS compile errors trong commit `18ebfa1` + `0c5db13` không catch local (UAT skip-verify rule). Errors: PeListPanel.tsx:41 — Property 'forcedPhase' does not exist (renamed to editableOnly nhưng quên xóa khỏi destructuring args list) PeListPanel.tsx:81,106 — Cannot find name 'editableOnly' (do destructuring vẫn dùng forcedPhase cũ → editableOnly không được declare ở scope) PeWorkspaceCreateView.tsx:20 — 'PurchaseEvaluationType' declared but never read (sau khi đổi <Select> Loại quy trình → <Input disabled> chỉ dùng PurchaseEvaluationTypeLabel, không cần enum value nữa) Fix: ~ PeListPanel × 2 app: destructuring `forcedPhase,` → `editableOnly = false,` ~ PeWorkspaceCreateView × 2 app: bỏ `PurchaseEvaluationType` khỏi import Verify: npm run build fe-admin + fe-user pass · 0 TS error · dotnet test 83 vẫn pass (Migration 17 + TraLai phase enum đã verify trước). UAT mode rule: vẫn skip verify cho task FE-only nhỏ — nhưng phát hiện multi-rename refactor + bỏ import nên check `npm run build` 1 lần trước commit. TODO update memory feedback_uat_skip_verify.md thêm exception khi prop rename hoặc remove unused import. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -38,7 +38,7 @@ export function PeListPanel({
|
|||||||
showCreateButton = false,
|
showCreateButton = false,
|
||||||
onCreate,
|
onCreate,
|
||||||
onEditClick,
|
onEditClick,
|
||||||
forcedPhase,
|
editableOnly = false,
|
||||||
}: {
|
}: {
|
||||||
typeFilter: number | null
|
typeFilter: number | null
|
||||||
pendingMe?: boolean
|
pendingMe?: boolean
|
||||||
|
|||||||
@ -16,10 +16,7 @@ import { Label } from '@/components/ui/Label'
|
|||||||
import { Select } from '@/components/ui/Select'
|
import { Select } from '@/components/ui/Select'
|
||||||
import { api } from '@/lib/api'
|
import { api } from '@/lib/api'
|
||||||
import { getErrorMessage } from '@/lib/apiError'
|
import { getErrorMessage } from '@/lib/apiError'
|
||||||
import {
|
import { PurchaseEvaluationTypeLabel } from '@/types/purchaseEvaluation'
|
||||||
PurchaseEvaluationType,
|
|
||||||
PurchaseEvaluationTypeLabel,
|
|
||||||
} from '@/types/purchaseEvaluation'
|
|
||||||
import { BudgetPhase, type BudgetListItem } from '@/types/budget'
|
import { BudgetPhase, type BudgetListItem } from '@/types/budget'
|
||||||
import type { Paged, Project } from '@/types/master'
|
import type { Paged, Project } from '@/types/master'
|
||||||
|
|
||||||
|
|||||||
@ -38,7 +38,7 @@ export function PeListPanel({
|
|||||||
showCreateButton = false,
|
showCreateButton = false,
|
||||||
onCreate,
|
onCreate,
|
||||||
onEditClick,
|
onEditClick,
|
||||||
forcedPhase,
|
editableOnly = false,
|
||||||
}: {
|
}: {
|
||||||
typeFilter: number | null
|
typeFilter: number | null
|
||||||
pendingMe?: boolean
|
pendingMe?: boolean
|
||||||
|
|||||||
@ -16,10 +16,7 @@ import { Label } from '@/components/ui/Label'
|
|||||||
import { Select } from '@/components/ui/Select'
|
import { Select } from '@/components/ui/Select'
|
||||||
import { api } from '@/lib/api'
|
import { api } from '@/lib/api'
|
||||||
import { getErrorMessage } from '@/lib/apiError'
|
import { getErrorMessage } from '@/lib/apiError'
|
||||||
import {
|
import { PurchaseEvaluationTypeLabel } from '@/types/purchaseEvaluation'
|
||||||
PurchaseEvaluationType,
|
|
||||||
PurchaseEvaluationTypeLabel,
|
|
||||||
} from '@/types/purchaseEvaluation'
|
|
||||||
import { BudgetPhase, type BudgetListItem } from '@/types/budget'
|
import { BudgetPhase, type BudgetListItem } from '@/types/budget'
|
||||||
import type { Paged, Project } from '@/types/master'
|
import type { Paged, Project } from '@/types/master'
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user