Page MenuHomePhabricator

[lib] Simplify threadIsGroupChat check
ClosedPublic

Authored by ashoat on Sep 29 2023, 11:49 AM.
Tags
None
Referenced Files
F2015792: D9332.id31577.diff
Fri, Jun 14, 11:12 PM
Unknown Object (File)
Fri, Jun 14, 11:56 AM
Unknown Object (File)
Tue, Jun 11, 11:49 PM
Unknown Object (File)
Wed, Jun 5, 12:04 PM
Unknown Object (File)
Wed, Jun 5, 12:04 PM
Unknown Object (File)
Sat, May 18, 1:29 AM
Unknown Object (File)
May 6 2024, 8:53 AM
Unknown Object (File)
May 6 2024, 8:53 AM
Subscribers

Details

Summary

We can simplify this check because of two properties:

  1. I grep'd around and confirmed that despite supporting RawThreadInfo | ThreadInfo, threadIsGroupChat is only ever called with a ThreadInfo parameter. This is confirmed by Flow.
  2. In D8072, @rohan updated getRelativeMemberInfos to filter out anybody with a "falsey" role from a ThreadInfo. RawThreadInfo will still have these members, but since threadInfoFromRawThreadInfo calls getRelativeMemberInfos to determine its members property, that means that a ThreadInfo will NEVER have a member with a falsey role.

Given these two observations, I've made three changes:

  1. Restricted the function parameter to only take a ThreadInfo.
  2. Remove the call to threadMembersWithoutAddedAshoat. This function never removes members unless they have a falsey role, so it is a no-op in this case.
  3. Remove the filter. Similar to above, this filter never removed members unless they had a falsey role.

By removing the member.permissions check, we now have only one such check on the client left. That check can be addressed in ENG-4155, at which point we could remove member.permissions entirely, which would greatly reduce the size of the ThreadStore.

Test Plan

Careful reading and Flow

Diff Detail

Repository
rCOMM Comm
Branch
ashoat/group-chat
Lint
No Lint Coverage
Unit
No Test Coverage