56 lines
1.2 KiB
TypeScript
56 lines
1.2 KiB
TypeScript
|
import { State } from '../store/rootReducer'
|
||
|
|
||
|
export const saveState = (state: object) => {
|
||
|
try {
|
||
|
const serializedState = JSON.stringify(state)
|
||
|
|
||
|
localStorage.setItem('state', serializedState)
|
||
|
} catch (err) {
|
||
|
console.log(`Error while saving state. Error: `, err)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export const loadState = (): State | undefined => {
|
||
|
try {
|
||
|
const serializedState = localStorage.getItem('state')
|
||
|
|
||
|
if (serializedState === null) return undefined
|
||
|
|
||
|
return JSON.parse(serializedState)
|
||
|
} catch (err) {
|
||
|
return undefined
|
||
|
}
|
||
|
}
|
||
|
|
||
|
export const saveNsecBunkerDelegatedKey = (privateKey: string) => {
|
||
|
localStorage.setItem('nsecbunker-delegated-key', privateKey)
|
||
|
}
|
||
|
|
||
|
export const getNsecBunkerDelegatedKey = () => {
|
||
|
return localStorage.getItem('nsecbunker-delegated-key')
|
||
|
}
|
||
|
|
||
|
export const saveVisitedLink = (pathname: string, search: string) => {
|
||
|
localStorage.setItem(
|
||
|
'visitedLink',
|
||
|
JSON.stringify({
|
||
|
pathname,
|
||
|
search
|
||
|
})
|
||
|
)
|
||
|
}
|
||
|
|
||
|
export const getVisitedLink = () => {
|
||
|
const visitedLink = localStorage.getItem('visitedLink')
|
||
|
if (!visitedLink) return null
|
||
|
|
||
|
try {
|
||
|
return JSON.parse(visitedLink) as {
|
||
|
pathname: string
|
||
|
search: string
|
||
|
}
|
||
|
} catch {
|
||
|
return null
|
||
|
}
|
||
|
}
|