respond-framework
Version:
create as fast you think
127 lines (126 loc) • 3.24 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.testsList = exports.tests = exports.tab = exports.stack = exports.sort = exports.settings = exports.searched = exports.open = exports.loading = exports.focusedBranch = exports.filter = exports.config = void 0;
var _addToCache = require("../../createModule/methods/addToCache.js");
var _cascadeSetting = require("./helpers/cascadeSetting.js");
const open = (state = false, e, {
events
}) => {
switch (e.event) {
case events.toggle:
return !state;
case events.settings:
case events.tests:
case events.events:
case events.test:
return true;
}
return state;
};
exports.open = open;
const tab = (state = 'settings', e, {
events
}) => {
switch (e.event) {
case events.settings:
return 'settings';
case events.tests:
return 'tests';
case events.events:
case events.test:
return 'events';
}
return state;
};
exports.tab = tab;
const loading = (_, e, state) => {
if (state.testsList?.length > 0) return false;
return !!e.event.fetch;
};
exports.loading = loading;
const settings = (state = {}, e, {
events,
focusedBranch,
configs
}) => {
if (e.event !== events.edit) return state;
Object.assign(state[focusedBranch], e.payload);
(0, _cascadeSetting.default)(state, e, focusedBranch, configs);
};
exports.settings = settings;
const config = (state = {}, e, {
events
}) => {
if (e.event !== events.editConfig) return state;
Object.assign(state, e.payload);
};
exports.config = config;
const focusedBranch = (state = '', e, {
events
}) => {
if (e.event !== events.changeBranch) return state;
return e.focusedBranch;
};
exports.focusedBranch = focusedBranch;
const tests = (state = {}, e, {
events
}) => {
switch (e.event) {
case events.deleteTest.done:
{
delete state[e.id];
return state;
}
}
if (e.tests) return (0, _addToCache.default)(state, e.tests);
return state;
};
exports.tests = tests;
const testsList = (state = [], e, st) => {
const {
events
} = st;
switch (e.event) {
case events.changeBranch.done:
case events.sortTests.done:
case events.searchTests.done:
case events.toggleFilter.done:
case events.tests.done:
{
const ids = e.tests.map(t => t.id);
return st.sort === 'recent' || e.meta.from?.sort === 'recent' ? ids.sort((a, b) => st.tests[b].updatedAt - st.tests[a].updatedAt) : ids.sort((a, b) => a.localeCompare(b));
}
case events.deleteTest.done:
return state.filter(id => id !== e.meta.from.id);
}
return state;
};
exports.testsList = testsList;
const searched = (state = '', e, {
events
}) => e.event === events.searchTests ? e.value ?? '' : state;
exports.searched = searched;
const sort = (state = 'az', e, {
events
}) => {
switch (e.event) {
case events.tests:
case events.sortTests:
return e.sort || state;
}
return state;
};
exports.sort = sort;
const filter = (state = 'tests', e, {
events
}) => {
switch (e.event) {
case events.toggleFilter:
return state === 'tests' ? 'snaps' : 'tests';
}
return state;
};
exports.filter = filter;
const stack = exports.stack = null;