summaryrefslogtreecommitdiff
path: root/lib/gtc-contract/status
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gtc-contract/status')
-rw-r--r--lib/gtc-contract/status/create-gtc-document-dialog.tsx18
-rw-r--r--lib/gtc-contract/status/delete-gtc-documents-dialog.tsx8
-rw-r--r--lib/gtc-contract/status/gtc-contract-table.tsx8
-rw-r--r--lib/gtc-contract/status/gtc-documents-table-columns.tsx4
-rw-r--r--lib/gtc-contract/status/gtc-documents-table-floating-bar.tsx4
-rw-r--r--lib/gtc-contract/status/gtc-documents-table-toolbar-actions.tsx4
6 files changed, 35 insertions, 11 deletions
diff --git a/lib/gtc-contract/status/create-gtc-document-dialog.tsx b/lib/gtc-contract/status/create-gtc-document-dialog.tsx
index 6791adfa..98cd249f 100644
--- a/lib/gtc-contract/status/create-gtc-document-dialog.tsx
+++ b/lib/gtc-contract/status/create-gtc-document-dialog.tsx
@@ -42,11 +42,18 @@ import { toast } from "sonner"
import { createGtcDocumentSchema, type CreateGtcDocumentSchema } from "@/lib/gtc-contract/validations"
import { createGtcDocument, getProjectsForSelect } from "@/lib/gtc-contract/service"
import { type Project } from "@/db/schema/projects"
+import { useSession } from "next-auth/react"
export function CreateGtcDocumentDialog() {
const [open, setOpen] = React.useState(false)
const [projects, setProjects] = React.useState<Project[]>([])
const [isCreatePending, startCreateTransition] = React.useTransition()
+ const { data: session } = useSession()
+
+ const currentUserId =React.useMemo(() => {
+ return session?.user?.id ? Number(session.user.id) : null;
+ }, [session]);
+
React.useEffect(() => {
if (open) {
@@ -70,8 +77,17 @@ export function CreateGtcDocumentDialog() {
async function onSubmit(data: CreateGtcDocumentSchema) {
startCreateTransition(async () => {
+
+ if (!currentUserId) {
+ toast.error("로그인이 필요합니다")
+ return
+ }
+
try {
- const result = await createGtcDocument(data)
+ const result = await createGtcDocument({
+ ...data,
+ createdById: currentUserId
+ })
if (result.error) {
toast.error(`에러: ${result.error}`)
diff --git a/lib/gtc-contract/status/delete-gtc-documents-dialog.tsx b/lib/gtc-contract/status/delete-gtc-documents-dialog.tsx
index 5779a2b6..50c8d3f4 100644
--- a/lib/gtc-contract/status/delete-gtc-documents-dialog.tsx
+++ b/lib/gtc-contract/status/delete-gtc-documents-dialog.tsx
@@ -29,6 +29,7 @@ import {
} from "@/components/ui/drawer"
import { deleteGtcDocuments } from "@/lib/gtc-contract/service"
+import { useSession } from "next-auth/react"
import { type GtcDocumentWithRelations } from "@/db/schema/gtc"
interface DeleteGtcDocumentsDialogProps
@@ -46,11 +47,18 @@ export function DeleteGtcDocumentsDialog({
}: DeleteGtcDocumentsDialogProps) {
const [isDeletePending, startDeleteTransition] = React.useTransition()
const isDesktop = useMediaQuery("(min-width: 640px)")
+ const { data: session } = useSession()
function onDelete() {
+ if (!session?.user?.id) {
+ toast.error("로그인이 필요합니다.")
+ return
+ }
+
startDeleteTransition(async () => {
const { error } = await deleteGtcDocuments({
ids: gtcDocuments.map((doc) => doc.id),
+ updatedById: Number(session.user.id)
})
if (error) {
diff --git a/lib/gtc-contract/status/gtc-contract-table.tsx b/lib/gtc-contract/status/gtc-contract-table.tsx
index dd04fbc9..0fb637b6 100644
--- a/lib/gtc-contract/status/gtc-contract-table.tsx
+++ b/lib/gtc-contract/status/gtc-contract-table.tsx
@@ -26,6 +26,7 @@ import { GtcDocumentsTableFloatingBar } from "./gtc-documents-table-floating-bar
import { UpdateGtcDocumentSheet } from "./update-gtc-document-sheet"
import { CreateGtcDocumentDialog } from "./create-gtc-document-dialog"
import { CreateNewRevisionDialog } from "./create-new-revision-dialog"
+import { useRouter } from "next/navigation"
interface GtcDocumentsTableProps {
promises: Promise<
@@ -39,13 +40,14 @@ interface GtcDocumentsTableProps {
export function GtcDocumentsTable({ promises }: GtcDocumentsTableProps) {
const [{ data, pageCount }, projects, users] = React.use(promises)
+ const router = useRouter()
const [rowAction, setRowAction] =
React.useState<DataTableRowAction<GtcDocumentWithRelations> | null>(null)
const columns = React.useMemo(
- () => getColumns({ setRowAction }),
- [setRowAction]
+ () => getColumns({ setRowAction , router}),
+ [setRowAction, router]
)
/**
@@ -167,7 +169,7 @@ export function GtcDocumentsTable({ promises }: GtcDocumentsTableProps) {
originalDocument={rowAction?.row.original ?? null}
/>
- <CreateGtcDocumentDialog />
+ {/* <CreateGtcDocumentDialog /> */}
</>
)
} \ No newline at end of file
diff --git a/lib/gtc-contract/status/gtc-documents-table-columns.tsx b/lib/gtc-contract/status/gtc-documents-table-columns.tsx
index 2d5f08b9..f6eb81d0 100644
--- a/lib/gtc-contract/status/gtc-documents-table-columns.tsx
+++ b/lib/gtc-contract/status/gtc-documents-table-columns.tsx
@@ -20,7 +20,6 @@ import {
import { DataTableColumnHeaderSimple } from "@/components/data-table/data-table-column-simple-header"
import { type GtcDocumentWithRelations } from "@/db/schema/gtc"
-import { useRouter } from "next/navigation"
interface GetColumnsProps {
setRowAction: React.Dispatch<React.SetStateAction<DataTableRowAction<GtcDocumentWithRelations> | null>>
@@ -29,8 +28,7 @@ interface GetColumnsProps {
/**
* GTC Documents 테이블 컬럼 정의
*/
-export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef<GtcDocumentWithRelations>[] {
- const router = useRouter()
+export function getColumns({ setRowAction, router }: GetColumnsProps): ColumnDef<GtcDocumentWithRelations>[] {
// ----------------------------------------------------------------
// 1) select 컬럼 (체크박스)
diff --git a/lib/gtc-contract/status/gtc-documents-table-floating-bar.tsx b/lib/gtc-contract/status/gtc-documents-table-floating-bar.tsx
index a9139ed2..8fac597e 100644
--- a/lib/gtc-contract/status/gtc-documents-table-floating-bar.tsx
+++ b/lib/gtc-contract/status/gtc-documents-table-floating-bar.tsx
@@ -8,9 +8,9 @@ import { Button } from "@/components/ui/button"
import { Separator } from "@/components/ui/separator"
import { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from "@/components/ui/tooltip"
-import { exportTableToCSV } from "@/lib/export"
import { type GtcDocumentWithRelations } from "@/db/schema/gtc"
import { DeleteGtcDocumentsDialog } from "./delete-gtc-documents-dialog"
+import { exportTableToExcel } from "@/lib/export"
interface GtcDocumentsTableFloatingBarProps {
table: Table<GtcDocumentWithRelations>
@@ -68,7 +68,7 @@ export function GtcDocumentsTableFloatingBar({
variant="secondary"
size="sm"
onClick={() =>
- exportTableToCSV(table, {
+ exportTableToExcel(table, {
filename: "gtc-documents",
excludeColumns: ["select", "actions"],
})
diff --git a/lib/gtc-contract/status/gtc-documents-table-toolbar-actions.tsx b/lib/gtc-contract/status/gtc-documents-table-toolbar-actions.tsx
index cb52b2ed..90f2f8a8 100644
--- a/lib/gtc-contract/status/gtc-documents-table-toolbar-actions.tsx
+++ b/lib/gtc-contract/status/gtc-documents-table-toolbar-actions.tsx
@@ -3,11 +3,11 @@
import { type Table } from "@tanstack/react-table"
import { Download } from "lucide-react"
-import { exportTableToCSV } from "@/lib/export"
import { Button } from "@/components/ui/button"
import { type GtcDocumentWithRelations } from "@/db/schema/gtc"
import { CreateGtcDocumentDialog } from "./create-gtc-document-dialog"
+import { exportTableToExcel } from "@/lib/export"
interface GtcDocumentsTableToolbarActionsProps {
table: Table<GtcDocumentWithRelations>
@@ -23,7 +23,7 @@ export function GtcDocumentsTableToolbarActions({
variant="outline"
size="sm"
onClick={() =>
- exportTableToCSV(table, {
+ exportTableToExcel(table, {
filename: "gtc-documents",
excludeColumns: ["select", "actions"],
})