UNPKG

8.44 kBJavaScriptView Raw
1'use strict';
2
3Object.defineProperty(exports, '__esModule', { value: true });
4
5function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
6
7require('./slicedToArray-0711941d.js');
8require('./unsupportedIterableToArray-68db1d3b.js');
9var React = require('react');
10var React__default = _interopDefault(React);
11require('./_commonjsHelpers-72d386ba.js');
12var index = require('./index-b0606964.js');
13var defineProperty$1 = require('./defineProperty-0921a47c.js');
14var _styled = require('styled-components');
15var _styled__default = _interopDefault(_styled);
16var getPrototypeOf = require('./getPrototypeOf-2a661a20.js');
17require('./miscellaneous.js');
18require('./environment.js');
19require('./font.js');
20require('./constants.js');
21require('./breakpoints.js');
22var springs = require('./springs.js');
23require('./text-styles.js');
24var _extends$1 = require('./extends-40571110.js');
25require('./objectWithoutPropertiesLoose-1af20ad0.js');
26require('react-dom');
27var web = require('./web-d0294535.js');
28var taggedTemplateLiteral = require('./taggedTemplateLiteral-227ed122.js');
29var LeftIcon = require('./LeftIcon.js');
30
31function _templateObject4() {
32 var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n height: 63px;\n padding: ", ";\n cursor: pointer;\n svg {\n color: hsl(179, 76%, 48%);\n }\n :active svg {\n color: hsl(179, 76%, 63%);\n }\n & + ", " {\n padding-left: 0;\n }\n"]);
33
34 _templateObject4 = function _templateObject4() {
35 return data;
36 };
37
38 return data;
39}
40
41function _templateObject3() {
42 var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n height: 100%;\n align-items: center;\n padding-left: 30px;\n white-space: nowrap;\n font-size: 22px;\n"]);
43
44 _templateObject3 = function _templateObject3() {
45 return data;
46 };
47
48 return data;
49}
50
51function _templateObject2() {
52 var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n position: absolute;\n left: 0;\n top: 0;\n bottom: 0;\n"]);
53
54 _templateObject2 = function _templateObject2() {
55 return data;
56 };
57
58 return data;
59}
60
61function _templateObject() {
62 var data = taggedTemplateLiteral._taggedTemplateLiteral(["\n display: flex;\n position: relative;\n height: 100%;\n"]);
63
64 _templateObject = function _templateObject() {
65 return data;
66 };
67
68 return data;
69}
70
71function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
72
73function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { defineProperty$1._defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
74
75function _createSuper(Derived) { return function () { var Super = getPrototypeOf._getPrototypeOf(Derived), result; if (_isNativeReflectConstruct()) { var NewTarget = getPrototypeOf._getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return getPrototypeOf._possibleConstructorReturn(this, result); }; }
76
77function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }
78
79var NavigationBar = /*#__PURE__*/function (_React$Component) {
80 getPrototypeOf._inherits(NavigationBar, _React$Component);
81
82 var _super = _createSuper(NavigationBar);
83
84 function NavigationBar() {
85 var _this;
86
87 getPrototypeOf._classCallCheck(this, NavigationBar);
88
89 for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
90 args[_key] = arguments[_key];
91 }
92
93 _this = _super.call.apply(_super, [this].concat(args));
94
95 defineProperty$1._defineProperty(getPrototypeOf._assertThisInitialized(_this), "state", {
96 cachedItems: null,
97 direction: -1
98 });
99
100 return _this;
101 }
102
103 getPrototypeOf._createClass(NavigationBar, [{
104 key: "render",
105 value: function render() {
106 var _this$props = this.props,
107 onBack = _this$props.onBack,
108 items = _this$props.items,
109 compact = _this$props.compact;
110 var displayedItems = items.map(function (node, index) {
111 return {
112 node: node,
113 index: index
114 };
115 }).slice(-1);
116 return /*#__PURE__*/React__default.createElement(Container, null, /*#__PURE__*/React__default.createElement(web.Transition, {
117 items: displayedItems,
118 keys: displayedItems.map( // Use a different key than 0 when there is only one item, so that
119 // the “leave” transition of the first item can be executed when a
120 // second item is added.
121 function (item) {
122 return items.length === 1 ? -1 : item.index;
123 }),
124 config: springs.springs.smooth,
125 initial: null,
126 from: {
127 opacity: 0,
128 position: this.state.direction * -1
129 },
130 enter: {
131 opacity: 1,
132 position: 0
133 },
134 leave: {
135 opacity: 0,
136 position: this.state.direction
137 },
138 native: true
139 }, function (item) {
140 return function (styles) {
141 return /*#__PURE__*/React__default.createElement(Item, _extends$1._extends({
142 label: item.node,
143 onBack: onBack,
144 displayBack: item.index > 0,
145 compact: compact
146 }, styles));
147 };
148 }));
149 }
150 }], [{
151 key: "getDerivedStateFromProps",
152 value: function getDerivedStateFromProps(props, state) {
153 var updatedState = {
154 cachedItems: props.items
155 };
156
157 if (!state.cachedItems) {
158 return updatedState;
159 }
160
161 return _objectSpread({}, updatedState, {
162 direction: state.cachedItems.length > props.items.length ? 1 : -1
163 });
164 }
165 }]);
166
167 return NavigationBar;
168}(React__default.Component);
169
170defineProperty$1._defineProperty(NavigationBar, "propTypes", {
171 onBack: index.PropTypes.func,
172 items: index.PropTypes.arrayOf(index.PropTypes.node),
173 compact: index.PropTypes.bool
174});
175
176defineProperty$1._defineProperty(NavigationBar, "defaultProps", {
177 onBack: function onBack() {},
178 items: [],
179 compact: false
180});
181
182var Item = function Item(_ref) {
183 var opacity = _ref.opacity,
184 position = _ref.position,
185 displayBack = _ref.displayBack,
186 onBack = _ref.onBack,
187 label = _ref.label,
188 compact = _ref.compact;
189 return /*#__PURE__*/React__default.createElement(web.extendedAnimated.span, {
190 style: {
191 display: 'flex',
192 alignItems: 'center',
193 opacity: opacity,
194 transform: position.interpolate(function (p) {
195 return "translate(".concat(p * 20, "px, 0)");
196 })
197 }
198 }, /*#__PURE__*/React__default.createElement(Title, null, displayBack && /*#__PURE__*/React__default.createElement(BackButton, {
199 onClick: onBack,
200 compact: compact
201 }, /*#__PURE__*/React__default.createElement(LeftIcon.default, null)), /*#__PURE__*/React__default.createElement(Label, null, label)));
202};
203
204Item.propTypes = {
205 compact: index.PropTypes.bool,
206 displayBack: index.PropTypes.bool,
207 label: index.PropTypes.node,
208 onBack: index.PropTypes.func,
209 opacity: index.PropTypes.object,
210 position: index.PropTypes.object
211};
212var Container = _styled__default.span(_templateObject());
213var Title = _styled__default.span(_templateObject2());
214var Label = _styled__default.span(_templateObject3());
215var BackButton = _styled__default.span(_templateObject4(), function (p) {
216 return p.compact ? '0 16px' : '0 20px 0 30px';
217}, Label);
218
219exports.default = NavigationBar;
220//# sourceMappingURL=NavigationBar.js.map