import { versionService } from '@/api/services/global.service'
...
export const VersionCheckProvider = ({ children }: { children: ReactNode }) => {
const { data, refetch } = useQuery({
queryKey: ['version'],
queryFn: () => versionService.getAll()
})
useEffect(() => {
if (data) {
const item = data.data[0]
const versionNew = item.version
const versionOld = localStorage.getItem(APP_VERSION) || '0'
if (versionOld === '0') {
localStorage.setItem(APP_VERSION, versionNew)
} else if (parseInt(versionNew) > parseInt(versionOld)) {
localStorage.setItem(APP_VERSION, versionNew)
alert('새로운 버전이 있습니다. 페이지를 새로고침 합니다.')
window.location.reload()
}
}
}, [data])
useEffect(() => {
const intervalId = setInterval(
() => {
refetch()
},
60 * 60 * 1000
)
return () => {
clearInterval(intervalId)
}
}, [refetch])
return <>{children}</>
}