()
| 15 | } |
| 16 | |
| 17 | export const useSquadTour = (): UseSquadTour => { |
| 18 | const client = useQueryClient(); |
| 19 | const { data = DEFAULT_SQUAD_TOUR_DATA } = useQuery<SquadTourData>({ |
| 20 | queryKey: SQUAD_TOUR_KEY, |
| 21 | queryFn: () => |
| 22 | client.getQueryData<SquadTourData>(SQUAD_TOUR_KEY) ?? |
| 23 | DEFAULT_SQUAD_TOUR_DATA, |
| 24 | initialData: DEFAULT_SQUAD_TOUR_DATA, |
| 25 | }); |
| 26 | |
| 27 | const onTourIndexChange = useCallback( |
| 28 | (tourIndex: number) => { |
| 29 | client.setQueryData<SquadTourData>(SQUAD_TOUR_KEY, { tourIndex }); |
| 30 | }, |
| 31 | [client], |
| 32 | ); |
| 33 | |
| 34 | const onClose = useCallback(() => { |
| 35 | onTourIndexChange(-1); |
| 36 | }, [onTourIndexChange]); |
| 37 | |
| 38 | return useMemo( |
| 39 | () => ({ |
| 40 | tourIndex: data.tourIndex, |
| 41 | onCloseTour: onClose, |
| 42 | onTourIndexChange, |
| 43 | }), |
| 44 | [data, onClose, onTourIndexChange], |
| 45 | ); |
| 46 | }; |
no outgoing calls
no test coverage detected