parts and areas tested
This commit is contained in:
@@ -9,7 +9,7 @@ import { DateTimePicker } from "@/components/ui/date-time-picker"
|
||||
import { useUpdateBuildSitesMutation } from "@/pages/build-sites/update/queries"
|
||||
import { BuildAreasUpdate, buildAreasUpdateSchema } from "@/pages/build-areas/update/schema"
|
||||
|
||||
const BuildAreasForm = ({ refetchTable, initData, selectedUuid }: { refetchTable: () => void, initData: BuildAreasUpdate, selectedUuid: string }) => {
|
||||
const BuildAreasForm = ({ refetchTable, initData, selectedUuid, buildId }: { refetchTable: () => void, initData: BuildAreasUpdate, selectedUuid: string, buildId: string }) => {
|
||||
|
||||
const form = useForm<BuildAreasUpdate>({ resolver: zodResolver(buildAreasUpdateSchema), defaultValues: { ...initData } })
|
||||
|
||||
@@ -17,7 +17,7 @@ const BuildAreasForm = ({ refetchTable, initData, selectedUuid }: { refetchTable
|
||||
|
||||
const mutation = useUpdateBuildSitesMutation();
|
||||
|
||||
function onSubmit(values: BuildAreasUpdate) { mutation.mutate({ data: values as any || initData, uuid: selectedUuid }); setTimeout(() => refetchTable(), 400) }
|
||||
function onSubmit(values: BuildAreasUpdate) { mutation.mutate({ data: values as any || initData, uuid: selectedUuid, buildId }); setTimeout(() => refetchTable(), 400) }
|
||||
|
||||
return (
|
||||
<Form {...form}>
|
||||
|
||||
@@ -6,7 +6,7 @@ import { Button } from '@/components/ui/button';
|
||||
import { BuildAreasDataTableUpdate } from './table/data-table';
|
||||
import { useGraphQlBuildAreasList } from '../queries';
|
||||
|
||||
const PageUpdateBuildSites = () => {
|
||||
const PageUpdateBuildAreas = () => {
|
||||
const [page, setPage] = useState(1);
|
||||
const [limit, setLimit] = useState(10);
|
||||
const [sort, setSort] = useState({ createdAt: 'desc' });
|
||||
@@ -14,23 +14,21 @@ const PageUpdateBuildSites = () => {
|
||||
const searchParams = useSearchParams()
|
||||
const router = useRouter()
|
||||
const uuid = searchParams?.get('uuid') || null
|
||||
const backToBuildAddress = <>
|
||||
<div>UUID not found in search params</div>
|
||||
<Button onClick={() => router.push('/build-areas')}>Back to Build Areas</Button>
|
||||
</>
|
||||
if (!uuid) { return backToBuildAddress }
|
||||
const { data, isLoading, error, refetch } = useGraphQlBuildAreasList({ limit, skip: (page - 1) * limit, sort, filters: { ...filters, uuid } });
|
||||
const backToBuildAddress = <><div>UUID not found in search params</div><Button onClick={() => router.push('/build-areas')}>Back to Build Areas</Button></>
|
||||
const buildId = searchParams?.get('build');
|
||||
const noUUIDFound = <><div>Back To Builds. No uuid is found on headers</div><Button onClick={() => router.push('/builds')}>Back to Builds</Button></>
|
||||
if (!buildId) { return noUUIDFound }; if (!uuid) { return backToBuildAddress }
|
||||
const { data, isLoading, error, refetch } = useGraphQlBuildAreasList({ limit, skip: (page - 1) * limit, sort, filters: { ...filters, buildId, uuid } });
|
||||
const initData = data?.data?.[0] || null;
|
||||
if (!initData) { return backToBuildAddress }
|
||||
return (
|
||||
<>
|
||||
<BuildAreasDataTableUpdate
|
||||
data={data?.data || []} totalCount={data?.totalCount || 0} currentPage={page} pageSize={limit}
|
||||
onPageChange={setPage} onPageSizeChange={setLimit} refetchTable={refetch}
|
||||
data={data?.data || []} totalCount={data?.totalCount || 0} currentPage={page} pageSize={limit} onPageChange={setPage} onPageSizeChange={setLimit} refetchTable={refetch} buildID={buildId}
|
||||
/>
|
||||
<BuildAreasForm refetchTable={refetch} initData={initData} selectedUuid={uuid} />
|
||||
<BuildAreasForm refetchTable={refetch} initData={initData} selectedUuid={uuid} buildId={buildId} />
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
export { PageUpdateBuildSites };
|
||||
export { PageUpdateBuildAreas };
|
||||
|
||||
@@ -30,7 +30,7 @@ export function DraggableRow({ row }: { row: Row<z.infer<typeof schema>> }) {
|
||||
)
|
||||
}
|
||||
|
||||
function getColumns(router: any, deleteHandler: (id: string) => void): ColumnDef<schemaType>[] {
|
||||
function getColumns(deleteHandler: (id: string) => void): ColumnDef<schemaType>[] {
|
||||
return [
|
||||
{
|
||||
accessorKey: "uuid",
|
||||
|
||||
@@ -80,6 +80,7 @@ export function BuildAreasDataTableUpdate({
|
||||
onPageChange,
|
||||
onPageSizeChange,
|
||||
refetchTable,
|
||||
buildID
|
||||
}: {
|
||||
data: schemaType[],
|
||||
totalCount: number,
|
||||
@@ -87,7 +88,8 @@ export function BuildAreasDataTableUpdate({
|
||||
pageSize: number,
|
||||
onPageChange: (page: number) => void,
|
||||
onPageSizeChange: (size: number) => void,
|
||||
refetchTable: () => void
|
||||
refetchTable: () => void,
|
||||
buildID: string
|
||||
}) {
|
||||
|
||||
const router = useRouter();
|
||||
@@ -101,7 +103,7 @@ export function BuildAreasDataTableUpdate({
|
||||
|
||||
const deleteMutation = useDeletePersonMutation()
|
||||
const deleteHandler = (id: string) => { deleteMutation.mutate({ uuid: id }); setTimeout(() => { refetchTable() }, 200) }
|
||||
const columns = getColumns(router, deleteHandler);
|
||||
const columns = getColumns(deleteHandler);
|
||||
const pagination = React.useMemo(() => ({ pageIndex: currentPage - 1, pageSize: pageSize, }), [currentPage, pageSize])
|
||||
const totalPages = Math.ceil(totalCount / pageSize)
|
||||
|
||||
@@ -167,7 +169,7 @@ export function BuildAreasDataTableUpdate({
|
||||
})}
|
||||
</DropdownMenuContent>
|
||||
</DropdownMenu>
|
||||
<Button variant="outline" size="sm" onClick={() => { router.push("/build-areas") }}>
|
||||
<Button variant="outline" size="sm" onClick={() => { router.push(`/build-areas?build=${buildID}`) }}>
|
||||
<Home />
|
||||
<span className="hidden lg:inline">Back to Build Areas</span>
|
||||
</Button>
|
||||
|
||||
Reference in New Issue
Block a user