@vimeo/iris
Version:
Vimeo Design System
32 lines (29 loc) • 1.28 kB
JavaScript
import { c as __assign } from '../../tslib.es6-7f0e734f.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 __assign(__assign({}, state), { children: onStateText, format: 'positive', icon: onIcon });
case 'off':
return __assign(__assign({}, state), { children: offStateText, format: format, icon: offIcon });
case 'hovering':
return __assign(__assign({}, state), { children: turnOffActionText, format: 'secondary', icon: turnOffIcon });
}
};
}
export { initialState, reducer };