From 38c390355de7ad5b3f02fd0f1927b00ded92fe79 Mon Sep 17 00:00:00 2001 From: William Grant Date: Mon, 22 Apr 2024 11:58:02 +1000 Subject: [PATCH] refactor: leftpanemessagesection is now a functional component --- .../leftpane/LeftPaneMessageSection.tsx | 48 +++++++------------ 1 file changed, 17 insertions(+), 31 deletions(-) diff --git a/ts/components/leftpane/LeftPaneMessageSection.tsx b/ts/components/leftpane/LeftPaneMessageSection.tsx index f3d04411e..5b23d8abb 100644 --- a/ts/components/leftpane/LeftPaneMessageSection.tsx +++ b/ts/components/leftpane/LeftPaneMessageSection.tsx @@ -1,6 +1,3 @@ -import autoBind from 'auto-bind'; - -import { Component } from 'react'; import { useSelector } from 'react-redux'; import { AutoSizer, List, ListRowProps } from 'react-virtualized'; import styled from 'styled-components'; @@ -66,15 +63,10 @@ const ClosableOverlay = () => { } }; -export class LeftPaneMessageSection extends Component { - public constructor(props: Props) { - super(props); - autoBind(this); - } - - public renderRow = ({ index, key, style }: ListRowProps): JSX.Element | null => { - const { conversationIds } = this.props; +export const LeftPaneMessageSection = (props: Props) => { + const { conversationIds, hasSearchResults, leftOverlayMode } = props; + const renderRow = ({ index, key, style }: ListRowProps): JSX.Element | null => { // assume conversations that have been marked unapproved should be filtered out by selector. if (!conversationIds) { throw new Error('renderRow: Tried to render without conversations'); @@ -88,9 +80,7 @@ export class LeftPaneMessageSection extends Component { return ; }; - public renderList(): JSX.Element { - const { conversationIds, hasSearchResults } = this.props; - + const renderList = () => { if (hasSearchResults) { return ; } @@ -110,7 +100,7 @@ export class LeftPaneMessageSection extends Component { height={height} rowCount={length} rowHeight={64} - rowRenderer={this.renderRow} + rowRenderer={renderRow} width={width} autoHeight={false} conversationIds={conversationIds} @@ -119,20 +109,9 @@ export class LeftPaneMessageSection extends Component { ); - } - - public render(): JSX.Element { - const { leftOverlayMode } = this.props; - - return ( - - - {leftOverlayMode ? : this.renderConversations()} - - ); - } + }; - public renderConversations() { + const renderConversations = () => { return ( @@ -141,8 +120,15 @@ export class LeftPaneMessageSection extends Component { window.inboxStore?.dispatch(setLeftOverlayMode('message-requests')); }} /> - {this.renderList()} + {renderList()} ); - } -} + }; + + return ( + + + {leftOverlayMode ? : renderConversations()} + + ); +};