[MM-56849] Convert ./components/post_view/failed_post_options/failed_post_options.tsx from Class Component to Function Component (#26234)

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Syed Ali Abbas Zaidi
2024-02-21 15:03:47 +05:00
коммит произвёл GitHub
родитель bff19228e1
Коммит 95e85db811

Просмотреть файл

@@ -1,7 +1,7 @@
// Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved. // Copyright (c) 2015-present Mattermost, Inc. All Rights Reserved.
// See LICENSE.txt for license information. // See LICENSE.txt for license information.
import React from 'react'; import React, {memo, useCallback} from 'react';
import type {MouseEvent} from 'react'; import type {MouseEvent} from 'react';
import {FormattedMessage} from 'react-intl'; import {FormattedMessage} from 'react-intl';
@@ -18,28 +18,30 @@ type Props = {
}; };
}; };
export default class FailedPostOptions extends React.PureComponent<Props> { const FailedPostOptions = ({
retryPost = (e: MouseEvent): void => { post,
actions,
}: Props) => {
const retryPost = useCallback((e: MouseEvent): void => {
e.preventDefault(); e.preventDefault();
const post = {...this.props.post}; const postDetails = {...post};
Reflect.deleteProperty(post, 'id'); Reflect.deleteProperty(postDetails, 'id');
this.props.actions.createPost(post, []); actions.createPost(postDetails, []);
}; }, [actions, post]);
cancelPost = (e: MouseEvent): void => { const cancelPost = useCallback((e: MouseEvent): void => {
e.preventDefault(); e.preventDefault();
this.props.actions.removePost(this.props.post); actions.removePost(post);
}; }, [actions, post]);
render(): JSX.Element {
return ( return (
<span className='pending-post-actions'> <span className='pending-post-actions'>
<a <a
className='post-retry' className='post-retry'
href='#' href='#'
onClick={this.retryPost} onClick={retryPost}
> >
<FormattedMessage <FormattedMessage
id='pending_post_actions.retry' id='pending_post_actions.retry'
@@ -50,7 +52,7 @@ export default class FailedPostOptions extends React.PureComponent<Props> {
<a <a
className='post-cancel' className='post-cancel'
href='#' href='#'
onClick={this.cancelPost} onClick={cancelPost}
> >
<FormattedMessage <FormattedMessage
id='pending_post_actions.cancel' id='pending_post_actions.cancel'
@@ -59,5 +61,6 @@ export default class FailedPostOptions extends React.PureComponent<Props> {
</a> </a>
</span> </span>
); );
} };
}
export default memo(FailedPostOptions);