-
Notifications
You must be signed in to change notification settings - Fork 843
Expand file tree
/
Copy pathAuthenticationNav.tsx
More file actions
53 lines (43 loc) · 1.22 KB
/
AuthenticationNav.tsx
File metadata and controls
53 lines (43 loc) · 1.22 KB
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
import React, { useEffect } from "react";
import { InjectedRouter, browserHistory } from "react-router";
import paths from "router/paths";
import Button from "components/buttons/Button";
import Icon from "components/Icon/Icon";
const baseClass = "authentication-nav";
interface IAuthenticationNav {
previousLocation?: string;
router?: InjectedRouter;
}
const AuthenticationNav = ({
previousLocation,
router,
}: IAuthenticationNav): JSX.Element => {
useEffect(() => {
const closeWithEscapeKey = (e: KeyboardEvent) => {
if (e.key === "Escape" && router) {
router.push(paths.LOGIN);
}
};
document.addEventListener("keydown", closeWithEscapeKey);
return () => {
document.removeEventListener("keydown", closeWithEscapeKey);
};
}, [router]);
const onClick = (): void => {
if (previousLocation) {
browserHistory.push(previousLocation);
} else browserHistory.goBack();
};
return (
<div className={`${baseClass}__back`}>
<Button
onClick={onClick}
className={`${baseClass}__back-link`}
variant="inverse"
>
<Icon name="close" color="core-fleet-black" />
</Button>
</div>
);
};
export default AuthenticationNav;