Refactor API client and remove unused code

- Removed the ApiError class and related functions from the api-client module.
- Updated vendor detail page to handle errors without the ApiError class.
- Refactored various API modules to use in-memory mock data instead of commented-out fetch implementations.
- Removed the auth-token module as it was no longer needed.
- Updated error handling to use a more generic error structure.
- Adjusted common types to include ApiResult interface for better type management.
This commit is contained in:
2026-07-15 10:28:14 +05:30
parent cb9fd7dfa8
commit 0e4bcf174b
24 changed files with 59 additions and 655 deletions
@@ -10,7 +10,6 @@ import { warehousesApi } from "@/lib/api/warehouses"
import { itemsApi } from "@/lib/api/items"
import { uomsApi } from "@/lib/api/uoms"
import { vendorsApi } from "@/lib/api/vendors"
import { ApiError } from "@/lib/api-client"
import { errorMessage } from "@/lib/error-map"
import { validatePoLine } from "@/lib/validations/procurement"
import { cn } from "@/lib/utils"
@@ -172,7 +171,7 @@ export default function PurchaseOrderDetailPage() {
setLines(toDraftLines(result.data))
toast.success("Purchase order saved", `${result.data.docNo} updated (FR-PROC-05, edit-while-open).`)
} catch (err) {
const code = err instanceof ApiError ? err.code : (err as { code?: string })?.code
const code = (err as { code?: string })?.code
if (code === "CONCURRENCY_CONFLICT") {
setConflict(true)
setSaveError(errorMessage(err))
@@ -10,7 +10,6 @@ import { categoriesApi } from "@/lib/api/categories"
import { uomsApi } from "@/lib/api/uoms"
import { vendorsApi } from "@/lib/api/vendors"
import { warehousesApi } from "@/lib/api/warehouses"
import { ApiError } from "@/lib/api-client"
import { errorMessage, fieldErrors } from "@/lib/error-map"
import { validateConversionLine, validateItemForm, validateReorderLine } from "@/lib/validations/master-data"
import { cn } from "@/lib/utils"
@@ -147,7 +146,7 @@ export default function ItemDetailPage() {
setEtag(result.etag)
toast.success("Item saved", `${result.data.sku}${result.data.name}`)
} catch (err) {
const code = err instanceof ApiError ? err.code : (err as { code?: string })?.code
const code = (err as { code?: string })?.code
if (code === "CONCURRENCY_CONFLICT") {
setConflict(true)
setSaveError(errorMessage(err))
+1 -2
View File
@@ -6,7 +6,6 @@ import Link from "next/link"
import { AlertTriangle, ArrowLeft, Save } from "lucide-react"
import { vendorsApi } from "@/lib/api/vendors"
import { ApiError } from "@/lib/api-client"
import { errorMessage, fieldErrors } from "@/lib/error-map"
import { cn } from "@/lib/utils"
import { Vendor } from "@/types/master-data"
@@ -78,7 +77,7 @@ export default function VendorDetailPage() {
setEtag(result.etag)
toast.success("Vendor saved", `${result.data.code}${result.data.name}`)
} catch (err) {
const code = err instanceof ApiError ? err.code : (err as { code?: string })?.code
const code = (err as { code?: string })?.code
if (code === "CONCURRENCY_CONFLICT") {
setConflict(true)
setSaveError(errorMessage(err))