Add pre-commit hooks for linting and formatting
Set up pre-commit framework with ruff (backend) and ESLint/Prettier/tsc (frontend) hooks to catch issues locally before CI. Auto-format all frontend files with Prettier to comply with the new check. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -1,12 +1,22 @@
|
||||
import { type FormEvent, useState } from 'react'
|
||||
import { FormModal } from './FormModal'
|
||||
import { PokemonSelector } from './PokemonSelector'
|
||||
import { METHOD_ORDER, METHOD_CONFIG, getMethodLabel } from '../EncounterMethodBadge'
|
||||
import type { RouteEncounterDetail, CreateRouteEncounterInput, UpdateRouteEncounterInput } from '../../types'
|
||||
import {
|
||||
METHOD_ORDER,
|
||||
METHOD_CONFIG,
|
||||
getMethodLabel,
|
||||
} from '../EncounterMethodBadge'
|
||||
import type {
|
||||
RouteEncounterDetail,
|
||||
CreateRouteEncounterInput,
|
||||
UpdateRouteEncounterInput,
|
||||
} from '../../types'
|
||||
|
||||
interface RouteEncounterFormModalProps {
|
||||
encounter?: RouteEncounterDetail
|
||||
onSubmit: (data: CreateRouteEncounterInput | UpdateRouteEncounterInput) => void
|
||||
onSubmit: (
|
||||
data: CreateRouteEncounterInput | UpdateRouteEncounterInput
|
||||
) => void
|
||||
onClose: () => void
|
||||
isSubmitting?: boolean
|
||||
onDelete?: () => void
|
||||
@@ -25,11 +35,18 @@ export function RouteEncounterFormModal({
|
||||
|
||||
const initialMethod = encounter?.encounterMethod ?? ''
|
||||
const isKnownMethod = METHOD_ORDER.includes(initialMethod)
|
||||
const [selectedMethod, setSelectedMethod] = useState(isKnownMethod ? initialMethod : initialMethod ? 'other' : '')
|
||||
const [customMethod, setCustomMethod] = useState(isKnownMethod ? '' : initialMethod)
|
||||
const encounterMethod = selectedMethod === 'other' ? customMethod : selectedMethod
|
||||
const [selectedMethod, setSelectedMethod] = useState(
|
||||
isKnownMethod ? initialMethod : initialMethod ? 'other' : ''
|
||||
)
|
||||
const [customMethod, setCustomMethod] = useState(
|
||||
isKnownMethod ? '' : initialMethod
|
||||
)
|
||||
const encounterMethod =
|
||||
selectedMethod === 'other' ? customMethod : selectedMethod
|
||||
|
||||
const [encounterRate, setEncounterRate] = useState(String(encounter?.encounterRate ?? ''))
|
||||
const [encounterRate, setEncounterRate] = useState(
|
||||
String(encounter?.encounterRate ?? '')
|
||||
)
|
||||
const [minLevel, setMinLevel] = useState(String(encounter?.minLevel ?? ''))
|
||||
const [maxLevel, setMaxLevel] = useState(String(encounter?.maxLevel ?? ''))
|
||||
|
||||
@@ -70,7 +87,9 @@ export function RouteEncounterFormModal({
|
||||
/>
|
||||
)}
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-1">Encounter Method</label>
|
||||
<label className="block text-sm font-medium mb-1">
|
||||
Encounter Method
|
||||
</label>
|
||||
<select
|
||||
required
|
||||
value={selectedMethod}
|
||||
@@ -107,7 +126,9 @@ export function RouteEncounterFormModal({
|
||||
)}
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-sm font-medium mb-1">Encounter Rate (%)</label>
|
||||
<label className="block text-sm font-medium mb-1">
|
||||
Encounter Rate (%)
|
||||
</label>
|
||||
<input
|
||||
type="number"
|
||||
required
|
||||
|
||||
Reference in New Issue
Block a user