forked from Koniverse/SubWallet-Extension
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathuseDefaultNavigate.tsx
34 lines (29 loc) · 1011 Bytes
/
useDefaultNavigate.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// Copyright 2019-2022 @subwallet/extension-koni-ui authors & contributors
// SPDX-License-Identifier: Apache-2.0
import { CURRENT_PAGE } from '@subwallet/extension-koni-ui/constants';
import { DEFAULT_ROUTER_PATH } from '@subwallet/extension-koni-ui/constants/router';
import { RouteState } from '@subwallet/extension-koni-ui/Popup/Root';
import { useCallback } from 'react';
import { useNavigate } from 'react-router-dom';
import { useLocalStorage } from 'usehooks-ts';
export default function useDefaultNavigate () {
const navigate = useNavigate();
const [, setStorage] = useLocalStorage<string>(CURRENT_PAGE, '/');
const goHome = useCallback(
() => {
navigate(DEFAULT_ROUTER_PATH);
setStorage('/home/tokens');
},
[navigate, setStorage]
);
const goBack = useCallback(
(urlToBack?: string) => {
typeof urlToBack === 'string' ? navigate(urlToBack) : navigate(RouteState.prevDifferentPathNum);
},
[navigate]
);
return {
goHome,
goBack
};
}