Commit 2d8e9ad
authored
feat!: introduce image gallery state store (#3330)
This pull request refactors the image gallery to simplify state
management and remove legacy props and logic related to image gallery
behavior. The main improvement is the introduction of a centralized
`imageGalleryStateStore`, which replaces the previous pattern of passing
multiple state setters and props.
Additionally, the video is now managed by a pool and a player class same
as audio. This is for easy state management and ease of usage.
Additionally, the dependency on `@gorhom/bottom-sheet` is updated, and
related code is streamlined to use the new approach.
**Refactoring and State Management Improvements:**
* Replaced legacy props (`setMessages`, `setSelectedMessage`,
`legacyImageViewerSwipeBehaviour`) in `Gallery`, `Giphy`, and related
components with a single `imageGalleryStateStore` prop, centralizing
image gallery state handling.
[[1]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L39-R39)
[[2]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782R51-L58)
[[3]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L68-L80)
[[4]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782R73-L101)
[[5]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782R189-L213)
[[6]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L222-L224)
[[7]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L255-L274)
[[8]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L283-L285)
[[9]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L307-R288)
[[10]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L588-R564)
[[11]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L612)
[[12]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L634)
[[13]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782R620-L665)
[[14]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bL135-R135)
[[15]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bR164)
[[16]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bL175-L177)
[[17]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bL212-R211)
[[18]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bL455-R453)
[[19]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bR471)
[[20]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bL481-L483)
* Updated the logic for opening the image viewer and Giphy attachments
to use `imageGalleryStateStore.openImageGallery`, removing conditional
logic for legacy behavior.
[[1]](diffhunk://#diff-e7d0e211073121199347eedf392123d964951dbd5ebbda17d1f86c921ec39782L307-R288)
[[2]](diffhunk://#diff-9175eb9fcc09f05267618eca638f8502019ed92e3751d38c2771d7083903ab5bL212-R211)
* Removed all references to `legacyImageViewerSwipeBehaviour` from the
codebase, including context, props, and hooks.
[[1]](diffhunk://#diff-f7139f4cdb523365cfc277d72b827a3432325b9c6460cf14628f9df67d0e4d85L346)
[[2]](diffhunk://#diff-f7139f4cdb523365cfc277d72b827a3432325b9c6460cf14628f9df67d0e4d85L664)
[[3]](diffhunk://#diff-f7139f4cdb523365cfc277d72b827a3432325b9c6460cf14628f9df67d0e4d85L1945)
[[4]](diffhunk://#diff-d3e4f4cdcef10807a38eab86f6ead6bbfe01980e7326f3cadfeb8186760d7af1L55)
[[5]](diffhunk://#diff-d3e4f4cdcef10807a38eab86f6ead6bbfe01980e7326f3cadfeb8186760d7af1L173)
**Dependency and Import Updates:**
* Upgraded `@gorhom/bottom-sheet` dependency from version 5.1.8 to
5.2.8.
* Updated `ImageGallery.tsx` to use the new `imageGalleryStateStore` and
removed unused imports and legacy bottom sheet modal code.
[[1]](diffhunk://#diff-b6da04367e722c0873941022e180cec3e33f89445cb2427ecaa78c2040037e5aL1-R16)
[[2]](diffhunk://#diff-b6da04367e722c0873941022e180cec3e33f89445cb2427ecaa78c2040037e5aL39-L52)
[[3]](diffhunk://#diff-b6da04367e722c0873941022e180cec3e33f89445cb2427ecaa78c2040037e5aR99-R128)
These changes modernize and simplify the gallery and attachment
components, making state management more robust and maintainable.1 parent 66c4d00 commit 2d8e9ad
41 files changed
Lines changed: 3318 additions & 1602 deletions
File tree
- examples/SampleApp/src/screens
- package
- src
- components
- Attachment
- Channel
- hooks
- ImageGallery
- __tests__
- components
- __tests__
- hooks
- MessageList
- contexts
- imageGalleryContext
- messagesContext
- overlayContext
- state-store
- __tests__
- utils
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | | - | |
17 | 16 | | |
18 | 17 | | |
19 | 18 | | |
| 19 | + | |
| 20 | + | |
20 | 21 | | |
21 | 22 | | |
22 | 23 | | |
23 | 24 | | |
24 | 25 | | |
25 | 26 | | |
26 | 27 | | |
27 | | - | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
61 | 61 | | |
62 | 62 | | |
63 | 63 | | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
64 | 68 | | |
65 | 69 | | |
66 | 70 | | |
67 | 71 | | |
68 | 72 | | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
| 73 | + | |
| 74 | + | |
74 | 75 | | |
75 | 76 | | |
76 | 77 | | |
| |||
79 | 80 | | |
80 | 81 | | |
81 | 82 | | |
82 | | - | |
83 | | - | |
84 | 83 | | |
85 | 84 | | |
86 | 85 | | |
| |||
106 | 105 | | |
107 | 106 | | |
108 | 107 | | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | 108 | | |
134 | 109 | | |
135 | 110 | | |
| |||
145 | 120 | | |
146 | 121 | | |
147 | 122 | | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | 123 | | |
161 | | - | |
162 | | - | |
163 | | - | |
| 124 | + | |
| 125 | + | |
164 | 126 | | |
165 | | - | |
| 127 | + | |
166 | 128 | | |
167 | 129 | | |
168 | 130 | | |
169 | 131 | | |
170 | 132 | | |
171 | 133 | | |
172 | 134 | | |
173 | | - | |
| 135 | + | |
174 | 136 | | |
175 | 137 | | |
176 | 138 | | |
| |||
180 | 142 | | |
181 | 143 | | |
182 | 144 | | |
183 | | - | |
184 | | - | |
185 | | - | |
| 145 | + | |
| 146 | + | |
| 147 | + | |
186 | 148 | | |
187 | 149 | | |
188 | 150 | | |
| |||
202 | 164 | | |
203 | 165 | | |
204 | 166 | | |
205 | | - | |
| 167 | + | |
206 | 168 | | |
207 | 169 | | |
208 | 170 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
68 | 68 | | |
69 | 69 | | |
70 | 70 | | |
71 | | - | |
| 71 | + | |
72 | 72 | | |
73 | 73 | | |
74 | 74 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
36 | 36 | | |
37 | 37 | | |
38 | 38 | | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
| 39 | + | |
43 | 40 | | |
44 | 41 | | |
45 | 42 | | |
| |||
51 | 48 | | |
52 | 49 | | |
53 | 50 | | |
| 51 | + | |
54 | 52 | | |
55 | 53 | | |
56 | 54 | | |
57 | 55 | | |
58 | | - | |
59 | 56 | | |
60 | 57 | | |
61 | 58 | | |
| |||
65 | 62 | | |
66 | 63 | | |
67 | 64 | | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | 65 | | |
82 | 66 | | |
83 | 67 | | |
| |||
86 | 70 | | |
87 | 71 | | |
88 | 72 | | |
| 73 | + | |
89 | 74 | | |
90 | 75 | | |
91 | 76 | | |
92 | 77 | | |
93 | | - | |
94 | 78 | | |
95 | 79 | | |
96 | 80 | | |
97 | 81 | | |
98 | 82 | | |
99 | | - | |
100 | 83 | | |
101 | | - | |
102 | 84 | | |
103 | 85 | | |
104 | 86 | | |
| |||
204 | 186 | | |
205 | 187 | | |
206 | 188 | | |
| 189 | + | |
207 | 190 | | |
208 | 191 | | |
209 | 192 | | |
210 | 193 | | |
211 | 194 | | |
212 | 195 | | |
213 | | - | |
214 | 196 | | |
215 | 197 | | |
216 | 198 | | |
| |||
219 | 201 | | |
220 | 202 | | |
221 | 203 | | |
222 | | - | |
223 | 204 | | |
224 | | - | |
225 | 205 | | |
226 | 206 | | |
227 | 207 | | |
| |||
252 | 232 | | |
253 | 233 | | |
254 | 234 | | |
255 | | - | |
256 | 235 | | |
257 | 236 | | |
258 | 237 | | |
259 | 238 | | |
260 | 239 | | |
261 | | - | |
| 240 | + | |
262 | 241 | | |
263 | 242 | | |
264 | 243 | | |
265 | 244 | | |
266 | 245 | | |
267 | 246 | | |
268 | 247 | | |
| 248 | + | |
269 | 249 | | |
270 | 250 | | |
271 | 251 | | |
272 | 252 | | |
273 | 253 | | |
274 | | - | |
275 | 254 | | |
276 | 255 | | |
277 | 256 | | |
| |||
280 | 259 | | |
281 | 260 | | |
282 | 261 | | |
283 | | - | |
284 | 262 | | |
285 | | - | |
286 | 263 | | |
287 | 264 | | |
288 | 265 | | |
| |||
304 | 281 | | |
305 | 282 | | |
306 | 283 | | |
307 | | - | |
308 | | - | |
309 | | - | |
310 | | - | |
311 | | - | |
312 | | - | |
313 | | - | |
314 | | - | |
315 | | - | |
316 | | - | |
| 284 | + | |
| 285 | + | |
317 | 286 | | |
| 287 | + | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
318 | 292 | | |
319 | 293 | | |
320 | 294 | | |
| |||
585 | 559 | | |
586 | 560 | | |
587 | 561 | | |
588 | | - | |
589 | 562 | | |
590 | 563 | | |
591 | 564 | | |
592 | 565 | | |
593 | 566 | | |
594 | | - | |
| 567 | + | |
595 | 568 | | |
596 | 569 | | |
597 | 570 | | |
| |||
609 | 582 | | |
610 | 583 | | |
611 | 584 | | |
612 | | - | |
613 | 585 | | |
614 | 586 | | |
615 | 587 | | |
| |||
631 | 603 | | |
632 | 604 | | |
633 | 605 | | |
634 | | - | |
635 | 606 | | |
636 | 607 | | |
637 | 608 | | |
| |||
649 | 620 | | |
650 | 621 | | |
651 | 622 | | |
| 623 | + | |
652 | 624 | | |
653 | 625 | | |
654 | 626 | | |
655 | 627 | | |
656 | | - | |
657 | 628 | | |
658 | 629 | | |
659 | 630 | | |
660 | 631 | | |
661 | 632 | | |
662 | 633 | | |
663 | | - | |
664 | 634 | | |
665 | | - | |
666 | 635 | | |
667 | 636 | | |
668 | 637 | | |
| |||
0 commit comments