Change revalidate to mutate

Part of the upgrade to version 1: https://swr.vercel.app/blog/swr-v1#change-revalidate-to-mutate
`useSWR` no longer returns the `revalidate` method, change to `mutate` instead:
This commit is contained in:
Andries Reitsma
2022-04-04 15:57:57 +02:00
committed by GitHub
parent 585e2525b8
commit 2830603df5

View File

@@ -6,7 +6,7 @@ import { useRouter } from 'next/router'
export const useAuth = ({ middleware, redirectIfAuthenticated } = {}) => {
const router = useRouter()
const { data: user, error, revalidate } = useSWR('/api/user', () =>
const { data: user, error, mutate } = useSWR('/api/user', () =>
axios
.get('/api/user')
.then(res => res.data)
@@ -26,7 +26,7 @@ export const useAuth = ({ middleware, redirectIfAuthenticated } = {}) => {
axios
.post('/register', props)
.then(() => revalidate())
.then(() => mutate())
.catch(error => {
if (error.response.status !== 422) throw error
@@ -42,7 +42,7 @@ export const useAuth = ({ middleware, redirectIfAuthenticated } = {}) => {
axios
.post('/login', props)
.then(() => revalidate())
.then(() => mutate())
.catch(error => {
if (error.response.status !== 422) throw error
@@ -90,9 +90,9 @@ export const useAuth = ({ middleware, redirectIfAuthenticated } = {}) => {
const logout = async () => {
if (! error) {
await axios.post('/logout')
revalidate()
await axios
.post('/logout')
.then(() => mutate())
}
window.location.pathname = '/login'