@ -253,9 +253,8 @@ function CourtFormModal({ clubId, court, onClose, onSuccess }: CourtFormModalPro
const isEditing = ! ! court ;
const isEditing = ! ! court ;
const [ name , setName ] = useState ( court ? . name || '' ) ;
const [ name , setName ] = useState ( court ? . name || '' ) ;
// Get sport_variation_id from nested structure or fall back to deprecated flat field
// Get sport_variation_id from nested structure or fall back to deprecated flat field
const [ sportVariationId , setSportVariationId ] = useState < number > (
const initialSportVariationId = court ? . sport_variation ? . sport_variation_id || court ? . sport_variation_id || 0 ;
court ? . sport_variation ? . sport_variation_id || court ? . sport_variation_id || 0
const [ sportVariationId , setSportVariationId ] = useState < number > ( initialSportVariationId ) ;
) ;
const [ sports , setSports ] = useState < Sport [ ] > ( [ ] ) ;
const [ sports , setSports ] = useState < Sport [ ] > ( [ ] ) ;
const [ loadingSports , setLoadingSports ] = useState ( true ) ;
const [ loadingSports , setLoadingSports ] = useState ( true ) ;
const [ saving , setSaving ] = useState ( false ) ;
const [ saving , setSaving ] = useState ( false ) ;
@ -263,6 +262,12 @@ function CourtFormModal({ clubId, court, onClose, onSuccess }: CourtFormModalPro
const [ fieldError , setFieldError ] = useState ( '' ) ;
const [ fieldError , setFieldError ] = useState ( '' ) ;
const [ sportVariationError , setSportVariationError ] = useState ( '' ) ;
const [ sportVariationError , setSportVariationError ] = useState ( '' ) ;
// Debug: log the court data and extracted sport variation ID
useEffect ( ( ) = > {
console . log ( 'Court data:' , court ) ;
console . log ( 'Extracted sport_variation_id:' , initialSportVariationId ) ;
} , [ court ] ) ;
useEffect ( ( ) = > {
useEffect ( ( ) = > {
async function loadSports() {
async function loadSports() {
setLoadingSports ( true ) ;
setLoadingSports ( true ) ;
@ -395,7 +400,7 @@ function CourtFormModal({ clubId, court, onClose, onSuccess }: CourtFormModalPro
sportVariationError
sportVariationError
? 'border-red-300 focus:border-red-500'
? 'border-red-300 focus:border-red-500'
: 'border-slate-200 focus:border-slate-900'
: 'border-slate-200 focus:border-slate-900'
} focus :outline - none ` }
} focus :outline - none $ { ( saving || isEditing ) ? 'bg-slate-100 cursor-not-allowed' : '' } ` }
disabled = { saving || isEditing }
disabled = { saving || isEditing }
>
>
< option value = { 0 } disabled > Select sport variation < / option >
< option value = { 0 } disabled > Select sport variation < / option >