( communities: $ReadOnlyArray<ResolvedThreadInfo>, )
| 86 | } |
| 87 | |
| 88 | function useAppendCommunitySuffix( |
| 89 | communities: $ReadOnlyArray<ResolvedThreadInfo>, |
| 90 | ): $ReadOnlyArray<ResolvedThreadInfo> { |
| 91 | return React.useMemo(() => { |
| 92 | const result: ResolvedThreadInfo[] = []; |
| 93 | const names = new Map<string, number>(); |
| 94 | |
| 95 | for (const chat of communities) { |
| 96 | let name = chat.uiName; |
| 97 | const numberOfOccurrences = names.get(name); |
| 98 | names.set(name, (numberOfOccurrences ?? 0) + 1); |
| 99 | if (numberOfOccurrences) { |
| 100 | name = `${name} (${numberOfOccurrences.toString()})`; |
| 101 | } |
| 102 | result.push({ ...chat, uiName: name }); |
| 103 | } |
| 104 | return result; |
| 105 | }, [communities]); |
| 106 | } |
| 107 | |
| 108 | function filterThreadIDsBelongingToCommunity( |
| 109 | communityID: string, |
no test coverage detected