about summary refs log tree commit diff
path: root/src/App.web.tsx
diff options
context:
space:
mode:
authorPaul Frazee <pfrazee@gmail.com>2023-11-12 18:13:11 -0800
committerGitHub <noreply@github.com>2023-11-12 18:13:11 -0800
commitb445c15cc99a56c2baf727d05cf53b44aef4542b (patch)
treea8b18769ba4987557d4e9b4cd72871f12fb2e1a3 /src/App.web.tsx
parentc584a3378d66459c04eee7d98560920e09c5f09f (diff)
downloadvoidsky-b445c15cc99a56c2baf727d05cf53b44aef4542b.tar.zst
Refactor notifications to use react-query (#1878)
* Move broadcast channel to lib

* Refactor view/com/post/Post and remove temporary 2 components

* Add useModerationOpts hook

* Refactor notifications to use react-query

* Fix: only trigger updates in useModerationOpts when the values have changed

* Implement unread notification tracking

* Add moderation filtering to notifications

* Handle native/push notifications

* Remove dead code

---------

Co-authored-by: Eric Bailey <git@esb.lol>
Diffstat (limited to 'src/App.web.tsx')
-rw-r--r--src/App.web.tsx61
1 files changed, 32 insertions, 29 deletions
diff --git a/src/App.web.tsx b/src/App.web.tsx
index 81e03d079..5967fb751 100644
--- a/src/App.web.tsx
+++ b/src/App.web.tsx
@@ -29,6 +29,7 @@ import {
   useSession,
   useSessionApi,
 } from 'state/session'
+import {Provider as UnreadNotifsProvider} from 'state/queries/notifications/unread'
 import * as persisted from '#/state/persisted'
 
 const InnerApp = observer(function AppImpl() {
@@ -60,22 +61,20 @@ const InnerApp = observer(function AppImpl() {
   }
 
   return (
-    <QueryClientProvider client={queryClient}>
-      <ThemeProvider theme={colorMode}>
-        <RootSiblingParent>
-          <analytics.Provider>
-            <RootStoreProvider value={rootStore}>
-              <I18nProvider i18n={i18n}>
-                <SafeAreaProvider>
-                  <Shell />
-                </SafeAreaProvider>
-              </I18nProvider>
-              <ToastContainer />
-            </RootStoreProvider>
-          </analytics.Provider>
-        </RootSiblingParent>
-      </ThemeProvider>
-    </QueryClientProvider>
+    <ThemeProvider theme={colorMode}>
+      <RootSiblingParent>
+        <analytics.Provider>
+          <RootStoreProvider value={rootStore}>
+            <I18nProvider i18n={i18n}>
+              <SafeAreaProvider>
+                <Shell />
+              </SafeAreaProvider>
+            </I18nProvider>
+            <ToastContainer />
+          </RootStoreProvider>
+        </analytics.Provider>
+      </RootSiblingParent>
+    </ThemeProvider>
   )
 })
 
@@ -91,19 +90,23 @@ function App() {
   }
 
   return (
-    <SessionProvider>
-      <ShellStateProvider>
-        <PrefsStateProvider>
-          <MutedThreadsProvider>
-            <InvitesStateProvider>
-              <ModalStateProvider>
-                <InnerApp />
-              </ModalStateProvider>
-            </InvitesStateProvider>
-          </MutedThreadsProvider>
-        </PrefsStateProvider>
-      </ShellStateProvider>
-    </SessionProvider>
+    <QueryClientProvider client={queryClient}>
+      <SessionProvider>
+        <ShellStateProvider>
+          <PrefsStateProvider>
+            <MutedThreadsProvider>
+              <UnreadNotifsProvider>
+                <InvitesStateProvider>
+                  <ModalStateProvider>
+                    <InnerApp />
+                  </ModalStateProvider>
+                </InvitesStateProvider>
+              </UnreadNotifsProvider>
+            </MutedThreadsProvider>
+          </PrefsStateProvider>
+        </ShellStateProvider>
+      </SessionProvider>
+    </QueryClientProvider>
   )
 }