toggles
Version:
A collection of React hooks for toggles with dynamic noun and verb APIs
41 lines (40 loc) • 1.56 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.verbs = exports.negativeVerbs = exports.positiveVerbs = exports.verbPairs = void 0;
var nouns_1 = require("./nouns");
// toggle verb pairs
exports.verbPairs = {
open: 'close',
show: 'hide',
turnOn: 'turnOff',
check: 'uncheck',
enable: 'disable',
expand: 'collapse',
activate: 'deactivate',
start: 'end',
connect: 'disconnect',
focus: 'blur',
mount: 'unmount',
reveal: 'conceal',
display: 'dismiss',
lock: 'unlock',
subscribe: 'unsubscribe'
};
var createVerbs = function (keys, value) {
return Object.fromEntries(keys.map(function (key) { return [key, function (noun) { return (0, nouns_1.setNounValue)(noun, value); }]; }));
};
exports.positiveVerbs = createVerbs(Object.keys(exports.verbPairs), true);
exports.negativeVerbs = createVerbs(Object.values(exports.verbPairs), false);
var toggle = function (noun) { return (0, nouns_1.setNounValue)(noun, !(noun === null || noun === void 0 ? void 0 : noun.isActive)); };
exports.verbs = __assign(__assign(__assign({}, exports.positiveVerbs), exports.negativeVerbs), { toggle: toggle });
;