Commit e9803fd
committed
fix(filmstrip): sync remoteParticipants between itemKey and ThumbnailWrapper
Filmstrip._gridItemKey and _listItemKey reference this.props._remoteParticipants
(captured at the parent's render time), but ThumbnailWrapper._mapStateToProps
independently reads state['features/filmstrip'].remoteParticipants from Redux.
When a participant joins or leaves between the parent render and the child's
selector call, the two arrays can diverge, causing a tile keyed for participant A
to actually render participant B's video.
Pass _remoteParticipants through react-window's itemData so that
ThumbnailWrapper uses the same array snapshot that the itemKey functions use,
eliminating the race condition.1 parent 2c43785 commit e9803fd
2 files changed
Lines changed: 14 additions & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
996 | 996 | | |
997 | 997 | | |
998 | 998 | | |
| 999 | + | |
999 | 1000 | | |
1000 | 1001 | | |
1001 | 1002 | | |
| |||
1020 | 1021 | | |
1021 | 1022 | | |
1022 | 1023 | | |
1023 | | - | |
| 1024 | + | |
1024 | 1025 | | |
1025 | 1026 | | |
1026 | 1027 | | |
| |||
1039 | 1040 | | |
1040 | 1041 | | |
1041 | 1042 | | |
| 1043 | + | |
1042 | 1044 | | |
1043 | 1045 | | |
1044 | 1046 | | |
| |||
Lines changed: 11 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
136 | 136 | | |
137 | 137 | | |
138 | 138 | | |
139 | | - | |
| 139 | + | |
140 | 140 | | |
141 | 141 | | |
142 | 142 | | |
| |||
145 | 145 | | |
146 | 146 | | |
147 | 147 | | |
148 | | - | |
| 148 | + | |
| 149 | + | |
| 150 | + | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
149 | 158 | | |
150 | 159 | | |
151 | 160 | | |
| |||
0 commit comments