260316:1437 Refactor to NestJS 11 #6
Build and Deploy / deploy (push) Successful in 5m37s

This commit is contained in:
admin
2026-03-16 14:37:04 +07:00
parent 75314980d4
commit 1843ed8cf7
7 changed files with 33 additions and 35 deletions
@@ -26,7 +26,7 @@ interface Category {
}
export default function ContractCategoriesPage() {
const [selectedProjectId, setSelectedProjectId] = useState<number | undefined>(undefined);
const [selectedProjectId, setSelectedProjectId] = useState<string | undefined>(undefined);
const { data: projects = [], isLoading: isLoadingProjects } = useProjects();
const columns: ColumnDef<Category>[] = [
@@ -59,8 +59,8 @@ export default function ContractCategoriesPage() {
<div className="flex items-center gap-4">
<span className="text-sm font-medium">Project:</span>
<Select
value={selectedProjectId?.toString() ?? ''}
onValueChange={(v) => setSelectedProjectId(v ? parseInt(v) : undefined)}
value={selectedProjectId ?? ''}
onValueChange={(v) => setSelectedProjectId(v || undefined)}
>
<SelectTrigger className="w-[300px]">
{isLoadingProjects ? (
@@ -160,7 +160,7 @@ class MappingErrorBoundary extends React.Component<
}
}
function CategoryMappingSection({ projectId }: { projectId: number }) {
function CategoryMappingSection({ projectId }: { projectId: string }) {
return (
<div className="space-y-4">
<h2 className="text-xl font-semibold">Category Mappings (Map Sub-categories to Categories)</h2>
@@ -174,7 +174,7 @@ function CategoryMappingSection({ projectId }: { projectId: number }) {
);
}
function ManageMappings({ projectId }: { projectId: number }) {
function ManageMappings({ projectId }: { projectId: string }) {
const queryClient = useQueryClient();
const [selectedCat, setSelectedCat] = useState<string>('');
const [selectedSubCat, setSelectedSubCat] = useState<string>('');
@@ -210,7 +210,7 @@ function ManageMappings({ projectId }: { projectId: number }) {
const mappings = Array.isArray(rawMappings) ? rawMappings : [];
const createMutation = useMutation({
mutationFn: (data: { projectId: number; categoryId: number; subCategoryId: number }) =>
mutationFn: (data: { projectId: number | string; categoryId: number; subCategoryId: number }) =>
drawingMasterDataService.createContractMapping(data),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['contract-mappings'] });
@@ -18,7 +18,7 @@ interface SubCategory {
}
export default function ContractSubCategoriesPage() {
const [selectedProjectId, setSelectedProjectId] = useState<number | undefined>(undefined);
const [selectedProjectId, setSelectedProjectId] = useState<string | undefined>(undefined);
const { data: projects = [], isLoading: isLoadingProjects } = useProjects();
const columns: ColumnDef<SubCategory>[] = [
@@ -51,8 +51,8 @@ export default function ContractSubCategoriesPage() {
<div className="flex items-center gap-4">
<span className="text-sm font-medium">Project:</span>
<Select
value={selectedProjectId?.toString() ?? ''}
onValueChange={(v) => setSelectedProjectId(v ? parseInt(v) : undefined)}
value={selectedProjectId ?? ''}
onValueChange={(v) => setSelectedProjectId(v || undefined)}
>
<SelectTrigger className="w-[300px]">
{isLoadingProjects ? (
@@ -24,7 +24,7 @@ interface Volume {
}
export default function ContractVolumesPage() {
const [selectedProjectId, setSelectedProjectId] = useState<number | undefined>(undefined);
const [selectedProjectId, setSelectedProjectId] = useState<string | undefined>(undefined);
const { data: projects = [], isLoading: isLoadingProjects } = useProjects();
const columns: ColumnDef<Volume>[] = [
@@ -63,8 +63,8 @@ export default function ContractVolumesPage() {
<div className="flex items-center gap-4">
<span className="text-sm font-medium">Project:</span>
<Select
value={selectedProjectId?.toString() ?? ""}
onValueChange={(v) => setSelectedProjectId(v ? parseInt(v) : undefined)}
value={selectedProjectId ?? ''}
onValueChange={(v) => setSelectedProjectId(v || undefined)}
>
<SelectTrigger className="w-[300px]">
{isLoadingProjects ? (
@@ -19,7 +19,7 @@ interface MainCategory {
}
export default function ShopMainCategoriesPage() {
const [selectedProjectId, setSelectedProjectId] = useState<number | undefined>(undefined);
const [selectedProjectId, setSelectedProjectId] = useState<string | undefined>(undefined);
const { data: projects = [], isLoading: isLoadingProjects } = useProjects();
const columns: ColumnDef<MainCategory>[] = [
@@ -62,8 +62,8 @@ export default function ShopMainCategoriesPage() {
<div className="flex items-center gap-4">
<span className="text-sm font-medium">Project:</span>
<Select
value={selectedProjectId?.toString() ?? ''}
onValueChange={(v) => setSelectedProjectId(v ? parseInt(v) : undefined)}
value={selectedProjectId ?? ''}
onValueChange={(v) => setSelectedProjectId(v || undefined)}
>
<SelectTrigger className="w-[300px]">
{isLoadingProjects ? (
@@ -19,7 +19,7 @@ interface SubCategory {
}
export default function ShopSubCategoriesPage() {
const [selectedProjectId, setSelectedProjectId] = useState<number | undefined>(undefined);
const [selectedProjectId, setSelectedProjectId] = useState<string | undefined>(undefined);
const { data: projects = [], isLoading: isLoadingProjects } = useProjects();
console.log('Projects Data:', projects);
@@ -64,8 +64,8 @@ export default function ShopSubCategoriesPage() {
<div className="flex items-center gap-4">
<span className="text-sm font-medium">Project:</span>
<Select
value={selectedProjectId?.toString() ?? ''}
onValueChange={(v) => setSelectedProjectId(v ? parseInt(v) : undefined)}
value={selectedProjectId ?? ''}
onValueChange={(v) => setSelectedProjectId(v || undefined)}
>
<SelectTrigger className="w-[300px]">
{isLoadingProjects ? (