Revert react-virtualized key changes
This commit is contained in:
parent
b35acc2396
commit
c7ea1882ba
1 changed files with 2 additions and 23 deletions
|
@ -318,15 +318,14 @@ export function ConversationList({
|
||||||
);
|
);
|
||||||
|
|
||||||
const renderRow: ListRowRenderer = useCallback(
|
const renderRow: ListRowRenderer = useCallback(
|
||||||
({ key: providedKey, index, style }) => {
|
({ key, index, style }) => {
|
||||||
const row = getRow(index);
|
const row = getRow(index);
|
||||||
if (!row) {
|
if (!row) {
|
||||||
assertDev(false, `Expected a row at index ${index}`);
|
assertDev(false, `Expected a row at index ${index}`);
|
||||||
return <div key={providedKey} style={style} />;
|
return <div key={key} style={style} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
let result: ReactNode;
|
let result: ReactNode;
|
||||||
let key: string;
|
|
||||||
switch (row.type) {
|
switch (row.type) {
|
||||||
case RowType.ArchiveButton:
|
case RowType.ArchiveButton:
|
||||||
result = (
|
result = (
|
||||||
|
@ -345,11 +344,9 @@ export function ConversationList({
|
||||||
</span>
|
</span>
|
||||||
</button>
|
</button>
|
||||||
);
|
);
|
||||||
key = 'archive';
|
|
||||||
break;
|
break;
|
||||||
case RowType.Blank:
|
case RowType.Blank:
|
||||||
result = undefined;
|
result = undefined;
|
||||||
key = `blank:${providedKey}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.Contact: {
|
case RowType.Contact: {
|
||||||
const { isClickable = true, hasContextMenu = false } = row;
|
const { isClickable = true, hasContextMenu = false } = row;
|
||||||
|
@ -371,7 +368,6 @@ export function ConversationList({
|
||||||
onRemove={isClickable ? removeConversation : undefined}
|
onRemove={isClickable ? removeConversation : undefined}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = `contact:${row.contact.id}`;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RowType.ContactCheckbox:
|
case RowType.ContactCheckbox:
|
||||||
|
@ -386,7 +382,6 @@ export function ConversationList({
|
||||||
theme={theme}
|
theme={theme}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = `contact-checkbox:${row.contact.id}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.ClearFilterButton:
|
case RowType.ClearFilterButton:
|
||||||
result = (
|
result = (
|
||||||
|
@ -405,7 +400,6 @@ export function ConversationList({
|
||||||
</Button>
|
</Button>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
key = 'clear-filter';
|
|
||||||
break;
|
break;
|
||||||
case RowType.PhoneNumberCheckbox:
|
case RowType.PhoneNumberCheckbox:
|
||||||
result = (
|
result = (
|
||||||
|
@ -425,7 +419,6 @@ export function ConversationList({
|
||||||
theme={theme}
|
theme={theme}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = `phone-number-checkbox:${row.phoneNumber.e164}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.UsernameCheckbox:
|
case RowType.UsernameCheckbox:
|
||||||
result = (
|
result = (
|
||||||
|
@ -445,7 +438,6 @@ export function ConversationList({
|
||||||
theme={theme}
|
theme={theme}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = `username-checkbox:${row.username}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.GenericCheckbox:
|
case RowType.GenericCheckbox:
|
||||||
result = (
|
result = (
|
||||||
|
@ -461,7 +453,6 @@ export function ConversationList({
|
||||||
clickable
|
clickable
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = `generic-checkbox:${providedKey}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.Conversation: {
|
case RowType.Conversation: {
|
||||||
const itemProps = pick(row.conversation, [
|
const itemProps = pick(row.conversation, [
|
||||||
|
@ -495,7 +486,6 @@ export function ConversationList({
|
||||||
'serviceId',
|
'serviceId',
|
||||||
]);
|
]);
|
||||||
const { badges, title, unreadCount, lastMessage } = itemProps;
|
const { badges, title, unreadCount, lastMessage } = itemProps;
|
||||||
key = `conversation:${itemProps.id}`;
|
|
||||||
result = (
|
result = (
|
||||||
<ConversationListItem
|
<ConversationListItem
|
||||||
{...itemProps}
|
{...itemProps}
|
||||||
|
@ -524,7 +514,6 @@ export function ConversationList({
|
||||||
onClick={showChooseGroupMembers}
|
onClick={showChooseGroupMembers}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = 'create-new-group';
|
|
||||||
break;
|
break;
|
||||||
case RowType.FindByUsername:
|
case RowType.FindByUsername:
|
||||||
result = (
|
result = (
|
||||||
|
@ -534,7 +523,6 @@ export function ConversationList({
|
||||||
onClick={showFindByUsername}
|
onClick={showFindByUsername}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = 'find-by-username';
|
|
||||||
break;
|
break;
|
||||||
case RowType.FindByPhoneNumber:
|
case RowType.FindByPhoneNumber:
|
||||||
result = (
|
result = (
|
||||||
|
@ -544,7 +532,6 @@ export function ConversationList({
|
||||||
onClick={showFindByPhoneNumber}
|
onClick={showFindByPhoneNumber}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = 'find-by-phonenumber';
|
|
||||||
break;
|
break;
|
||||||
case RowType.Header: {
|
case RowType.Header: {
|
||||||
const headerText = row.getHeaderText(i18n);
|
const headerText = row.getHeaderText(i18n);
|
||||||
|
@ -556,20 +543,16 @@ export function ConversationList({
|
||||||
{headerText}
|
{headerText}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
key = `header:${providedKey}`;
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case RowType.MessageSearchResult:
|
case RowType.MessageSearchResult:
|
||||||
result = <>{renderMessageSearchResult?.(row.messageId)}</>;
|
result = <>{renderMessageSearchResult?.(row.messageId)}</>;
|
||||||
key = `message-search-result:${row.messageId}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.SearchResultsLoadingFakeHeader:
|
case RowType.SearchResultsLoadingFakeHeader:
|
||||||
result = <SearchResultsLoadingFakeHeaderComponent />;
|
result = <SearchResultsLoadingFakeHeaderComponent />;
|
||||||
key = `loading-header:${providedKey}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.SearchResultsLoadingFakeRow:
|
case RowType.SearchResultsLoadingFakeRow:
|
||||||
result = <SearchResultsLoadingFakeRowComponent />;
|
result = <SearchResultsLoadingFakeRowComponent />;
|
||||||
key = `loading-row:${providedKey}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.SelectSingleGroup:
|
case RowType.SelectSingleGroup:
|
||||||
result = (
|
result = (
|
||||||
|
@ -579,7 +562,6 @@ export function ConversationList({
|
||||||
onSelectGroup={onSelectConversation}
|
onSelectGroup={onSelectConversation}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = 'select-single-group';
|
|
||||||
break;
|
break;
|
||||||
case RowType.StartNewConversation:
|
case RowType.StartNewConversation:
|
||||||
result = (
|
result = (
|
||||||
|
@ -595,7 +577,6 @@ export function ConversationList({
|
||||||
showConversation={showConversation}
|
showConversation={showConversation}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = 'start-new-conversation';
|
|
||||||
break;
|
break;
|
||||||
case RowType.UsernameSearchResult:
|
case RowType.UsernameSearchResult:
|
||||||
result = (
|
result = (
|
||||||
|
@ -611,7 +592,6 @@ export function ConversationList({
|
||||||
showConversation={showConversation}
|
showConversation={showConversation}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
key = `username-search-result:${row.username}`;
|
|
||||||
break;
|
break;
|
||||||
case RowType.EmptyResults:
|
case RowType.EmptyResults:
|
||||||
result = (
|
result = (
|
||||||
|
@ -619,7 +599,6 @@ export function ConversationList({
|
||||||
{row.message}
|
{row.message}
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
key = 'empty-results';
|
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw missingCaseError(row);
|
throw missingCaseError(row);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue