1
1
2
xxxxxxxxxx
1
.side-nav .collapsible>li a.collapsible-header.active {
2
background-color: rgba(255, 0, 0, 0.445) !important;
3
}
4
5
.side-nav .collapsible>li a.collapsible-header:hover {
6
background-color: rgba(200, 20, 216, 0.788) !important;
7
}
8
9
.side-nav .collapsible li a:hover {
10
background-color: rgba(70, 182, 35, 0.719) !important;
11
}
xxxxxxxxxx
1
import React, { Component } from "react";
2
3
import { Route, Redirect } from 'react-router-dom';
4
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
5
import { Image } from 'react-bootstrap';
6
import {
7
MDBNavbar,
8
MDBNavbarNav,
9
MDBNavItem,
10
MDBDropdown,
11
MDBDropdownToggle,
12
MDBDropdownMenu,
13
MDBDropdownItem,
14
MDBIcon,
15
MDBSideNavItem,
16
MDBSideNavCat,
17
MDBSideNavNav,
18
MDBSideNav,
19
MDBSideNavLink
20
} from "mdbreact";
21
22
import ServerPicker from '../ServerPicker/ServerPicker';
23
24
class TestSideNav extends Component {
25
26
_isMounted = false;
27
28
constructor(props) {
29
super(props);
30
this.state = {
31
userData: this.props.userData,
32
toggleStateA: false,
33
breakWidth: 1300,
34
windowWidth: 0
35
};
36
}
37
38
componentDidMount() {
39
this._isMounted = true;
40
this.handleResize();
41
window.addEventListener("resize", this.handleResize);
42
}
43
44
componentWillUnmount() {
45
this._isMounted = false;
46
window.removeEventListener("resize", this.handleResize);
47
}
48
49
handleResize = () =>
50
this.setState({
51
windowWidth: window.innerWidth
52
});
53
54
handleToggleClickA = () => {
55
this.setState({
56
toggleStateA: !this.state.toggleStateA
57
});
58
};
59
60
render() {
61
const navStyle = { paddingLeft: this.state.windowWidth > this.state.breakWidth ? "210px" : "16px" };
62
63
return (
64
<div className="fixed-sn black-skin">
65
<MDBSideNav
66
logo="https://i.imgur.com/ZbXbXaC.png"
67
triggerOpening={this.state.toggleStateA}
68
breakWidth={this.state.breakWidth}
69
bg="https://i.imgur.com/OrxckTo.png"
70
mask="light"
71
fixed
72
onClick={() => this.setState({ homeRedirect: true })}
73
>
74
<MDBSideNavNav>
75
<MDBSideNavLink to="/dashboard" topLevel className="SideNav-El">
76
<FontAwesomeIcon className="FontAwesomeIcon" icon="tachometer-alt" />
77
Dashboard
78
</MDBSideNavLink>
79
<MDBSideNavLink to="/customcommands" topLevel className="SideNav-El">
80
<FontAwesomeIcon className="FontAwesomeIcon" icon="magic" />
81
Custom Commands
82
</MDBSideNavLink>
83
<MDBSideNavLink to="/analytics" topLevel className="SideNav-El">
84
<FontAwesomeIcon className="FontAwesomeIcon" icon="chart-line" />
85
Analytics
86
</MDBSideNavLink>
87
<MDBSideNavLink to="/ranks" topLevel className="SideNav-El">
88
<FontAwesomeIcon className="FontAwesomeIcon" icon="award" />
89
Ranks
90
</MDBSideNavLink>
91
<MDBSideNavCat
92
name="Music"
93
id="music-cat"
94
icon="music"
95
>
96
<MDBSideNavLink to="/autodj">
97
Auto DJ
98
</MDBSideNavLink>
99
<MDBSideNavLink to="/playlists">
100
Playlists
101
</MDBSideNavLink>
102
</MDBSideNavCat>
103
<MDBSideNavLink to="/economy" topLevel>
104
<FontAwesomeIcon className="FontAwesomeIcon" icon="coins" />
105
Economy
106
</MDBSideNavLink>
107
<MDBSideNavLink to="/moderation" topLevel>
108
<FontAwesomeIcon className="FontAwesomeIcon" icon="bolt" />
109
Moderation
110
</MDBSideNavLink>
111
<MDBSideNavLink to="/trackers" topLevel>
112
<FontAwesomeIcon className="FontAwesomeIcon" icon="crosshairs" />
113
Trackers
114
</MDBSideNavLink>
115
<MDBSideNavLink to="/moderation" topLevel>
116
<FontAwesomeIcon className="FontAwesomeIcon" icon="comments" />
117
Support
118
</MDBSideNavLink>
119
<MDBSideNavLink to="/settings" topLevel>
120
<FontAwesomeIcon className="FontAwesomeIcon" icon="cogs" />
121
Settings
122
</MDBSideNavLink>
123
</MDBSideNavNav>
124
</MDBSideNav>
125
<MDBNavbar style={{ paddingLeft: this.state.windowWidth > this.state.breakWidth ? "210px" : "16px" }} double expand="md" fixed="top" scrolling>
126
<MDBNavbarNav left>
127
<MDBNavItem>
128
<div
129
onClick={this.handleToggleClickA}
130
key="sideNavToggleA"
131
style={{
132
lineHeight: "32px",
133
marginRight: "1em",
134
verticalAlign: "middle"
135
}}
136
>
137
<MDBIcon icon="bars" color="white" size="2x" />
138
</div>
139
</MDBNavItem>
140
<MDBNavItem>
141
<ServerPicker
142
nav
143
userData={this.props.userData}
144
manageServer={this.props.manageServer}
145
getManageServer={this.props.getManageServer}
146
togglePostCollapse={this.togglePostCollapse}
147
/>
148
</MDBNavItem>
149
</MDBNavbarNav>
150
<MDBNavbarNav right>
151
<MDBNavItem>
152
<MDBDropdown>
153
<MDBDropdownToggle nav caret>
154
{this.state.avatar ? <Image src={this.state.avatar} roundedCircle style={{ height: "32px", border: "solid 3px #151515" }} /> : <FontAwesomeIcon icon="user" style={{ marginRight: "5%" }} />}
155
</MDBDropdownToggle>
156
<MDBDropdownMenu right={this.state.width > 800 ? true : false} className="dropdown-default TopNav__DropDownMenu">
157
<MDBDropdownItem>
158
<FontAwesomeIcon className="FontAwesomeIcon TopNav-Dropdown-Item-Span" icon="lightbulb" />
159
<span className="TopNav-Dropdown-Item-Span">Feature Suggestion</span>
160
</MDBDropdownItem>
161
<MDBDropdownItem>
162
<FontAwesomeIcon className="FontAwesomeIcon TopNav-Dropdown-Item-Span" icon="cog" />
163
<span className="TopNav-Dropdown-Item-Span">Settings</span>
164
</MDBDropdownItem>
165
<MDBDropdownItem divider />
166
<MDBDropdownItem onClick={() => this.handleLogout()}>
167
<FontAwesomeIcon className="FontAwesomeIcon TopNav-Dropdown-Item-Span" icon="sign-out-alt" />
168
<span className="TopNav-Dropdown-Item-Span">Logout</span>
169
</MDBDropdownItem>
170
</MDBDropdownMenu>
171
</MDBDropdown>
172
</MDBNavItem>
173
</MDBNavbarNav>
174
</MDBNavbar>
175
<main style={{ margin: "0 6%", paddingTop: "5.5rem", paddingLeft: this.state.windowWidth > this.state.breakWidth ? "240px" : "0" }}>
176
</main>
177
</div>
178
);
179
}
180
}
181
182
export default TestSideNav;
Console errors: 0