[MM-56845] Convert ./components/suggestion/suggestion_date.tsx from Class Component to Function Component (#26236)

Co-authored-by: Mattermost Build <build@mattermost.com>
Этот коммит содержится в:
Syed Ali Abbas Zaidi
2024-02-27 14:08:49 +05:00
коммит произвёл GitHub
родитель fac1245143
Коммит a19e999c11

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

@@ -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} from 'react';
import Popover from 'components/widgets/popover'; import Popover from 'components/widgets/popover';
@@ -27,31 +27,24 @@ type Props = {
components: Array<React.ComponentType<SuggestionItem>>; components: Array<React.ComponentType<SuggestionItem>>;
} }
export default class SuggestionDate extends React.PureComponent<Props> { const SuggestionDate = ({
render() { items,
if (this.props.items.length === 0) { terms,
components,
matchedPretext,
onCompleteWord,
preventClose,
handleEscape,
}: Props) => {
if (items.length === 0) {
return null; return null;
} }
const item = this.props.items[0]; const item = items[0];
const term = this.props.terms[0]; const term = terms[0];
// ReactComponent names need to be upper case when used in JSX // ReactComponent names need to be upper case when used in JSX
const Component = this.props.components[0]; const Component = components[0];
const itemComponent = (
<Component
key={term}
ref={term}
item={item}
term={term}
matchedPretext={this.props.matchedPretext[0]}
isSelection={false}
onClick={this.props.onCompleteWord}
preventClose={this.props.preventClose}
handleEscape={this.props.handleEscape}
/>
);
return ( return (
<Popover <Popover
@@ -59,8 +52,19 @@ export default class SuggestionDate extends React.PureComponent<Props> {
className='search-help-popover autocomplete visible' className='search-help-popover autocomplete visible'
placement='bottom' placement='bottom'
> >
{itemComponent} <Component
key={term}
ref={term}
item={item}
term={term}
matchedPretext={matchedPretext[0]}
isSelection={false}
onClick={onCompleteWord}
preventClose={preventClose}
handleEscape={handleEscape}
/>
</Popover> </Popover>
); );
} };
}
export default memo(SuggestionDate);