summaryrefslogtreecommitdiff
path: root/components/vendor-data/vendor-data-container.tsx
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-04-02 09:54:08 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-04-02 09:54:08 +0000
commitdfdfae3018f8499240f48d28ce634f4a5c56e006 (patch)
tree4493b172c061fa5bf4e94c083788110eb1507f6d /components/vendor-data/vendor-data-container.tsx
parent21a72eeddc74cf775e2a76e2c569de970bd62a7f (diff)
벤더 코멘트 처리
Diffstat (limited to 'components/vendor-data/vendor-data-container.tsx')
-rw-r--r--components/vendor-data/vendor-data-container.tsx14
1 files changed, 10 insertions, 4 deletions
diff --git a/components/vendor-data/vendor-data-container.tsx b/components/vendor-data/vendor-data-container.tsx
index 69c22b79..11aa6f9d 100644
--- a/components/vendor-data/vendor-data-container.tsx
+++ b/components/vendor-data/vendor-data-container.tsx
@@ -6,7 +6,7 @@ import { ResizableHandle, ResizablePanel, ResizablePanelGroup } from "@/componen
import { cn } from "@/lib/utils"
import { ProjectSwitcher } from "./project-swicher"
import { Sidebar } from "./sidebar"
-import { useParams, usePathname, useRouter } from "next/navigation"
+import { usePathname, useRouter } from "next/navigation"
import { getFormsByContractItemId, type FormInfo } from "@/lib/forms/services"
import { Separator } from "@/components/ui/separator"
@@ -36,7 +36,9 @@ interface VendorDataContainerProps {
children: React.ReactNode
}
-function getTagIdFromPathname(path: string): number | null {
+function getTagIdFromPathname(path: string | null): number | null {
+ if (!path) return null;
+
// 태그 패턴 검사 (/tag/123)
const tagMatch = path.match(/\/tag\/(\d+)/)
if (tagMatch) return parseInt(tagMatch[1], 10)
@@ -47,6 +49,7 @@ function getTagIdFromPathname(path: string): number | null {
return null
}
+
export function VendorDataContainer({
projects,
defaultLayout = [20, 80],
@@ -55,9 +58,10 @@ export function VendorDataContainer({
children
}: VendorDataContainerProps) {
const pathname = usePathname()
- const router = useRouter()
+
const tagIdNumber = getTagIdFromPathname(pathname)
+
const [isCollapsed, setIsCollapsed] = React.useState(defaultCollapsed)
// 폼 로드 요청 추적
const lastRequestIdRef = React.useRef(0)
@@ -70,16 +74,18 @@ export function VendorDataContainer({
// URL에서 들어온 tagIdNumber를 우선으로 설정하기 위해 초기에 null로 두고, 뒤에서 useEffect로 세팅
const [selectedPackageId, setSelectedPackageId] = React.useState<number | null>(null)
+
const [formList, setFormList] = React.useState<FormInfo[]>([])
const [selectedFormCode, setSelectedFormCode] = React.useState<string | null>(null)
const [isLoadingForms, setIsLoadingForms] = React.useState(false)
+
// 현재 선택된 프로젝트/계약/패키지
const currentProject = projects.find((p) => p.projectId === selectedProjectId) ?? projects[0]
const currentContract = currentProject?.contracts.find((c) => c.contractId === selectedContractId)
?? currentProject?.contracts[0]
- const isTagOrFormRoute = pathname.includes("/tag/") || pathname.includes("/form/")
+ const isTagOrFormRoute = pathname ? (pathname.includes("/tag/") || pathname.includes("/form/")) : false
const currentPackageName = isTagOrFormRoute
? currentContract?.packages.find((pkg) => pkg.itemId === selectedPackageId)?.itemName || "None"
: "None"