Skip to content

Commit

Permalink
refactor: make storageKeyPrefix required internaly
Browse files Browse the repository at this point in the history
  • Loading branch information
soofstad committed Dec 13, 2023
1 parent 098c92b commit e02085e
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 27 deletions.
32 changes: 13 additions & 19 deletions src/AuthContext.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -26,41 +26,35 @@ export const AuthProvider = ({ authConfig, children }: IAuthProvider) => {
const config: TInternalConfig = useMemo(() => createInternalConfig(authConfig), [authConfig])

const [refreshToken, setRefreshToken] = useBrowserStorage<string | undefined>(
'refreshToken',
`${config.storageKeyPrefix}refreshToken`,
undefined,
config.storage,
config.storageKeyPrefix
config.storage
)
const [refreshTokenExpire, setRefreshTokenExpire] = useBrowserStorage<number>(
'refreshTokenExpire',
`${config.storageKeyPrefix}refreshTokenExpire`,
epochAtSecondsFromNow(2 * FALLBACK_EXPIRE_TIME),
config.storage,
config.storageKeyPrefix
config.storage
)
const [token, setToken] = useBrowserStorage<string>('token', '', config.storage, config.storageKeyPrefix)
const [token, setToken] = useBrowserStorage<string>(`${config.storageKeyPrefix}token`, '', config.storage)
const [tokenExpire, setTokenExpire] = useBrowserStorage<number>(
'tokenExpire',
`${config.storageKeyPrefix}tokenExpire`,
epochAtSecondsFromNow(FALLBACK_EXPIRE_TIME),
config.storage,
config.storageKeyPrefix
config.storage
)
const [idToken, setIdToken] = useBrowserStorage<string | undefined>(
'idToken',
`${config.storageKeyPrefix}idToken`,
undefined,
config.storage,
config.storageKeyPrefix
config.storage
)
const [loginInProgress, setLoginInProgress] = useBrowserStorage<boolean>(
'loginInProgress',
`${config.storageKeyPrefix}loginInProgress`,
false,
config.storage,
config.storageKeyPrefix
config.storage
)
const [refreshInProgress, setRefreshInProgress] = useBrowserStorage<boolean>(
'refreshInProgress',
`${config.storageKeyPrefix}refreshInProgress`,
false,
config.storage,
config.storageKeyPrefix
config.storage
)
const [tokenData, setTokenData] = useState<TTokenData | undefined>()
const [idTokenData, setIdTokenData] = useState<TTokenData | undefined>()
Expand Down
8 changes: 1 addition & 7 deletions src/Hooks.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,7 @@
import { useEffect, useState } from 'react'

function useBrowserStorage<T>(
key: string,
initialValue: T,
type: 'session' | 'local',
prefix?: string
): [T, (v: T) => void] {
function useBrowserStorage<T>(key: string, initialValue: T, type: 'session' | 'local'): [T, (v: T) => void] {
const storage = type === 'session' ? sessionStorage : localStorage
key = `${prefix ?? ''}${key}`

const [storedValue, setStoredValue] = useState<T>(() => {
const item = storage.getItem(key)
Expand Down
2 changes: 1 addition & 1 deletion src/Types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -104,5 +104,5 @@ export type TInternalConfig = {
tokenExpiresIn?: number
refreshTokenExpiresIn?: number
storage: 'session' | 'local'
storageKeyPrefix?: string
storageKeyPrefix: string
}

0 comments on commit e02085e

Please sign in to comment.