29 lines
951 B
JavaScript
29 lines
951 B
JavaScript
'use client'
|
|
|
|
import { useEffect } from 'react'
|
|
import useSWR from 'swr'
|
|
import useSWRMutation from 'swr/mutation'
|
|
import { useAxios } from '../useAxios'
|
|
import { useRecoilState } from 'recoil'
|
|
import { canvasPopupStatusStore } from '@/store/canvasPopupStatusAtom'
|
|
|
|
export function useCanvasPopupStatusController(popupType) {
|
|
const [canvasPopupStatusState, setCanvasPopupStatusState] = useRecoilState(canvasPopupStatusStore)
|
|
const { getFetcher, postFetcher } = useAxios()
|
|
const {
|
|
data: popupStatus,
|
|
error,
|
|
isLoading,
|
|
} = useSWR(popupType ? 'canvas-popup-status--data' : null, () => getFetcher(`http://localhost:8080/api/tutorial?popupType=${popupType}`))
|
|
|
|
useEffect(() => {
|
|
if (popupStatus) {
|
|
setCanvasPopupStatusState({ ...canvasPopupStatusState, [popupType]: popupStatus })
|
|
}
|
|
}, [popupStatus])
|
|
|
|
const { trigger, isMutating } = useSWRMutation('canvas-popup-status-update', postFetcher)
|
|
|
|
return { trigger }
|
|
}
|