[MM-57712] Convert ./components/post_deleted_modal.tsx from Class Component to Function Component (#26731)

* [MM-57712] Convert `./components/post_deleted_modal.tsx` from Class Component to Function Component

* 🎨 Improve code quality

---------

Co-authored-by: Mattermost Build <build@mattermost.com>
This commit is contained in:
Syed Ali Abbas Zaidi 2024-04-15 12:46:32 +05:00 committed by GitHub
parent 870cee30c6
commit bca4535150
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -1,7 +1,7 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information.
import React from 'react';
import React, {useState, memo, useCallback} from 'react';
import {Modal} from 'react-bootstrap';
import {FormattedMessage} from 'react-intl';
@ -9,30 +9,19 @@ type Props = {
onExited: () => void;
}
type State = {
show: boolean;
}
const PostDeletedModal = ({
onExited,
}: Props) => {
const [show, setShow] = useState(true);
export default class PostDeletedModal extends React.PureComponent<Props, State> {
constructor(props: Props) {
super(props);
const handleHide = useCallback(() => setShow(false), []);
this.state = {
show: true,
};
}
private handleHide = () => {
this.setState({show: false});
};
public render(): JSX.Element {
return (
<Modal
dialogClassName='a11y__modal'
show={this.state.show}
onHide={this.handleHide}
onExited={this.props.onExited}
show={show}
onHide={handleHide}
onExited={onExited}
role='dialog'
aria-labelledby='postDeletedModalLabel'
data-testid='postDeletedModal'
@ -61,7 +50,7 @@ export default class PostDeletedModal extends React.PureComponent<Props, State>
type='button'
className='btn btn-primary'
autoFocus={true}
onClick={this.handleHide}
onClick={handleHide}
data-testid='postDeletedModalOkButton'
>
<FormattedMessage
@ -72,5 +61,6 @@ export default class PostDeletedModal extends React.PureComponent<Props, State>
</Modal.Footer>
</Modal>
);
}
}
};
export default memo(PostDeletedModal);