@vimeo/iris
Version:
Vimeo Design System
37 lines (32 loc) • 1.45 kB
JavaScript
;
Object.defineProperty(exports, '__esModule', { value: true });
var tslib_es6 = require('../../tslib.es6-3ec409b7.js');
var initialState = function (_a) {
var format = _a.format, isActive = _a.isActive, offIcon = _a.offIcon, offStateText = _a.offStateText, onIcon = _a.onIcon, onStateText = _a.onStateText;
return isActive
? {
children: onStateText,
format: 'positive',
icon: onIcon,
}
: {
children: offStateText,
format: format,
icon: offIcon,
};
};
function reducer(_a) {
var format = _a.format, offIcon = _a.offIcon, offStateText = _a.offStateText, onIcon = _a.onIcon, onStateText = _a.onStateText, turnOffActionText = _a.turnOffActionText, turnOffIcon = _a.turnOffIcon;
return function (state, action) {
switch (action) {
case 'on':
return tslib_es6.__assign(tslib_es6.__assign({}, state), { children: onStateText, format: 'positive', icon: onIcon });
case 'off':
return tslib_es6.__assign(tslib_es6.__assign({}, state), { children: offStateText, format: format, icon: offIcon });
case 'hovering':
return tslib_es6.__assign(tslib_es6.__assign({}, state), { children: turnOffActionText, format: 'secondary', icon: turnOffIcon });
}
};
}
exports.initialState = initialState;
exports.reducer = reducer;