Newer
Older
import IconButton from "../ui/IconButton";
import UserIcon from "../common/user/UserIcon";
import { useSelf } from "../../context/revoltjs/hooks";
import { useHistory, useLocation } from "react-router";
import ConditionalLink from "../../lib/ConditionalLink";
import { Message, Group } from "@styled-icons/boxicons-regular";
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
const NavigationBase = styled.div`
z-index: 10;
height: 50px;
display: flex;
background: var(--secondary-background);
`;
const Button = styled.a<{ active: boolean }>`
flex: 1;
> a, > div, > a > div {
width: 100%;
height: 100%;
}
${ props => props.active && css`
background: var(--hover);
` }
`;
export default function BottomNavigation() {
const user = useSelf();
const history = useHistory();
const path = useLocation().pathname;
const friendsActive = path.startsWith("/friends");
const settingsActive = path.startsWith("/settings");
const homeActive = !(friendsActive || settingsActive);
return (
<NavigationBase>
<Button active={homeActive}>
<IconButton
onClick={() => {
if (!homeActive) {
if (settingsActive) {
if (history.length > 0) {
history.goBack();
} else {
history.push('/');
}
}
}
}}>
</IconButton>
</Button>
<Button active={friendsActive}>
<ConditionalLink active={friendsActive} to="/friends">
</Button>
<Button active={settingsActive}>
<ConditionalLink active={settingsActive} to="/settings">
<IconButton>
<UserIcon target={user} size={26} status={true} />
</IconButton>