From 354823e00e2e21307c5fcfa6a97d80edcf91a5ea Mon Sep 17 00:00:00 2001 From: Drew Rautenberg Date: Sat, 18 Jan 2025 19:47:42 -0600 Subject: [PATCH] Add EditItem component and route for editing inventory items --- barkmanui/src/App.tsx | 2 + barkmanui/src/features/inventory/EditItem.tsx | 56 +++++++++++++++++++ .../src/features/inventory/ItemDetail.tsx | 4 +- 3 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 barkmanui/src/features/inventory/EditItem.tsx diff --git a/barkmanui/src/App.tsx b/barkmanui/src/App.tsx index 2e871c0..d901048 100644 --- a/barkmanui/src/App.tsx +++ b/barkmanui/src/App.tsx @@ -5,6 +5,7 @@ import { QueryClientProvider, QueryClient } from '@tanstack/react-query'; import {createTheme, MantineProvider} from '@mantine/core'; import '@mantine/core/styles.css'; import ItemDetail from "./features/inventory/ItemDetail.tsx"; +import EditItem from "./features/inventory/EditItem.tsx"; // Create a client const queryClient = new QueryClient() @@ -36,6 +37,7 @@ function App() { } /> } /> } /> + } /> diff --git a/barkmanui/src/features/inventory/EditItem.tsx b/barkmanui/src/features/inventory/EditItem.tsx new file mode 100644 index 0000000..c0c2e23 --- /dev/null +++ b/barkmanui/src/features/inventory/EditItem.tsx @@ -0,0 +1,56 @@ +import {NumberInput, Stack, Text, Textarea, TextInput} from "@mantine/core"; +import {BarkHeader} from "../../common/components/BarkHeader.tsx"; +import {useParams} from "react-router"; +import {InventoryItem} from "./types.ts"; +import {useQuery} from "@tanstack/react-query"; + + + +function EditItem() { + let params = useParams(); + + const { isPending, error, data, isFetching } = useQuery({ + queryKey: ['inventory', params.itemId], + queryFn: async (): Promise => { + const response = await fetch( + import.meta.env.VITE_API_URL + '/inventory/' + params.itemId, + ) + + if (!response.ok) throw new Error('Failed to fetch inventory ' + response.statusText) + + return await response.json() + }, + }); + + if (isPending) return 'Loading...' + + if (error) return 'An error has occurred: ' + error.message + + return ( + <> + + + Edit Item +
{isFetching ? 'Updating...' : ''}
+ ID: {data.id} + + + + + + + Replacement Cost: ${data.replacementCost} +