chore: update eslint and prettier configuration
This commit is contained in:
@@ -4,7 +4,11 @@ import { useMemo } from 'react';
|
||||
import type { ColumnDef } from '@tanstack/react-table';
|
||||
|
||||
import { Badge } from '@/components/ui/badge';
|
||||
import { Popover, PopoverContent, PopoverTrigger } from '@/components/ui/popover';
|
||||
import {
|
||||
Popover,
|
||||
PopoverContent,
|
||||
PopoverTrigger,
|
||||
} from '@/components/ui/popover';
|
||||
import type { Package, Project } from '@/types';
|
||||
|
||||
function EmptyValue() {
|
||||
@@ -42,9 +46,7 @@ function StateBadges({ value }: { value: string | null }) {
|
||||
</PopoverTrigger>
|
||||
<PopoverContent className="w-auto p-2" align="start">
|
||||
<div className="flex flex-col gap-1.5">
|
||||
<p className="mb-0.5 px-1 text-muted-foreground">
|
||||
Other States
|
||||
</p>
|
||||
<p className="mb-0.5 px-1 text-muted-foreground">Other States</p>
|
||||
{remainingStates.map((state) => (
|
||||
<Badge key={state} variant="secondary">
|
||||
{state}
|
||||
@@ -70,14 +72,16 @@ export function usePackageColumns(projects: Project[]) {
|
||||
accessorKey: 'project_id',
|
||||
header: 'Project',
|
||||
cell: ({ row }) =>
|
||||
projects.find((project) => project.id === row.original.project_id)?.name ||
|
||||
row.original.project_id,
|
||||
projects.find((project) => project.id === row.original.project_id)
|
||||
?.name || row.original.project_id,
|
||||
},
|
||||
{
|
||||
id: 'project_state',
|
||||
header: 'Project State',
|
||||
cell: ({ row }) => {
|
||||
const project = projects.find((item) => item.id === row.original.project_id);
|
||||
const project = projects.find(
|
||||
(item) => item.id === row.original.project_id,
|
||||
);
|
||||
return <StateBadges value={project?.state ?? null} />;
|
||||
},
|
||||
},
|
||||
|
||||
@@ -57,14 +57,23 @@ export function PackageDialog({
|
||||
canSubmit,
|
||||
isSaving,
|
||||
}: PackageDialogProps) {
|
||||
const projectErrorMessage = isSubmitted ? errors.project_id?.message : undefined;
|
||||
const projectErrorMessage = isSubmitted
|
||||
? errors.project_id?.message
|
||||
: undefined;
|
||||
const nameErrorMessage = isSubmitted ? errors.name?.message : undefined;
|
||||
const startErrorMessage = isSubmitted ? errors.chainage_start_km?.message : undefined;
|
||||
const endErrorMessage = isSubmitted ? errors.chainage_end_km?.message : undefined;
|
||||
const startErrorMessage = isSubmitted
|
||||
? errors.chainage_start_km?.message
|
||||
: undefined;
|
||||
const endErrorMessage = isSubmitted
|
||||
? errors.chainage_end_km?.message
|
||||
: undefined;
|
||||
|
||||
return (
|
||||
<Dialog open={open} onOpenChange={onOpenChange}>
|
||||
<DialogContent className="max-w-2xl" onOpenAutoFocus={(event) => event.preventDefault()}>
|
||||
<DialogContent
|
||||
className="max-w-2xl"
|
||||
onOpenAutoFocus={(event) => event.preventDefault()}
|
||||
>
|
||||
<DialogHeader className="gap-2">
|
||||
<DialogTitle className="flex items-center gap-3">
|
||||
<div className="rounded-lg bg-primary p-2 text-primary-foreground shadow-sm">
|
||||
@@ -101,12 +110,22 @@ export function PackageDialog({
|
||||
))}
|
||||
</SelectContent>
|
||||
</Select>
|
||||
<input type="hidden" {...register('project_id')} value={projectId} readOnly />
|
||||
<input
|
||||
type="hidden"
|
||||
{...register('project_id')}
|
||||
value={projectId}
|
||||
readOnly
|
||||
/>
|
||||
</FormField>
|
||||
) : null}
|
||||
|
||||
<div className="grid gap-5 md:grid-cols-2">
|
||||
<FormField id="package-name" label="Package Name" required error={nameErrorMessage}>
|
||||
<FormField
|
||||
id="package-name"
|
||||
label="Package Name"
|
||||
required
|
||||
error={nameErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="package-name"
|
||||
placeholder="e.g. Package 01"
|
||||
@@ -124,10 +143,18 @@ export function PackageDialog({
|
||||
</span>
|
||||
}
|
||||
>
|
||||
<Input id="package-region" placeholder="e.g. North Zone" {...register('region')} />
|
||||
<Input
|
||||
id="package-region"
|
||||
placeholder="e.g. North Zone"
|
||||
{...register('region')}
|
||||
/>
|
||||
</FormField>
|
||||
|
||||
<FormField id="package-start" label="Segment Start (km)" error={startErrorMessage}>
|
||||
<FormField
|
||||
id="package-start"
|
||||
label="Segment Start (km)"
|
||||
error={startErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="package-start"
|
||||
type="number"
|
||||
@@ -138,7 +165,11 @@ export function PackageDialog({
|
||||
/>
|
||||
</FormField>
|
||||
|
||||
<FormField id="package-end" label="Segment End (km)" error={endErrorMessage}>
|
||||
<FormField
|
||||
id="package-end"
|
||||
label="Segment End (km)"
|
||||
error={endErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="package-end"
|
||||
type="number"
|
||||
|
||||
@@ -49,7 +49,9 @@ function toNumberOrZero(value: string) {
|
||||
return value.trim() ? Number(value) : 0;
|
||||
}
|
||||
|
||||
function toPackagePayload(values: PackageFormValues): PackageCreate | PackageUpdate {
|
||||
function toPackagePayload(
|
||||
values: PackageFormValues,
|
||||
): PackageCreate | PackageUpdate {
|
||||
return {
|
||||
project_id: values.project_id,
|
||||
name: values.name.trim(),
|
||||
@@ -78,7 +80,8 @@ export function usePackageForm({ onSaved }: { onSaved: () => void }) {
|
||||
const packageId = useWatch({ control, name: 'id' });
|
||||
const projectId = useWatch({ control, name: 'project_id' }) || '';
|
||||
const packageName = useWatch({ control, name: 'name' }) || '';
|
||||
const canSubmit = projectId.trim().length > 0 && packageName.trim().length > 0;
|
||||
const canSubmit =
|
||||
projectId.trim().length > 0 && packageName.trim().length > 0;
|
||||
|
||||
const saveMutation = useMutation({
|
||||
mutationFn: (values: PackageFormValues) => {
|
||||
@@ -94,7 +97,9 @@ export function usePackageForm({ onSaved }: { onSaved: () => void }) {
|
||||
queryClient.invalidateQueries({ queryKey: packageKeys.all });
|
||||
},
|
||||
onError: (_error, values) => {
|
||||
toast.error(values.id ? 'Failed to update package' : 'Failed to create package');
|
||||
toast.error(
|
||||
values.id ? 'Failed to update package' : 'Failed to create package',
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
@@ -130,7 +135,11 @@ export function usePackageForm({ onSaved }: { onSaved: () => void }) {
|
||||
);
|
||||
|
||||
const setProjectId = useCallback(
|
||||
(value: string) => setValue('project_id', value, { shouldDirty: true, shouldValidate: true }),
|
||||
(value: string) =>
|
||||
setValue('project_id', value, {
|
||||
shouldDirty: true,
|
||||
shouldValidate: true,
|
||||
}),
|
||||
[setValue],
|
||||
);
|
||||
|
||||
|
||||
@@ -15,7 +15,10 @@ interface UsePackagesQueryParams {
|
||||
}
|
||||
|
||||
export function usePackagesQuery({ skip, limit }: UsePackagesQueryParams) {
|
||||
const listParams = useMemo<PaginationParams>(() => ({ skip, limit }), [limit, skip]);
|
||||
const listParams = useMemo<PaginationParams>(
|
||||
() => ({ skip, limit }),
|
||||
[limit, skip],
|
||||
);
|
||||
|
||||
return useQuery({
|
||||
queryKey: packageKeys.list(listParams),
|
||||
|
||||
Reference in New Issue
Block a user