UNPKG

poi-plugin-lock-reminder

Version:

A poi plugin for reminding to lock new kanmusu.

192 lines (165 loc) 8.26 kB
"use strict"; exports.__esModule = true; exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _moment = _interopRequireDefault(require("moment")); var _reactRedux = require("react-redux"); var _lodash = require("lodash"); var _styledComponents = _interopRequireDefault(require("styled-components")); var _core = require("@blueprintjs/core"); var _reactI18next = require("react-i18next"); var _selectors = require("views/utils/selectors"); var _selectors2 = require("./selectors"); var _panel = _interopRequireDefault(require("./panel")); var _utils = require("../utils"); var _radioConfig = _interopRequireDefault(require("../settings-class/radio-config")); var _dec, _dec2, _class, _class2, _temp; function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const ReminderWrapper = _styledComponents.default.div.withConfig({ displayName: "views__ReminderWrapper", componentId: "sc-1629j03-0" })(["padding:10px;h4{display:flex;align-items:center;.bp3-popover-wrapper{margin-left:5px;.bp3-popover-target{display:flex;}}}"]); const Tip = (0, _styledComponents.default)(_core.Callout).withConfig({ displayName: "views__Tip", componentId: "sc-1629j03-1" })(["margin-bottom:10px;"]); const PictureTipWrapper = (0, _styledComponents.default)(Tip).withConfig({ displayName: "views__PictureTipWrapper", componentId: "sc-1629j03-2" })(["display:", ";"], props => props.disabled ? 'none' : ''); const Expand = (0, _styledComponents.default)(_core.Button).withConfig({ displayName: "views__Expand", componentId: "sc-1629j03-3" })(["display:inline;margin-left:15px;"]); const PictureStatusTable = _styledComponents.default.table.withConfig({ displayName: "views__PictureStatusTable", componentId: "sc-1629j03-4" })(["width:100%;td{border:1px solid #a7b6c2;text-align:center;vertical-align:middle;}"]); let ShipReminder = (_dec = (0, _reactI18next.withNamespaces)(_utils.PLUGIN_NAME), _dec2 = (0, _reactRedux.connect)(state => ({ selectedShips: (0, _selectors2.selectedShipIdsSelector)(state), unownedShips: (0, _selectors2.unownedShipsSelector)(state), originShips: (0, _selectors2.originShipsSelector)(state), $shipTypes: (0, _lodash.get)(state, 'const.$shipTypes'), picture: (0, _lodash.get)((0, _selectors.extensionSelectorFactory)(_utils.PLUGIN_NAME)(state), 'picture', {}), mode: (0, _lodash.get)(state, `config.plugin.${_utils.PLUGIN_NAME}.mode`, 'custom'), category: (0, _lodash.get)(state, `config.plugin.${_utils.PLUGIN_NAME}.customNotifyCategory`, 'willnot') })), _dec(_class = _dec2(_class = (_temp = _class2 = class ShipReminder extends _react.default.PureComponent { constructor(...args) { super(...args); this.state = { customIsOpen: true }; } componentWillReceiveProps(nextProps) { if (nextProps.mode === 'custom') { this.setState({ customIsOpen: true }); } } render() { const { selectedShips, unownedShips, originShips, $shipTypes, t, picture, mode, category } = this.props; const { customIsOpen } = this.state; const isInitiallized = !(0, _lodash.isEmpty)(originShips); const pageOptions = Array(6).fill().map((_, idx) => idx + 1); _utils.logger.log('unownedShips: \n', unownedShips); _utils.logger.log('isInitiallized', isInitiallized); if (mode === 'picture') { this.setState({ customIsOpen: false }); } return isInitiallized ? /*#__PURE__*/_react.default.createElement(ReminderWrapper, null, /*#__PURE__*/_react.default.createElement(_core.H4, null, t('Custom mode'), /*#__PURE__*/_react.default.createElement(_core.Tooltip, { content: t('Will not notify checked ships'), intent: _core.Intent.PRIMARY }, /*#__PURE__*/_react.default.createElement(_core.Icon, { icon: "info-sign" })), /*#__PURE__*/_react.default.createElement(Expand, { text: t(customIsOpen ? 'Collapse' : 'Expand'), intent: "primary", minimal: true, disabled: mode !== 'custom', onClick: () => this.setState({ customIsOpen: !customIsOpen }) })), mode !== 'custom' ? /*#__PURE__*/_react.default.createElement(Tip, null, t('customTipWhenModeIsPicture')) : '', /*#__PURE__*/_react.default.createElement(_core.Collapse, { isOpen: customIsOpen, keepChildrenMounted: true }, /*#__PURE__*/_react.default.createElement(_radioConfig.default, { label: t('Selected ships will'), configName: `plugin.${_utils.PLUGIN_NAME}.customNotifyCategory`, default: "willnot", options: [{ label: t('will not be notified'), value: 'willnot' }, { label: t('will be notified'), value: 'will' }] }), (0, _lodash.isEmpty)(unownedShips) && category === 'willnot' ? /*#__PURE__*/_react.default.createElement(Tip, { intent: _core.Intent.SUCCESS }, t('No unowned ship')) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.H5, null, t(category === 'willnot' ? 'Unowned ships' : 'All ships'), "\uFF08", category === 'willnot' ? unownedShips.length : originShips.length, "\uFF09"), (0, _lodash.map)((0, _lodash.groupBy)(category === 'willnot' ? unownedShips : originShips, s => s.api_stype), (ships, type) => { const panelShipsProp = (0, _lodash.map)(ships, s => ({ name: s.api_name, id: s.api_id, checked: !!(0, _lodash.find)(selectedShips, ss => s.api_id === ss) })); return /*#__PURE__*/_react.default.createElement(_panel.default, { title: $shipTypes[type].api_name, ships: panelShipsProp }); }))), /*#__PURE__*/_react.default.createElement(_core.H4, null, t('Picture mode'), /*#__PURE__*/_react.default.createElement(_core.Tooltip, { content: t('pictureIntroduce'), intent: _core.Intent.PRIMARY }, /*#__PURE__*/_react.default.createElement(_core.Icon, { icon: "info-sign" }))), mode !== 'picture' ? /*#__PURE__*/_react.default.createElement(Tip, null, t('pictureTipWhenModeIsCustom')) : '', /*#__PURE__*/_react.default.createElement(PictureTipWrapper, { disabled: mode !== 'picture' }, (0, _lodash.isEmpty)(picture.list) ? t('enterPicture') : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, t('Updated info'), /*#__PURE__*/_react.default.createElement(PictureStatusTable, null, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, (0, _lodash.map)(pageOptions, op => /*#__PURE__*/_react.default.createElement("td", { key: `key-${op}` }, t('page', { page: op }))))), /*#__PURE__*/_react.default.createElement("tbody", null, /*#__PURE__*/_react.default.createElement("tr", null, (0, _lodash.map)(pageOptions, op => /*#__PURE__*/_react.default.createElement("td", { key: `key-${op}`, style: { background: picture.timestamp[op] ? '#15b37150' : '#f5565650' } }, picture.timestamp[op] ? /*#__PURE__*/_react.default.createElement(_core.Tooltip, { content: (0, _moment.default)(picture.timestamp[op]).format('YYYY/MM/DD HH:mm:ss') }, /*#__PURE__*/_react.default.createElement(_core.Icon, { icon: "tick" })) : /*#__PURE__*/_react.default.createElement(_core.Icon, { icon: "cross" })))))), t('shipRecorded', { ships: (0, _lodash.compact)((0, _lodash.flatMap)(picture.list)).length || '-' })))) : /*#__PURE__*/_react.default.createElement(_core.NonIdealState, { icon: "application", title: t('No game data'), description: t('NonIdealDesc') }); } }, _class2.propTypes = { unownedShips: _propTypes.default.array, selectedShips: _propTypes.default.array, originShips: _propTypes.default.array, t: _propTypes.default.func.isRequired, $shipTypes: _propTypes.default.object, picture: _propTypes.default.object, mode: _propTypes.default.string, category: _propTypes.default.string }, _temp)) || _class) || _class); var _default = ShipReminder; exports.default = _default; module.exports = exports.default;