prod-wag-backend-automate-s.../WebServices/client-frontend/src/components/NavigatePages/app000003.tsx

101 lines
2.7 KiB
TypeScript

"use client";
import React, { useEffect } from "react";
import buildingsMockData from "./mock-data";
import { BuildingFormData } from "../Pages/build/buildschema1";
import BuildPageForm1 from "../Pages/build/buildform1";
import BuildPage1 from "../Pages/build/buildpage1";
import BuildInfo1 from "../Pages/build/buildinfo1";
function app000003() {
const [modifyEnable, setModifyEnable] = React.useState<boolean | null>(false);
const [isCreate, setIsCreate] = React.useState<boolean | null>(false);
const [selectedId, setSelectedId] = React.useState<string | null>(null);
const [tableData, setTableData] = React.useState<BuildingFormData[]>([]);
const fecthData = async ({
// Add any parameters if needed
page = 1,
pageSize = 10,
orderBy = "asc",
orderType = "name",
query = {},
}) => {
// Simulate an API call
const response = await new Promise((resolve) =>
setTimeout(() => resolve(buildingsMockData), 1000)
);
setTableData(response as BuildingFormData[]);
};
// Fetch data when the component mounts
useEffect(() => {
fecthData({
page: 1,
pageSize: 10,
orderBy: "asc",
orderType: "uu_id",
query: {},
});
}, []);
const onSubmit = (data: BuildingFormData) => {
console.log("Form data:", data);
// Submit to API or do other operations
};
const handleUpdateModify = (uuid: string) => {
setSelectedId(uuid);
setModifyEnable(false);
};
const handleView = (uuid: string) => {
setSelectedId(uuid);
setModifyEnable(true);
};
return (
<>
<div className="h-screen overflow-y-auto">
<BuildInfo1
data={tableData}
selectedId={selectedId}
setIsCreate={() => setIsCreate(true)}
/>
{!isCreate ? (
<div className="min-w-full mx-4 p-6 rounded-lg shadow-md ">
{!selectedId ? (
<BuildPage1
data={tableData}
handleUpdateModify={handleUpdateModify}
handleView={handleView}
/>
) : (
<BuildPageForm1
data={tableData.find((item) => item.uu_id === selectedId) || {}}
onSubmit={onSubmit}
modifyEnable={modifyEnable}
setSelectedId={() => setSelectedId(null)}
/>
)}
</div>
) : (
<>
<BuildPageForm1
data={{
build_date: new Date(),
decision_period_date: new Date(),
}}
onSubmit={onSubmit}
modifyEnable={modifyEnable}
setSelectedId={() => setIsCreate(null)}
/>
</>
)}
</div>
</>
);
}
export default app000003;