1 | "use strict";
|
2 |
|
3 | var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
4 |
|
5 | var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
6 |
|
7 | Object.defineProperty(exports, "__esModule", {
|
8 | value: true
|
9 | });
|
10 | exports.Header = Header;
|
11 |
|
12 | var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
13 |
|
14 | var _react = _interopRequireWildcard(require("react"));
|
15 |
|
16 | var _propTypes = _interopRequireDefault(require("prop-types"));
|
17 |
|
18 | var _reactScroll = require("react-scroll");
|
19 |
|
20 | var _reactFocusLock = _interopRequireDefault(require("react-focus-lock"));
|
21 |
|
22 | var _hooks = require("./hooks");
|
23 |
|
24 | var _Burger = require("./Burger");
|
25 |
|
26 | var _Menu = require("./Menu");
|
27 |
|
28 | var _Header = require("./Header.styles");
|
29 |
|
30 |
|
31 |
|
32 |
|
33 |
|
34 |
|
35 |
|
36 |
|
37 | function Header(_ref) {
|
38 | var background = _ref.background,
|
39 | src = _ref.src,
|
40 | color = _ref.color,
|
41 | link1 = _ref.link1,
|
42 | link2 = _ref.link2,
|
43 | link3 = _ref.link3,
|
44 | link4 = _ref.link4,
|
45 | link5 = _ref.link5,
|
46 | link6 = _ref.link6;
|
47 |
|
48 | var _useState = (0, _react.useState)(false),
|
49 | _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
|
50 | open = _useState2[0],
|
51 | setOpen = _useState2[1];
|
52 |
|
53 | var node = (0, _react.useRef)();
|
54 | var menuId = 'main-menu';
|
55 |
|
56 | var scrollToTop = function scrollToTop() {
|
57 | _reactScroll.animateScroll.scrollToTop();
|
58 | };
|
59 |
|
60 | var _useWindowSize = (0, _hooks.useWindowSize)(),
|
61 | width = _useWindowSize.width;
|
62 |
|
63 | (0, _hooks.useOnClickOutside)(node, function () {
|
64 | return setOpen(false);
|
65 | });
|
66 | return _react["default"].createElement(_reactFocusLock["default"], {
|
67 | disabled: !open
|
68 | }, _react["default"].createElement(_Header.Wrapper, {
|
69 | classprefix: "header",
|
70 | name: "header",
|
71 | ref: node,
|
72 | background: background
|
73 | }, _react["default"].createElement(_Header.LogoContainer, null, _react["default"].createElement(_Header.Logo, {
|
74 | src: src,
|
75 | onClick: scrollToTop
|
76 | })), width <= 900 ? _react["default"].createElement(_react["default"].Fragment, null, _react["default"].createElement(_Burger.Burger, {
|
77 | open: open,
|
78 | setOpen: setOpen,
|
79 | "aria-controls": menuId
|
80 | }), _react["default"].createElement(_Menu.Menu, {
|
81 | open: open,
|
82 | setOpen: setOpen,
|
83 | id: menuId,
|
84 | link1: link1,
|
85 | link2: link2,
|
86 | link3: link3,
|
87 | link4: link4,
|
88 | link5: link5,
|
89 | link6: link6
|
90 | })) : _react["default"].createElement(_Header.MenuContainer, null, _react["default"].createElement(_Header.NavList, null, link1 && _react["default"].createElement(_Header.ListItem, {
|
91 | color: color
|
92 | }, _react["default"].createElement(_Header.NavItem, {
|
93 | activeClass: "active",
|
94 | to: link1.toLowerCase(),
|
95 | spy: true,
|
96 | smooth: true,
|
97 | offset: -120,
|
98 | duration: 500,
|
99 | color: color
|
100 | }, link1)), link2 && _react["default"].createElement(_Header.ListItem, {
|
101 | color: color
|
102 | }, _react["default"].createElement(_Header.NavItem, {
|
103 | activeClass: "active",
|
104 | to: link2.toLowerCase(),
|
105 | spy: true,
|
106 | smooth: true,
|
107 | offset: -50,
|
108 | duration: 500,
|
109 | color: color
|
110 | }, link2)), link3 && _react["default"].createElement(_Header.ListItem, {
|
111 | color: color
|
112 | }, _react["default"].createElement(_Header.NavItem, {
|
113 | activeClass: "active",
|
114 | to: link3.toLowerCase(),
|
115 | spy: true,
|
116 | smooth: true,
|
117 | offset: -50,
|
118 | duration: 500,
|
119 | color: color
|
120 | }, link3)), link4 && _react["default"].createElement(_Header.ListItem, {
|
121 | color: color
|
122 | }, _react["default"].createElement(_Header.NavItem, {
|
123 | activeClass: "active",
|
124 | to: link4.toLowerCase(),
|
125 | spy: true,
|
126 | smooth: true,
|
127 | offset: -50,
|
128 | duration: 500,
|
129 | color: color
|
130 | }, link4)), link5 && _react["default"].createElement(_Header.ListItem, {
|
131 | color: color
|
132 | }, _react["default"].createElement(_Header.NavItem, {
|
133 | activeClass: "active",
|
134 | to: link5.toLowerCase(),
|
135 | spy: true,
|
136 | smooth: true,
|
137 | offset: -50,
|
138 | duration: 500,
|
139 | color: color
|
140 | }, link5)), link6 && _react["default"].createElement(_Header.ListItem, {
|
141 | color: color
|
142 | }, _react["default"].createElement(_Header.NavItem, {
|
143 | activeClass: "active",
|
144 | to: link6.toLowerCase(),
|
145 | spy: true,
|
146 | smooth: true,
|
147 | offset: -50,
|
148 | duration: 500,
|
149 | color: color
|
150 | }, link6))))));
|
151 | }
|
152 |
|
153 | Header.propTypes = {
|
154 | |
155 |
|
156 |
|
157 | src: _propTypes["default"].string,
|
158 | background: _propTypes["default"].string,
|
159 | color: _propTypes["default"].string,
|
160 |
|
161 | |
162 |
|
163 |
|
164 | link1: _propTypes["default"].string,
|
165 | link2: _propTypes["default"].string,
|
166 | link3: _propTypes["default"].string,
|
167 | link4: _propTypes["default"].string,
|
168 | link5: _propTypes["default"].string,
|
169 | link6: _propTypes["default"].string
|
170 | };
|
171 | Header.defaultProps = {
|
172 | src: 'https://res.cloudinary.com/waasabi/image/upload/v1581425311/storybook/waasabi-logo_hrshpa.png',
|
173 | background: '#4A933D',
|
174 |
|
175 | color: 'white',
|
176 |
|
177 | link1: 'Link1',
|
178 | link2: 'Link2',
|
179 | link3: 'Link3',
|
180 | link4: '',
|
181 | link5: '',
|
182 | link6: ''
|
183 | };
|
184 | Header.propsDef = {
|
185 | src: {
|
186 | type: 'text',
|
187 | "default": 'https://res.cloudinary.com/waasabi/image/upload/v1581425311/storybook/waasabi-logo_hrshpa.png'
|
188 | },
|
189 | background: {
|
190 | type: 'color',
|
191 | "default": '#4A933D'
|
192 | },
|
193 |
|
194 | color: {
|
195 | type: 'color',
|
196 | "default": 'white'
|
197 | },
|
198 |
|
199 | link1: {
|
200 | type: 'text',
|
201 | "default": 'Link1'
|
202 | },
|
203 | link2: {
|
204 | type: 'text',
|
205 | "default": 'Link2'
|
206 | },
|
207 | link3: {
|
208 | type: 'text',
|
209 | "default": 'Link3'
|
210 | },
|
211 | link4: {
|
212 | type: 'text',
|
213 | "default": ''
|
214 | },
|
215 | link5: {
|
216 | type: 'text',
|
217 | "default": ''
|
218 | },
|
219 | link6: {
|
220 | type: 'text',
|
221 | "default": ''
|
222 | }
|
223 | }; |
\ | No newline at end of file |