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 { 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}
|
||||
|
||||
@@ -42,14 +42,21 @@ export function ProjectDialog({
|
||||
isSaving,
|
||||
}: ProjectDialogProps) {
|
||||
const nameErrorMessage = isSubmitted ? errors.name?.message : undefined;
|
||||
const startLatErrorMessage = isSubmitted ? errors.start_lat?.message : undefined;
|
||||
const startLngErrorMessage = isSubmitted ? errors.start_lng?.message : undefined;
|
||||
const startLatErrorMessage = isSubmitted
|
||||
? errors.start_lat?.message
|
||||
: undefined;
|
||||
const startLngErrorMessage = isSubmitted
|
||||
? errors.start_lng?.message
|
||||
: undefined;
|
||||
const endLatErrorMessage = isSubmitted ? errors.end_lat?.message : undefined;
|
||||
const endLngErrorMessage = isSubmitted ? errors.end_lng?.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">
|
||||
@@ -65,7 +72,12 @@ export function ProjectDialog({
|
||||
</DialogHeader>
|
||||
|
||||
<form onSubmit={onSubmit} className="space-y-6">
|
||||
<FormField id="project-name" label="Project Name" required error={nameErrorMessage}>
|
||||
<FormField
|
||||
id="project-name"
|
||||
label="Project Name"
|
||||
required
|
||||
error={nameErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="project-name"
|
||||
placeholder="Enter a descriptive project name"
|
||||
@@ -76,7 +88,11 @@ export function ProjectDialog({
|
||||
|
||||
<div className="grid gap-5 md:grid-cols-2">
|
||||
<FormField id="project-state" label="State">
|
||||
<Input id="project-state" placeholder="e.g. Maharashtra" {...register('state')} />
|
||||
<Input
|
||||
id="project-state"
|
||||
placeholder="e.g. Maharashtra"
|
||||
{...register('state')}
|
||||
/>
|
||||
</FormField>
|
||||
<FormField
|
||||
id="project-corridor"
|
||||
@@ -102,7 +118,11 @@ export function ProjectDialog({
|
||||
START POINT
|
||||
</p>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<FormField id="project-start-lat" label="Lat" error={startLatErrorMessage}>
|
||||
<FormField
|
||||
id="project-start-lat"
|
||||
label="Lat"
|
||||
error={startLatErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="project-start-lat"
|
||||
type="number"
|
||||
@@ -113,7 +133,11 @@ export function ProjectDialog({
|
||||
{...register('start_lat')}
|
||||
/>
|
||||
</FormField>
|
||||
<FormField id="project-start-lng" label="Lng" error={startLngErrorMessage}>
|
||||
<FormField
|
||||
id="project-start-lng"
|
||||
label="Lng"
|
||||
error={startLngErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="project-start-lng"
|
||||
type="number"
|
||||
@@ -133,7 +157,11 @@ export function ProjectDialog({
|
||||
END POINT
|
||||
</p>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<FormField id="project-end-lat" label="Lat" error={endLatErrorMessage}>
|
||||
<FormField
|
||||
id="project-end-lat"
|
||||
label="Lat"
|
||||
error={endLatErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="project-end-lat"
|
||||
type="number"
|
||||
@@ -144,7 +172,11 @@ export function ProjectDialog({
|
||||
{...register('end_lat')}
|
||||
/>
|
||||
</FormField>
|
||||
<FormField id="project-end-lng" label="Lng" error={endLngErrorMessage}>
|
||||
<FormField
|
||||
id="project-end-lng"
|
||||
label="Lng"
|
||||
error={endLngErrorMessage}
|
||||
>
|
||||
<Input
|
||||
id="project-end-lng"
|
||||
type="number"
|
||||
|
||||
@@ -53,7 +53,9 @@ function toNullableNumber(value: string) {
|
||||
return value.trim() ? Number(value) : null;
|
||||
}
|
||||
|
||||
function toProjectPayload(values: ProjectFormValues): ProjectCreate | ProjectUpdate {
|
||||
function toProjectPayload(
|
||||
values: ProjectFormValues,
|
||||
): ProjectCreate | ProjectUpdate {
|
||||
return {
|
||||
name: values.name.trim(),
|
||||
state: trimOptional(values.state),
|
||||
@@ -98,7 +100,9 @@ export function useProjectForm({ onSaved }: { onSaved: () => void }) {
|
||||
queryClient.invalidateQueries({ queryKey: projectKeys.all });
|
||||
},
|
||||
onError: (_error, values) => {
|
||||
toast.error(values.id ? 'Failed to update project' : 'Failed to create project');
|
||||
toast.error(
|
||||
values.id ? 'Failed to update project' : 'Failed to create project',
|
||||
);
|
||||
},
|
||||
});
|
||||
|
||||
|
||||
@@ -15,7 +15,10 @@ interface UseProjectsQueryParams {
|
||||
}
|
||||
|
||||
export function useProjectsQuery({ skip, limit }: UseProjectsQueryParams) {
|
||||
const listParams = useMemo<PaginationParams>(() => ({ skip, limit }), [limit, skip]);
|
||||
const listParams = useMemo<PaginationParams>(
|
||||
() => ({ skip, limit }),
|
||||
[limit, skip],
|
||||
);
|
||||
|
||||
return useQuery({
|
||||
queryKey: projectKeys.list(listParams),
|
||||
@@ -36,7 +39,8 @@ export function useDeleteProjectMutation() {
|
||||
},
|
||||
onError: () => {
|
||||
toast.error('Deletion failed', {
|
||||
description: 'The project could not be removed. Please try again or check your permissions.',
|
||||
description:
|
||||
'The project could not be removed. Please try again or check your permissions.',
|
||||
});
|
||||
},
|
||||
});
|
||||
|
||||
@@ -12,7 +12,10 @@ import { ProjectTable } from './components/ProjectTable';
|
||||
import { useProjectColumns } from './components/ProjectColumns';
|
||||
import { useProjectFilters } from './hooks/useProjectFilters';
|
||||
import { useProjectForm } from './hooks/useProjectForm';
|
||||
import { useDeleteProjectMutation, useProjectsQuery } from './hooks/useProjectQueries';
|
||||
import {
|
||||
useDeleteProjectMutation,
|
||||
useProjectsQuery,
|
||||
} from './hooks/useProjectQueries';
|
||||
|
||||
export default function ProjectPage() {
|
||||
const [isDialogOpen, setIsDialogOpen] = useState(false);
|
||||
@@ -60,7 +63,9 @@ export default function ProjectPage() {
|
||||
|
||||
const deleteProject = useCallback(
|
||||
(project: Project) => {
|
||||
if (!confirm(`Are you sure you want to delete project "${project.name}"?`)) {
|
||||
if (
|
||||
!confirm(`Are you sure you want to delete project "${project.name}"?`)
|
||||
) {
|
||||
return;
|
||||
}
|
||||
deleteProjectMutation.mutate(project);
|
||||
|
||||
Reference in New Issue
Block a user