UNPKG

six-favorites-widget

Version:

SIX Favorites Widget

1 lines 4.56 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var a=function(){function i(t,e){for(var a=0;a<e.length;a++){var i=e[a];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}return function(t,e,a){return e&&i(t.prototype,e),a&&i(t,a),t}}(),i=Object.assign||function(t){for(var e=1;e<arguments.length;e++){var a=arguments[e];for(var i in a)Object.prototype.hasOwnProperty.call(a,i)&&(t[i]=a[i])}return t},n=require("react"),s=l(n),t=require("prop-types"),e=l(t),o=require("six-widget-support/lib/context-provider"),r=l(o);function l(t){return t&&t.__esModule?t:{default:t}}function u(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function p(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function c(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}var f=13,d=27,m={edit:void 0,listName:""};exports.default=function(e){return s.default.createElement(r.default.Consumer,null,function(t){return s.default.createElement(v,i({},e,{context:t}))})};var v=function(t){function e(a){u(this,e);var i=p(this,(e.__proto__||Object.getPrototypeOf(e)).call(this,a));return i.state={listName:"",selected:!1},i.removeFavoriteList=function(t){var e=i.props||a;e.session._internal.managers.favorites.deleteFavoriteList(t),i.setState(m),e.onRemoveList(t)},i.setDefaultFavoriteList=function(t){var e=i.props||a;e.session._internal.managers.favorites.setDefaultFavoriteList(t),i.setState(m),e.onSetDefaultList(t)},i.validateListName=function(){return i.state.listName&&i.state.listName.match(/.+/gi)},i.editFavoriteList=function(t){if(i.state.edit)i.validateListName()&&(i.saveFavoriteList(),i.setState(m));else{i.setState({edit:t,listName:t.name||(e="My favorites",i.props.context.translator.translate(e))})}var e},i.saveFavoriteList=function(){(i.props||a).session._internal.managers.favorites.updateFavoriteList(i.state.edit.id,i.state.listName)},i.onInputKeyDown=function(t){t.keyCode===f?i.validateListName()&&(i.saveFavoriteList(),i.setState(m)):t.keyCode===d&&i.setState(m)},i.saveName=function(t){i.setState({listName:t.target.value})},i.onInputBlur=function(){i.validateListName()&&i.saveFavoriteList(),i.setState(m)},i}return c(e,n.Component),a(e,[{key:"componentWillReceiveProps",value:function(t){var e,a=this;if(!t.selected){this.setState({listName:t.item.name||(e="My favorites",a.props.context.translator.translate(e)),edit:null})}}},{key:"render",value:function(){var e=this,t=function(t){return e.props.context.translator.translate(t)};return s.default.createElement("span",null,this.state.edit&&this.props.selected?s.default.createElement("input",{className:this.validateListName()?"":"six-invalid",name:"list-name",onClick:function(t){t.stopPropagation()},onKeyDown:this.onInputKeyDown,onBlur:this.onInputBlur,onChange:this.saveName,value:this.state.listName}):s.default.createElement("span",{className:this.props.item&&this.props.item.isDefault?"six-default-favorite-list":""},this.props.item.name||t("My favorites")),s.default.createElement("button",{className:"six-button six-edit-button",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.editFavoriteList(e.props.item)},title:t("Edit"),style:{display:this.props.selected?void 0:"none"}},s.default.createElement("span",{className:"six-button-content"})),s.default.createElement("button",{className:"six-button six-remove-button",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.removeFavoriteList(e.props.item.id)},title:t("Delete"),style:{display:this.props.selected&&this.props.item&&!this.props.item.isDefault?void 0:"none"}},s.default.createElement("span",{className:"six-button-content"})),s.default.createElement("button",{className:"six-button six-make-default-button",onClick:function(t){t.preventDefault(),t.stopPropagation(),e.setDefaultFavoriteList(e.props.item.id)},title:t("Make default"),style:{display:this.props.selected&&this.props.item&&!this.props.item.isDefault?void 0:"none"}},s.default.createElement("span",{className:"six-button-content"})))}}]),e}();v.propTypes={selected:e.default.bool,item:e.default.object,context:e.default.object.isRequired},v.defaultProps={selected:!1,item:void 0};