UNPKG

@kui-shell/plugin-client-common

Version:

Kui plugin that offers stylesheets

62 lines 2.78 kB
/* * Copyright 2020 The Kubernetes Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import React from 'react'; import Modal from '../spi/Modal'; import { i18n } from '@kui-shell/core/mdist/api/i18n'; import { eventChannelUnsafe } from '@kui-shell/core/mdist/api/Events'; const strings = i18n('plugin-core-support'); function isActive(state) { return state.isActive; } export default class Confirm extends React.PureComponent { constructor(props) { super(props); this._onSubmit = this.onConfirm.bind(this, true); this._onClose = this.onConfirm.bind(this, false); this.initEvents(); this.state = { isActive: false }; } initEvents() { const requestChannel = `/kui-shell/Confirm/v1/tab/${this.props.uuid}`; eventChannelUnsafe.on(requestChannel, this.onConfirmStart.bind(this)); } onConfirmStart({ command, asking, execUUID }) { this.setState({ isActive: true, command, asking, execUUID }); } /** User has confirmed the command */ onConfirm(confirmed) { if (isActive(this.state)) { this.setState({ isActive: false }); const responseChannel = `/kui-shell/Confirm/v1/tab/${this.props.uuid}/execUUID/${this.state.execUUID}/confirmed`; eventChannelUnsafe.emit(responseChannel, { confirmed }); } } render() { if (!isActive(this.state)) { return React.createElement(React.Fragment, null); } else { return (React.createElement(Modal, { id: "confirm-dialog", isOpen: true, titleIconVariant: "danger", title: strings('pleaseConfirm'), primaryButtonText: strings('yesIAmSure'), secondaryButtonText: strings('cancel'), onSubmit: this._onSubmit, onClose: this._onClose }, React.createElement("p", { className: "bx--modal-content__text" }, strings('aboutToExecute')), React.createElement("p", { className: "bx--modal-content__text" }, React.createElement("strong", { className: "red-text" }, this.state.command)), React.createElement("p", { className: "bx--modal-content__text" }, this.state.asking || strings('areYouSure')))); } } } //# sourceMappingURL=Confirm.js.map