( accessToken: AccessToken | undefined, refresh: () => Promise<unknown>, )
| 4 | import useDebounceFn from './useDebounceFn'; |
| 5 | |
| 6 | export function useRefreshToken( |
| 7 | accessToken: AccessToken | undefined, |
| 8 | refresh: () => Promise<unknown>, |
| 9 | ): void { |
| 10 | const difference = differenceInMilliseconds( |
| 11 | accessToken?.expiresIn ? new Date(accessToken.expiresIn) : new Date(), |
| 12 | new Date(), |
| 13 | ); |
| 14 | const differencePlusTwoMinutes = difference - 1000 * 60 * 2; |
| 15 | const saveDelay = |
| 16 | differencePlusTwoMinutes <= 200 ? 200 : differencePlusTwoMinutes; |
| 17 | |
| 18 | const [callRefresh] = useDebounceFn(refresh, saveDelay, 1000 * 60); |
| 19 | |
| 20 | useEffect(() => { |
| 21 | if (accessToken?.token) { |
| 22 | callRefresh(); |
| 23 | } |
| 24 | }, [accessToken?.token, callRefresh]); |
| 25 | } |
no test coverage detected