diff options
author | Grégoire Aubert <gregoire.aubert@sonarsource.com> | 2024-02-20 09:34:09 +0100 |
---|---|---|
committer | sonartech <sonartech@sonarsource.com> | 2024-02-20 20:02:38 +0000 |
commit | 9b925e5931796a04867eb9c524e67fae9da2671a (patch) | |
tree | fac07eb88558a647d7794d3ab1628bb4b1bf16c2 /server/sonar-web/src/main/js/components/controls/SimpleModal.tsx | |
parent | 04c6c92cc775134fc3208ae404e4f36fa9ccb490 (diff) | |
download | sonarqube-9b925e5931796a04867eb9c524e67fae9da2671a.tar.gz sonarqube-9b925e5931796a04867eb9c524e67fae9da2671a.zip |
SONAR-19032 MIUI cleanup part 1 (#10627)
Co-authored-by: David Cho-Lerat <david.cho-lerat@sonarsource.com>
Co-authored-by: Jeremy Davis <jeremy.davis@sonarsource.com>
Diffstat (limited to 'server/sonar-web/src/main/js/components/controls/SimpleModal.tsx')
-rw-r--r-- | server/sonar-web/src/main/js/components/controls/SimpleModal.tsx | 101 |
1 files changed, 0 insertions, 101 deletions
diff --git a/server/sonar-web/src/main/js/components/controls/SimpleModal.tsx b/server/sonar-web/src/main/js/components/controls/SimpleModal.tsx deleted file mode 100644 index 1d3a408b2bc..00000000000 --- a/server/sonar-web/src/main/js/components/controls/SimpleModal.tsx +++ /dev/null @@ -1,101 +0,0 @@ -/* - * SonarQube - * Copyright (C) 2009-2024 SonarSource SA - * mailto:info AT sonarsource DOT com - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 3 of the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this program; if not, write to the Free Software Foundation, - * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. - */ -import * as React from 'react'; -import Modal, { ModalProps } from './Modal'; - -export interface ChildrenProps { - onCloseClick: (event?: React.SyntheticEvent<HTMLElement>) => void; - onFormSubmit: (event: React.SyntheticEvent<HTMLFormElement>) => void; - onSubmitClick: (event?: React.SyntheticEvent<HTMLElement>) => void; - submitting: boolean; -} - -interface Props extends Omit<ModalProps, 'children'> { - children: (props: ChildrenProps) => React.ReactNode; - header: string; - onClose: () => void; - onSubmit: () => void | Promise<void | Response>; -} - -interface State { - submitting: boolean; -} - -export default class SimpleModal extends React.Component<Props, State> { - mounted = false; - state: State = { submitting: false }; - - componentDidMount() { - this.mounted = true; - } - - componentWillUnmount() { - this.mounted = false; - } - - stopSubmitting = () => { - if (this.mounted) { - this.setState({ submitting: false }); - } - }; - - handleCloseClick = (event?: React.SyntheticEvent<HTMLElement>) => { - if (event) { - event.preventDefault(); - event.currentTarget.blur(); - } - this.props.onClose(); - }; - - handleFormSubmit = (event: React.SyntheticEvent<HTMLFormElement>) => { - event.preventDefault(); - this.submit(); - }; - - handleSubmitClick = (event?: React.SyntheticEvent<HTMLElement>) => { - if (event) { - event.preventDefault(); - event.currentTarget.blur(); - } - this.submit(); - }; - - submit = () => { - const result = this.props.onSubmit(); - if (result) { - this.setState({ submitting: true }); - result.then(this.stopSubmitting, this.stopSubmitting); - } - }; - - render() { - const { children, header, onClose, onSubmit, ...modalProps } = this.props; - return ( - <Modal contentLabel={header} onRequestClose={onClose} {...modalProps}> - {children({ - onCloseClick: this.handleCloseClick, - onFormSubmit: this.handleFormSubmit, - onSubmitClick: this.handleSubmitClick, - submitting: this.state.submitting, - })} - </Modal> - ); - } -} |