1- import { useEffect } from 'react'
21import Loader from '../Loader'
32import Select from '../Select'
43import { useMutateApi } from '../../utils'
54import ErrorMessages from '../ErrorMessages'
65
76export default function PlayerReportState ( { id, currentState, states, server, onChange } ) {
8- const { data , loading, load, errors } = useMutateApi ( {
7+ const { loading, load, errors } = useMutateApi ( {
98 query : /* GraphQL */ `
109 mutation reportState($report: ID!, $serverId: ID!, $state: ID!) {
1110 reportState(report: $report, serverId: $serverId, state: $state) {
@@ -18,16 +17,13 @@ export default function PlayerReportState ({ id, currentState, states, server, o
1817 }`
1918 } )
2019
21- useEffect ( ( ) => {
22- if ( ! data ) return
23- if ( Object . keys ( data ) . some ( key => ! ! data [ key ] . updated ) ) {
24- onChange ( data )
25- }
26- } , [ data ] )
20+ const handleChange = async ( state ) => {
21+ if ( currentState ?. id === state . value ) return
2722
28- const handleChange = ( state ) => {
29- if ( currentState ?. id !== state . value ) {
30- load ( { report : id , serverId : server , state : state . value } )
23+ const data = await load ( { report : id , serverId : server , state : state . value } )
24+
25+ if ( data ?. reportState ?. updated ) {
26+ onChange ( data )
3127 }
3228 }
3329
@@ -37,7 +33,7 @@ export default function PlayerReportState ({ id, currentState, states, server, o
3733 < >
3834 < ErrorMessages errors = { errors } />
3935 < Select
40- defaultValue = { currentState ? ( { value : currentState . id , label : currentState . name } ) : null }
36+ value = { currentState ? .id }
4137 options = { states }
4238 onChange = { handleChange }
4339 />
0 commit comments