UNPKG

6.85 kBJavaScriptView Raw
1"use strict";
2
3function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
4
5require("core-js/modules/es.weak-map.js");
6
7require("core-js/modules/es.object.to-string.js");
8
9require("core-js/modules/es.string.iterator.js");
10
11require("core-js/modules/es.array.iterator.js");
12
13require("core-js/modules/web.dom-collections.iterator.js");
14
15require("core-js/modules/es.object.get-own-property-descriptor.js");
16
17require("core-js/modules/es.symbol.js");
18
19require("core-js/modules/es.symbol.description.js");
20
21require("core-js/modules/es.symbol.iterator.js");
22
23Object.defineProperty(exports, "__esModule", {
24 value: true
25});
26exports.default = void 0;
27
28require("core-js/modules/es.array.includes.js");
29
30require("core-js/modules/es.string.includes.js");
31
32require("core-js/modules/es.array.join.js");
33
34require("core-js/modules/es.array.concat.js");
35
36require("core-js/modules/es.string.repeat.js");
37
38var _api = require("@storybook/api");
39
40var _components = require("@storybook/components");
41
42var _router = require("@storybook/router");
43
44var _theming = require("@storybook/theming");
45
46var _global = _interopRequireDefault(require("global"));
47
48var _react = _interopRequireWildcard(require("react"));
49
50var _about_page = require("./about_page");
51
52var _release_notes_page = require("./release_notes_page");
53
54var _shortcuts_page = require("./shortcuts_page");
55
56var _keybinding = require("../keybinding");
57
58function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function _getRequireWildcardCache() { return cache; }; return cache; }
59
60function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
61
62function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
63
64var document = _global.default.document;
65
66var TabBarButton = /*#__PURE__*/_react.default.memo(function (_ref) {
67 var changeTab = _ref.changeTab,
68 id = _ref.id,
69 title = _ref.title;
70 return /*#__PURE__*/_react.default.createElement(_router.Location, null, function (_ref2) {
71 var path = _ref2.path;
72 var active = path.includes("settings/".concat(id));
73 return /*#__PURE__*/_react.default.createElement(_components.TabButton, {
74 id: "tabbutton-".concat(id),
75 className: ['tabbutton'].concat(active ? ['tabbutton-active'] : []).join(' '),
76 type: "button",
77 key: "id",
78 active: active,
79 onClick: function onClick() {
80 return changeTab(id);
81 },
82 role: "tab"
83 }, title);
84 });
85});
86
87var Content = (0, _theming.styled)(_components.ScrollArea)({
88 position: 'absolute',
89 top: 40,
90 left: 0,
91 right: 0,
92 bottom: 0,
93 overflow: 'auto'
94}, function (_ref3) {
95 var theme = _ref3.theme;
96 return {
97 background: theme.background.content
98 };
99});
100
101var Pages = function Pages(_ref4) {
102 var changeTab = _ref4.changeTab,
103 onClose = _ref4.onClose,
104 _ref4$enableShortcuts = _ref4.enableShortcuts,
105 enableShortcuts = _ref4$enableShortcuts === void 0 ? true : _ref4$enableShortcuts,
106 _ref4$hasReleaseNotes = _ref4.hasReleaseNotes,
107 hasReleaseNotes = _ref4$hasReleaseNotes === void 0 ? false : _ref4$hasReleaseNotes;
108
109 _react.default.useEffect(function () {
110 var handleEscape = function handleEscape(event) {
111 if (!enableShortcuts || event.repeat) return;
112
113 if ((0, _keybinding.matchesModifiers)(false, event) && (0, _keybinding.matchesKeyCode)('Escape', event)) {
114 event.preventDefault();
115 onClose();
116 }
117 };
118
119 document.addEventListener('keydown', handleEscape);
120 return function () {
121 return document.removeEventListener('keydown', handleEscape);
122 };
123 }, []);
124
125 return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_components.FlexBar, {
126 border: true
127 }, /*#__PURE__*/_react.default.createElement(_components.TabBar, {
128 role: "tablist"
129 }, /*#__PURE__*/_react.default.createElement(TabBarButton, {
130 id: "about",
131 title: "About",
132 changeTab: changeTab
133 }), hasReleaseNotes && /*#__PURE__*/_react.default.createElement(TabBarButton, {
134 id: "release-notes",
135 title: "Release notes",
136 changeTab: changeTab
137 }), /*#__PURE__*/_react.default.createElement(TabBarButton, {
138 id: "shortcuts",
139 title: "Keyboard shortcuts",
140 changeTab: changeTab
141 })), /*#__PURE__*/_react.default.createElement(_components.IconButton, {
142 onClick: function onClick(e) {
143 e.preventDefault();
144 return onClose();
145 },
146 title: "Close settings page"
147 }, /*#__PURE__*/_react.default.createElement(_components.Icons, {
148 icon: "close"
149 }))), /*#__PURE__*/_react.default.createElement(Content, {
150 vertical: true,
151 horizontal: false
152 }, /*#__PURE__*/_react.default.createElement(_router.Route, {
153 path: "about"
154 }, /*#__PURE__*/_react.default.createElement(_about_page.AboutPage, {
155 key: "about"
156 })), /*#__PURE__*/_react.default.createElement(_router.Route, {
157 path: "release-notes"
158 }, /*#__PURE__*/_react.default.createElement(_release_notes_page.ReleaseNotesPage, {
159 key: "release-notes"
160 })), /*#__PURE__*/_react.default.createElement(_router.Route, {
161 path: "shortcuts"
162 }, /*#__PURE__*/_react.default.createElement(_shortcuts_page.ShortcutsPage, {
163 key: "shortcuts"
164 }))));
165};
166
167Pages.displayName = "Pages";
168
169var SettingsPages = function SettingsPages() {
170 var api = (0, _api.useStorybookApi)();
171 var state = (0, _api.useStorybookState)();
172
173 var changeTab = function changeTab(tab) {
174 return api.changeSettingsTab(tab);
175 };
176
177 return /*#__PURE__*/_react.default.createElement(Pages, {
178 hasReleaseNotes: !!api.releaseNotesVersion(),
179 enableShortcuts: state.ui.enableShortcuts,
180 changeTab: changeTab,
181 onClose: api.closeSettings
182 });
183};
184
185exports.default = SettingsPages;
186SettingsPages.displayName = "SettingsPages";
\No newline at end of file