summaryrefslogtreecommitdiff
path: root/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx
diff options
context:
space:
mode:
Diffstat (limited to 'lib/basic-contract/status-detail/basic-contracts-detail-table.tsx')
-rw-r--r--lib/basic-contract/status-detail/basic-contracts-detail-table.tsx66
1 files changed, 52 insertions, 14 deletions
diff --git a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx
index 2698842e..f18359de 100644
--- a/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx
+++ b/lib/basic-contract/status-detail/basic-contracts-detail-table.tsx
@@ -9,9 +9,11 @@ import type {
DataTableRowAction,
} from "@/types/table"
import { getDetailColumns } from "./basic-contracts-detail-columns"
-import { getBasicContractsByTemplateId } from "@/lib/basic-contract/service"
+import { getBasicContractsByTemplateId, checkGTCCommentsForContracts } from "@/lib/basic-contract/service"
import { BasicContractView } from "@/db/schema"
import { BasicContractDetailTableToolbarActions } from "./basic-contract-detail-table-toolbar-actions"
+import { toast } from "sonner"
+import { useRouter } from "next/navigation"
interface BasicContractsDetailTableProps {
templateId: number
@@ -25,14 +27,52 @@ interface BasicContractsDetailTableProps {
export function BasicContractsDetailTable({ templateId, promises }: BasicContractsDetailTableProps) {
const [rowAction, setRowAction] =
React.useState<DataTableRowAction<BasicContractView> | null>(null)
+
+ // GTC data 상태 관리
+ const [gtcData, setGtcData] = React.useState<Record<number, { gtcDocumentId: number | null; hasComments: boolean }>>({})
+ const [isLoadingGtcData, setIsLoadingGtcData] = React.useState(false)
const [{ data, pageCount }] = React.use(promises)
+ const router = useRouter()
- console.log(data,"data")
+ console.log(gtcData, "gtcData")
+ console.log(data, "data")
+
+ // GTC data 로딩
+ React.useEffect(() => {
+ const loadGtcData = async () => {
+ if (!data || data.length === 0) return;
+
+ // GTC가 포함된 template이 있는지 확인
+ const hasGtcTemplates = data.some(contract =>
+ contract.templateName?.includes('GTC')
+ );
+
+ if (!hasGtcTemplates) return;
+
+ setIsLoadingGtcData(true);
+ try {
+ const gtcResults = await checkGTCCommentsForContracts(data);
+ setGtcData(gtcResults);
+ } catch (error) {
+ console.error('Error checking GTC data:', error);
+ toast.error("GTC 데이터를 불러오는데 실패했습니다.");
+ } finally {
+ setIsLoadingGtcData(false);
+ }
+ };
+
+ loadGtcData();
+ }, [data]);
const columns = React.useMemo(
- () => getDetailColumns({ setRowAction }),
- [setRowAction]
+ () => getDetailColumns({
+ setRowAction,
+ gtcData,
+ isLoadingGtcData ,
+ router
+ }),
+ [setRowAction, gtcData, isLoadingGtcData, router]
)
const advancedFilterFields: DataTableAdvancedFilterField<BasicContractView>[] = [
@@ -76,15 +116,13 @@ export function BasicContractsDetailTable({ templateId, promises }: BasicContrac
})
return (
- <>
- <DataTable table={table}>
- <DataTableAdvancedToolbar
- table={table}
- filterFields={advancedFilterFields}
- >
- <BasicContractDetailTableToolbarActions table={table} />
- </DataTableAdvancedToolbar>
- </DataTable>
- </>
+ <DataTable table={table}>
+ <DataTableAdvancedToolbar
+ table={table}
+ filterFields={advancedFilterFields}
+ >
+ <BasicContractDetailTableToolbarActions table={table} />
+ </DataTableAdvancedToolbar>
+ </DataTable>
)
} \ No newline at end of file