"use client"; import { useResultStore } from '@/common/stores/useResultStore'; import { StockOpnameLocationRes } from '@/common/types/stockOpname'; import { Skeleton } from '@nextui-org/react'; import { useQuery } from '@tanstack/react-query' import styles from './table.module.css' import { CheckIcon, CornerDownRightIcon, XIcon } from 'lucide-react'; import { Team, User } from 'prisma/generated/client'; import clsxm from '@/common/libs/clsxm'; import getClientCredential from '@/common/libs/getClientCredential'; import _ from 'lodash'; const DetailRow = ({ productId }: { productId: number }) => { const { filter } = useResultStore() const detailLocation = useQuery({ queryKey: ['detailLocation', productId, filter.company], queryFn: async () => { const searchParams = new URLSearchParams() if (!filter?.company) return null searchParams.set('companyId', filter.company) searchParams.set('productId', productId.toString()) return await fetch(`/api/stock-opname/location?${searchParams}`) .then(res => res.json()) } }) if (detailLocation.isLoading) { return (
) } return ( <> {detailLocation.data?.map((location: StockOpnameLocationRes) => (
{location.name}
))} ) } type Data = { quantity?: number | undefined, user?: User } const Column = ({ team, data }: { team: Team, data: Data }) => { const credential = getClientCredential() return credential?.team === team && credential.team !== 'VERIFICATION' ? (
{_.isNumber(data.quantity) && } {_.isUndefined(data.quantity) && }
) : ( ) } const QuantityColumn = ({ data }: { data: Data }) => { const credential = getClientCredential() if (!(credential?.team == "VERIFICATION")) return '-' return (
{_.isUndefined(data.quantity) && '-'} {data.quantity !== null && ( <> {data.quantity}
{data.user?.name}
)}
) } export default DetailRow