diff --git a/fe-admin/src/pages/contracts/ContractCreatePage.tsx b/fe-admin/src/pages/contracts/ContractCreatePage.tsx
index 78858c2..f23383d 100644
--- a/fe-admin/src/pages/contracts/ContractCreatePage.tsx
+++ b/fe-admin/src/pages/contracts/ContractCreatePage.tsx
@@ -12,8 +12,8 @@
// hiển thị Chi tiết section.
import { useState, useMemo, type FormEvent, useEffect } from 'react'
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
-import { useNavigate, useSearchParams } from 'react-router-dom'
-import { FileText, Plus, Search, Save, ExternalLink, Trash2 } from 'lucide-react'
+import { useSearchParams } from 'react-router-dom'
+import { FileText, Plus, Search, Save, Pencil, Trash2 } from 'lucide-react'
import { toast } from 'sonner'
import { ContractDetailsTab } from '@/components/contracts/ContractDetailsTab'
import { PhaseBadge } from '@/components/PhaseBadge'
@@ -39,7 +39,6 @@ import {
const fmtMoney = (v: number) => v.toLocaleString('vi-VN')
export function ContractCreatePage() {
- const navigate = useNavigate()
const qc = useQueryClient()
const [searchParams, setSearchParams] = useSearchParams()
const typeFilter = searchParams.get('type') ? Number(searchParams.get('type')) : 2
@@ -187,28 +186,32 @@ export function ContractCreatePage() {
- {/* Action buttons — hover-show, sibling không nested để click không trigger row select */}
-
-
-
-
+ {/* Action buttons — Edit + Xóa, CHỈ hiện khi Phase = DangSoanThao
+ (state nhập liệu / điều chỉnh). Sau khi nộp lên Góp ý → ẩn cả 2.
+ Sibling không nested để click không trigger row select. */}
+ {c.phase === ContractPhase.DangSoanThao && (
+
+
+
+
+ )}
))}
diff --git a/fe-user/src/pages/contracts/ContractCreatePage.tsx b/fe-user/src/pages/contracts/ContractCreatePage.tsx
index 78858c2..f23383d 100644
--- a/fe-user/src/pages/contracts/ContractCreatePage.tsx
+++ b/fe-user/src/pages/contracts/ContractCreatePage.tsx
@@ -12,8 +12,8 @@
// hiển thị Chi tiết section.
import { useState, useMemo, type FormEvent, useEffect } from 'react'
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'
-import { useNavigate, useSearchParams } from 'react-router-dom'
-import { FileText, Plus, Search, Save, ExternalLink, Trash2 } from 'lucide-react'
+import { useSearchParams } from 'react-router-dom'
+import { FileText, Plus, Search, Save, Pencil, Trash2 } from 'lucide-react'
import { toast } from 'sonner'
import { ContractDetailsTab } from '@/components/contracts/ContractDetailsTab'
import { PhaseBadge } from '@/components/PhaseBadge'
@@ -39,7 +39,6 @@ import {
const fmtMoney = (v: number) => v.toLocaleString('vi-VN')
export function ContractCreatePage() {
- const navigate = useNavigate()
const qc = useQueryClient()
const [searchParams, setSearchParams] = useSearchParams()
const typeFilter = searchParams.get('type') ? Number(searchParams.get('type')) : 2
@@ -187,28 +186,32 @@ export function ContractCreatePage() {
- {/* Action buttons — hover-show, sibling không nested để click không trigger row select */}
-
-
-
-
+ {/* Action buttons — Edit + Xóa, CHỈ hiện khi Phase = DangSoanThao
+ (state nhập liệu / điều chỉnh). Sau khi nộp lên Góp ý → ẩn cả 2.
+ Sibling không nested để click không trigger row select. */}
+ {c.phase === ContractPhase.DangSoanThao && (
+