about summary refs log tree commit diff
path: root/src/App.web.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.web.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.web.tsx')
-rw-r--r--src/App.web.tsx37
1 files changed, 20 insertions, 17 deletions
diff --git a/src/App.web.tsx b/src/App.web.tsx
index 226fb8d3f..e04fd45f1 100644
--- a/src/App.web.tsx
+++ b/src/App.web.tsx
@@ -8,6 +8,7 @@ import {SafeAreaProvider} from 'react-native-safe-area-context'
 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 {QueryProvider} from 'lib/react-query'
@@ -56,23 +57,25 @@ function InnerApp() {
         key={currentAccount?.did}>
         <QueryProvider currentDid={currentAccount?.did}>
           <StatsigProvider>
-            <LabelDefsProvider>
-              <LoggedOutViewProvider>
-                <SelectedFeedProvider>
-                  <UnreadNotifsProvider>
-                    <ThemeProvider theme={theme}>
-                      {/* All components should be within this provider */}
-                      <RootSiblingParent>
-                        <SafeAreaProvider>
-                          <Shell />
-                        </SafeAreaProvider>
-                      </RootSiblingParent>
-                      <ToastContainer />
-                    </ThemeProvider>
-                  </UnreadNotifsProvider>
-                </SelectedFeedProvider>
-              </LoggedOutViewProvider>
-            </LabelDefsProvider>
+            <ModerationOptsProvider>
+              <LabelDefsProvider>
+                <LoggedOutViewProvider>
+                  <SelectedFeedProvider>
+                    <UnreadNotifsProvider>
+                      <ThemeProvider theme={theme}>
+                        {/* All components should be within this provider */}
+                        <RootSiblingParent>
+                          <SafeAreaProvider>
+                            <Shell />
+                          </SafeAreaProvider>
+                        </RootSiblingParent>
+                        <ToastContainer />
+                      </ThemeProvider>
+                    </UnreadNotifsProvider>
+                  </SelectedFeedProvider>
+                </LoggedOutViewProvider>
+              </LabelDefsProvider>
+            </ModerationOptsProvider>
           </StatsigProvider>
         </QueryProvider>
       </React.Fragment>