From cc8e8cdfc6a6fbbb9e5d21091273e6363e1d6776 Mon Sep 17 00:00:00 2001 From: Drew Rautenberg Date: Sat, 25 Jul 2026 16:36:56 -0500 Subject: [PATCH] created inital detail page --- barkmanui/src/features/jobs/JobDetail.tsx | 47 +++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 barkmanui/src/features/jobs/JobDetail.tsx diff --git a/barkmanui/src/features/jobs/JobDetail.tsx b/barkmanui/src/features/jobs/JobDetail.tsx new file mode 100644 index 0000000..ed718ab --- /dev/null +++ b/barkmanui/src/features/jobs/JobDetail.tsx @@ -0,0 +1,47 @@ +import {Container, Text, Title} from "@mantine/core"; +import {Link, useParams} from "react-router"; +import {Job} from "./types.ts"; +import {useQuery} from "@tanstack/react-query"; + + +function JobDetail() { + const params = useParams(); + + const {isPending, error, data, isFetching} = useQuery({ + queryKey: ['jobs', params.jobId], + queryFn: async (): Promise => { + const response = await fetch( + import.meta.env.VITE_API_URL + '/jobs/' + params.jobId, + ) + + if (!response.ok) throw new Error('Failed to fetch jobs ' + response.statusText) + + return await response.json() + }, + }); + + if (isPending) return 'Loading...' + + if (error) return 'An error has occurred: ' + error.message + + return ( + <> + + Item Detail +
{isFetching ? 'Updating...' : ''}
+ Customer ID: {data.customerId} + Name: {data.name} + {/*Status: {data.status.name}*/} + Start Date: {data.startDate} + End Date: ${data.endDate} + Venue: ${data.venue} + Address: ${data.address} + Notes: {data.notes} + + Edit +
+ + ) +} + +export default JobDetail \ No newline at end of file