UNPKG

3.75 kBJavaScriptView Raw
1import "regenerator-runtime/runtime.js";
2
3function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
4
5function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
6
7import "core-js/modules/es.regexp.exec.js";
8import "core-js/modules/es.string.match.js";
9import "core-js/modules/es.object.assign.js";
10import "core-js/modules/es.object.to-string.js";
11import "core-js/modules/es.promise.js";
12export var init = function init(_ref) {
13 var store = _ref.store,
14 navigate = _ref.navigate,
15 fullAPI = _ref.fullAPI;
16
17 var isSettingsScreenActive = function isSettingsScreenActive() {
18 var _fullAPI$getUrlState = fullAPI.getUrlState(),
19 path = _fullAPI$getUrlState.path;
20
21 return !!(path || '').match(/^\/settings/);
22 };
23
24 var api = {
25 closeSettings: function closeSettings() {
26 var _store$getState = store.getState(),
27 lastTrackedStoryId = _store$getState.settings.lastTrackedStoryId;
28
29 if (lastTrackedStoryId) {
30 fullAPI.selectStory(lastTrackedStoryId);
31 } else {
32 fullAPI.selectFirstStory();
33 }
34 },
35 changeSettingsTab: function changeSettingsTab(tab) {
36 navigate("/settings/".concat(tab));
37 },
38 isSettingsScreenActive: isSettingsScreenActive,
39 navigateToSettingsPage: function () {
40 var _navigateToSettingsPage = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee(path) {
41 var _store$getState2, settings, storyId;
42
43 return regeneratorRuntime.wrap(function _callee$(_context) {
44 while (1) {
45 switch (_context.prev = _context.next) {
46 case 0:
47 if (isSettingsScreenActive()) {
48 _context.next = 4;
49 break;
50 }
51
52 _store$getState2 = store.getState(), settings = _store$getState2.settings, storyId = _store$getState2.storyId;
53 _context.next = 4;
54 return store.setState({
55 settings: Object.assign({}, settings, {
56 lastTrackedStoryId: storyId
57 })
58 });
59
60 case 4:
61 navigate(path);
62
63 case 5:
64 case "end":
65 return _context.stop();
66 }
67 }
68 }, _callee);
69 }));
70
71 function navigateToSettingsPage(_x) {
72 return _navigateToSettingsPage.apply(this, arguments);
73 }
74
75 return navigateToSettingsPage;
76 }()
77 };
78
79 var initModule = /*#__PURE__*/function () {
80 var _ref2 = _asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
81 return regeneratorRuntime.wrap(function _callee2$(_context2) {
82 while (1) {
83 switch (_context2.prev = _context2.next) {
84 case 0:
85 _context2.next = 2;
86 return store.setState({
87 settings: {
88 lastTrackedStoryId: null
89 }
90 });
91
92 case 2:
93 case "end":
94 return _context2.stop();
95 }
96 }
97 }, _callee2);
98 }));
99
100 return function initModule() {
101 return _ref2.apply(this, arguments);
102 };
103 }();
104
105 return {
106 init: initModule,
107 api: api
108 };
109};
\No newline at end of file