fix: cache with outdated data

This commit is contained in:
Divlo 2022-08-30 18:42:21 +02:00
parent 66f3e0475f
commit 6cfee0f6a3
No known key found for this signature in database
GPG Key ID: 8F9478F220CE65E9
5 changed files with 11 additions and 11 deletions

1
.gitignore vendored
View File

@ -49,3 +49,4 @@ npm-debug.log*
.DS_Store
.lighthouseci
.vercel
*.hbs

View File

@ -1,7 +0,0 @@
.next
.lighthouseci
coverage
node_modules
**/workbox-*.js
**/sw.js
*.hbs

View File

@ -20,7 +20,7 @@
"lint:editorconfig": "editorconfig-checker",
"lint:markdown": "markdownlint-cli2",
"lint:typescript": "eslint \"**/*.{js,jsx,ts,tsx}\" --ignore-path \".gitignore\"",
"lint:prettier": "prettier \".\" --check",
"lint:prettier": "prettier \".\" --check --ignore-path \".gitignore\"",
"lint:staged": "lint-staged",
"test:unit": "cypress run --component",
"test:html-w3c-validator": "start-server-and-test \"start\" \"http://localhost:3000\" \"html-w3c-validator\"",

View File

@ -5,6 +5,7 @@ import { API_URL } from '../api'
import { cookies } from '../cookies'
import { Tokens } from '.'
import { fetchRefreshToken } from './authenticationFromServerSide'
import { clearCache } from '../cache'
export class Authentication {
public tokens: Tokens
@ -99,7 +100,7 @@ export class Authentication {
public signout(): void {
cookies.remove('refreshToken')
window.localStorage.clear()
clearCache()
window.location.href = '/authentication/signin'
}
@ -120,6 +121,7 @@ export class Authentication {
}
public signin(): void {
clearCache()
cookies.set('refreshToken', this.tokens.refreshToken)
}
}

View File

@ -14,7 +14,7 @@ export type CacheKey =
export const getPaginationCache = <T extends PaginationItem>(
key: CacheKey
): T[] => {
const cache = localStorage.getItem(key)
const cache = sessionStorage.getItem(key)
if (cache != null) {
try {
const data = JSON.parse(cache)
@ -30,5 +30,9 @@ export const savePaginationCache = <T extends PaginationItem>(
key: CacheKey,
data: T[]
): void => {
localStorage.setItem(key, JSON.stringify(data))
sessionStorage.setItem(key, JSON.stringify(data))
}
export const clearCache = (): void => {
sessionStorage.clear()
}