about summary refs log tree commit diff
path: root/src/App.native.tsx
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2024-04-30 21:06:51 -0700
committerGitHub <noreply@github.com>2024-04-30 21:06:51 -0700
commit31cb3e54222afc0b56e9d3e7997e2229797ff11e (patch)
treed837a8d0f7e08b1d97e22b77c69bdc93bad2554c /src/App.native.tsx
parent39807a86309ccfeeffbd054808c0e78e42ff940e (diff)
downloadvoidsky-31cb3e54222afc0b56e9d3e7997e2229797ff11e.tar.zst
Performance improvements: structural sharing & moderation opts context (#3785)
* Fix: correctly apply structural sharing to preferences object

* Move moderation opts into a context

* Fix import

* Remove log

* Pass userdid directly

* Pass moderationPrefs directly
Diffstat (limited to 'src/App.native.tsx')
-rw-r--r--src/App.native.tsx37
1 files changed, 20 insertions, 17 deletions
diff --git a/src/App.native.tsx b/src/App.native.tsx
index 569f342c2..14daa3bd6 100644
--- a/src/App.native.tsx
+++ b/src/App.native.tsx
@@ -18,6 +18,7 @@ import {useQueryClient} from '@tanstack/react-query'
 import {Provider as StatsigProvider} from '#/lib/statsig/statsig'
 import {init as initPersistedState} from '#/state/persisted'
 import {Provider as LabelDefsProvider} from '#/state/preferences/label-defs'
+import {Provider as ModerationOptsProvider} from '#/state/preferences/moderation-opts'
 import {readLastActiveAccount} from '#/state/session/util'
 import {useIntentHandler} from 'lib/hooks/useIntentHandler'
 import {useNotificationsListener} from 'lib/notifications/notifications'
@@ -79,23 +80,25 @@ function InnerApp() {
             <QueryProvider currentDid={currentAccount?.did}>
               <PushNotificationsListener>
                 <StatsigProvider>
-                  <LabelDefsProvider>
-                    <LoggedOutViewProvider>
-                      <SelectedFeedProvider>
-                        <UnreadNotifsProvider>
-                          <ThemeProvider theme={theme}>
-                            {/* All components should be within this provider */}
-                            <RootSiblingParent>
-                              <GestureHandlerRootView style={s.h100pct}>
-                                <TestCtrls />
-                                <Shell />
-                              </GestureHandlerRootView>
-                            </RootSiblingParent>
-                          </ThemeProvider>
-                        </UnreadNotifsProvider>
-                      </SelectedFeedProvider>
-                    </LoggedOutViewProvider>
-                  </LabelDefsProvider>
+                  <ModerationOptsProvider>
+                    <LabelDefsProvider>
+                      <LoggedOutViewProvider>
+                        <SelectedFeedProvider>
+                          <UnreadNotifsProvider>
+                            <ThemeProvider theme={theme}>
+                              {/* All components should be within this provider */}
+                              <RootSiblingParent>
+                                <GestureHandlerRootView style={s.h100pct}>
+                                  <TestCtrls />
+                                  <Shell />
+                                </GestureHandlerRootView>
+                              </RootSiblingParent>
+                            </ThemeProvider>
+                          </UnreadNotifsProvider>
+                        </SelectedFeedProvider>
+                      </LoggedOutViewProvider>
+                    </LabelDefsProvider>
+                  </ModerationOptsProvider>
                 </StatsigProvider>
               </PushNotificationsListener>
             </QueryProvider>