Bluesky app fork with some witchin' additions 💫

remove root sibling library (#9097)

authored by samuel.fm and committed by GitHub 031fa957 ae2c9a83

+8 -12
jest/test-utils.tsx
··· 1 - import React from 'react' 2 - import {render} from '@testing-library/react-native' 3 import {GestureHandlerRootView} from 'react-native-gesture-handler' 4 - import {RootSiblingParent} from 'react-native-root-siblings' 5 import {SafeAreaProvider} from 'react-native-safe-area-context' 6 - import {RootStoreProvider, RootStoreModel} from '../src/state' 7 import {ThemeProvider} from '../src/lib/ThemeContext' 8 9 const customRender = (ui: any, rootStore: RootStoreModel) => 10 render( 11 - // eslint-disable-next-line react-native/no-inline-styles 12 <GestureHandlerRootView style={{flex: 1}}> 13 - <RootSiblingParent> 14 - <RootStoreProvider value={rootStore}> 15 - <ThemeProvider theme="light"> 16 - <SafeAreaProvider>{ui}</SafeAreaProvider> 17 - </ThemeProvider> 18 - </RootStoreProvider> 19 - </RootSiblingParent> 20 </GestureHandlerRootView>, 21 ) 22
··· 1 import {GestureHandlerRootView} from 'react-native-gesture-handler' 2 import {SafeAreaProvider} from 'react-native-safe-area-context' 3 + import {render} from '@testing-library/react-native' 4 + 5 import {ThemeProvider} from '../src/lib/ThemeContext' 6 + import {type RootStoreModel, RootStoreProvider} from '../src/state' 7 8 const customRender = (ui: any, rootStore: RootStoreModel) => 9 render( 10 <GestureHandlerRootView style={{flex: 1}}> 11 + <RootStoreProvider value={rootStore}> 12 + <ThemeProvider theme="light"> 13 + <SafeAreaProvider>{ui}</SafeAreaProvider> 14 + </ThemeProvider> 15 + </RootStoreProvider> 16 </GestureHandlerRootView>, 17 ) 18
-1
package.json
··· 197 "react-native-progress": "bluesky-social/react-native-progress", 198 "react-native-qrcode-styled": "^0.3.3", 199 "react-native-reanimated": "^3.19.1", 200 - "react-native-root-siblings": "^5.0.1", 201 "react-native-safe-area-context": "~5.6.0", 202 "react-native-screens": "~4.16.0", 203 "react-native-svg": "15.12.1",
··· 197 "react-native-progress": "bluesky-social/react-native-progress", 198 "react-native-qrcode-styled": "^0.3.3", 199 "react-native-reanimated": "^3.19.1", 200 "react-native-safe-area-context": "~5.6.0", 201 "react-native-screens": "~4.16.0", 202 "react-native-svg": "15.12.1",
+56 -59
src/App.native.tsx
··· 4 5 import React, {useEffect, useState} from 'react' 6 import {GestureHandlerRootView} from 'react-native-gesture-handler' 7 - import {RootSiblingParent} from 'react-native-root-siblings' 8 import { 9 initialWindowMetrics, 10 SafeAreaProvider, ··· 137 <ThemeProvider theme={theme}> 138 <ContextMenuProvider> 139 <Splash isReady={isReady && hasCheckedReferrer}> 140 - <RootSiblingParent> 141 - <VideoVolumeProvider> 142 - <React.Fragment 143 - // Resets the entire tree below when it changes: 144 - key={currentAccount?.did}> 145 - <QueryProvider currentDid={currentAccount?.did}> 146 - <PolicyUpdateOverlayProvider> 147 - <StatsigProvider> 148 - <AgeAssuranceProvider> 149 - <ComposerProvider> 150 - <MessagesProvider> 151 - {/* LabelDefsProvider MUST come before ModerationOptsProvider */} 152 - <LabelDefsProvider> 153 - <ModerationOptsProvider> 154 - <LoggedOutViewProvider> 155 - <SelectedFeedProvider> 156 - <HiddenRepliesProvider> 157 - <HomeBadgeProvider> 158 - <UnreadNotifsProvider> 159 - <BackgroundNotificationPreferencesProvider> 160 - <MutedThreadsProvider> 161 - <ProgressGuideProvider> 162 - <ServiceAccountManager> 163 - <EmailVerificationProvider> 164 - <HideBottomBarBorderProvider> 165 - <GestureHandlerRootView 166 - style={s.h100pct}> 167 - <GlobalGestureEventsProvider> 168 - <IntentDialogProvider> 169 - <TestCtrls /> 170 - <Shell /> 171 - <NuxDialogs /> 172 - <ToastOutlet /> 173 - </IntentDialogProvider> 174 - </GlobalGestureEventsProvider> 175 - </GestureHandlerRootView> 176 - </HideBottomBarBorderProvider> 177 - </EmailVerificationProvider> 178 - </ServiceAccountManager> 179 - </ProgressGuideProvider> 180 - </MutedThreadsProvider> 181 - </BackgroundNotificationPreferencesProvider> 182 - </UnreadNotifsProvider> 183 - </HomeBadgeProvider> 184 - </HiddenRepliesProvider> 185 - </SelectedFeedProvider> 186 - </LoggedOutViewProvider> 187 - </ModerationOptsProvider> 188 - </LabelDefsProvider> 189 - </MessagesProvider> 190 - </ComposerProvider> 191 - </AgeAssuranceProvider> 192 - </StatsigProvider> 193 - </PolicyUpdateOverlayProvider> 194 - </QueryProvider> 195 - </React.Fragment> 196 - </VideoVolumeProvider> 197 - </RootSiblingParent> 198 </Splash> 199 </ContextMenuProvider> 200 </ThemeProvider>
··· 4 5 import React, {useEffect, useState} from 'react' 6 import {GestureHandlerRootView} from 'react-native-gesture-handler' 7 import { 8 initialWindowMetrics, 9 SafeAreaProvider, ··· 136 <ThemeProvider theme={theme}> 137 <ContextMenuProvider> 138 <Splash isReady={isReady && hasCheckedReferrer}> 139 + <VideoVolumeProvider> 140 + <React.Fragment 141 + // Resets the entire tree below when it changes: 142 + key={currentAccount?.did}> 143 + <QueryProvider currentDid={currentAccount?.did}> 144 + <PolicyUpdateOverlayProvider> 145 + <StatsigProvider> 146 + <AgeAssuranceProvider> 147 + <ComposerProvider> 148 + <MessagesProvider> 149 + {/* LabelDefsProvider MUST come before ModerationOptsProvider */} 150 + <LabelDefsProvider> 151 + <ModerationOptsProvider> 152 + <LoggedOutViewProvider> 153 + <SelectedFeedProvider> 154 + <HiddenRepliesProvider> 155 + <HomeBadgeProvider> 156 + <UnreadNotifsProvider> 157 + <BackgroundNotificationPreferencesProvider> 158 + <MutedThreadsProvider> 159 + <ProgressGuideProvider> 160 + <ServiceAccountManager> 161 + <EmailVerificationProvider> 162 + <HideBottomBarBorderProvider> 163 + <GestureHandlerRootView 164 + style={s.h100pct}> 165 + <GlobalGestureEventsProvider> 166 + <IntentDialogProvider> 167 + <TestCtrls /> 168 + <Shell /> 169 + <NuxDialogs /> 170 + <ToastOutlet /> 171 + </IntentDialogProvider> 172 + </GlobalGestureEventsProvider> 173 + </GestureHandlerRootView> 174 + </HideBottomBarBorderProvider> 175 + </EmailVerificationProvider> 176 + </ServiceAccountManager> 177 + </ProgressGuideProvider> 178 + </MutedThreadsProvider> 179 + </BackgroundNotificationPreferencesProvider> 180 + </UnreadNotifsProvider> 181 + </HomeBadgeProvider> 182 + </HiddenRepliesProvider> 183 + </SelectedFeedProvider> 184 + </LoggedOutViewProvider> 185 + </ModerationOptsProvider> 186 + </LabelDefsProvider> 187 + </MessagesProvider> 188 + </ComposerProvider> 189 + </AgeAssuranceProvider> 190 + </StatsigProvider> 191 + </PolicyUpdateOverlayProvider> 192 + </QueryProvider> 193 + </React.Fragment> 194 + </VideoVolumeProvider> 195 </Splash> 196 </ContextMenuProvider> 197 </ThemeProvider>
+54 -57
src/App.web.tsx
··· 3 import './style.css' 4 5 import React, {useEffect, useState} from 'react' 6 - import {RootSiblingParent} from 'react-native-root-siblings' 7 import {SafeAreaProvider} from 'react-native-safe-area-context' 8 import {msg} from '@lingui/macro' 9 import {useLingui} from '@lingui/react' ··· 111 <Alf theme={theme}> 112 <ThemeProvider theme={theme}> 113 <ContextMenuProvider> 114 - <RootSiblingParent> 115 - <VideoVolumeProvider> 116 - <ActiveVideoProvider> 117 - <React.Fragment 118 - // Resets the entire tree below when it changes: 119 - key={currentAccount?.did}> 120 - <QueryProvider currentDid={currentAccount?.did}> 121 - <PolicyUpdateOverlayProvider> 122 - <StatsigProvider> 123 - <AgeAssuranceProvider> 124 - <ComposerProvider> 125 - <MessagesProvider> 126 - {/* LabelDefsProvider MUST come before ModerationOptsProvider */} 127 - <LabelDefsProvider> 128 - <ModerationOptsProvider> 129 - <LoggedOutViewProvider> 130 - <SelectedFeedProvider> 131 - <HiddenRepliesProvider> 132 - <HomeBadgeProvider> 133 - <UnreadNotifsProvider> 134 - <BackgroundNotificationPreferencesProvider> 135 - <MutedThreadsProvider> 136 - <SafeAreaProvider> 137 - <ProgressGuideProvider> 138 - <ServiceConfigProvider> 139 - <EmailVerificationProvider> 140 - <HideBottomBarBorderProvider> 141 - <IntentDialogProvider> 142 - <Shell /> 143 - <NuxDialogs /> 144 - <ToastOutlet /> 145 - </IntentDialogProvider> 146 - </HideBottomBarBorderProvider> 147 - </EmailVerificationProvider> 148 - </ServiceConfigProvider> 149 - </ProgressGuideProvider> 150 - </SafeAreaProvider> 151 - </MutedThreadsProvider> 152 - </BackgroundNotificationPreferencesProvider> 153 - </UnreadNotifsProvider> 154 - </HomeBadgeProvider> 155 - </HiddenRepliesProvider> 156 - </SelectedFeedProvider> 157 - </LoggedOutViewProvider> 158 - </ModerationOptsProvider> 159 - </LabelDefsProvider> 160 - </MessagesProvider> 161 - </ComposerProvider> 162 - </AgeAssuranceProvider> 163 - </StatsigProvider> 164 - </PolicyUpdateOverlayProvider> 165 - </QueryProvider> 166 - </React.Fragment> 167 - </ActiveVideoProvider> 168 - </VideoVolumeProvider> 169 - </RootSiblingParent> 170 </ContextMenuProvider> 171 </ThemeProvider> 172 </Alf>
··· 3 import './style.css' 4 5 import React, {useEffect, useState} from 'react' 6 import {SafeAreaProvider} from 'react-native-safe-area-context' 7 import {msg} from '@lingui/macro' 8 import {useLingui} from '@lingui/react' ··· 110 <Alf theme={theme}> 111 <ThemeProvider theme={theme}> 112 <ContextMenuProvider> 113 + <VideoVolumeProvider> 114 + <ActiveVideoProvider> 115 + <React.Fragment 116 + // Resets the entire tree below when it changes: 117 + key={currentAccount?.did}> 118 + <QueryProvider currentDid={currentAccount?.did}> 119 + <PolicyUpdateOverlayProvider> 120 + <StatsigProvider> 121 + <AgeAssuranceProvider> 122 + <ComposerProvider> 123 + <MessagesProvider> 124 + {/* LabelDefsProvider MUST come before ModerationOptsProvider */} 125 + <LabelDefsProvider> 126 + <ModerationOptsProvider> 127 + <LoggedOutViewProvider> 128 + <SelectedFeedProvider> 129 + <HiddenRepliesProvider> 130 + <HomeBadgeProvider> 131 + <UnreadNotifsProvider> 132 + <BackgroundNotificationPreferencesProvider> 133 + <MutedThreadsProvider> 134 + <SafeAreaProvider> 135 + <ProgressGuideProvider> 136 + <ServiceConfigProvider> 137 + <EmailVerificationProvider> 138 + <HideBottomBarBorderProvider> 139 + <IntentDialogProvider> 140 + <Shell /> 141 + <NuxDialogs /> 142 + <ToastOutlet /> 143 + </IntentDialogProvider> 144 + </HideBottomBarBorderProvider> 145 + </EmailVerificationProvider> 146 + </ServiceConfigProvider> 147 + </ProgressGuideProvider> 148 + </SafeAreaProvider> 149 + </MutedThreadsProvider> 150 + </BackgroundNotificationPreferencesProvider> 151 + </UnreadNotifsProvider> 152 + </HomeBadgeProvider> 153 + </HiddenRepliesProvider> 154 + </SelectedFeedProvider> 155 + </LoggedOutViewProvider> 156 + </ModerationOptsProvider> 157 + </LabelDefsProvider> 158 + </MessagesProvider> 159 + </ComposerProvider> 160 + </AgeAssuranceProvider> 161 + </StatsigProvider> 162 + </PolicyUpdateOverlayProvider> 163 + </QueryProvider> 164 + </React.Fragment> 165 + </ActiveVideoProvider> 166 + </VideoVolumeProvider> 167 </ContextMenuProvider> 168 </ThemeProvider> 169 </Alf>
-5
yarn.lock
··· 17071 invariant "^2.2.4" 17072 react-native-is-edge-to-edge "1.1.7" 17073 17074 - react-native-root-siblings@^5.0.1: 17075 - version "5.0.1" 17076 - resolved "https://registry.yarnpkg.com/react-native-root-siblings/-/react-native-root-siblings-5.0.1.tgz#97e050e5155228f65810fb1c466ff8e769c5272c" 17077 - integrity sha512-Ay3k/fBj6ReUkWX5WNS+oEAcgPLEGOK8n7K/L7D85mf3xvd8rm/b4spsv26E4HlFzluVx5HKbxEt9cl0wQ1u3g== 17078 - 17079 react-native-safe-area-context@~5.6.0: 17080 version "5.6.1" 17081 resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-5.6.1.tgz#cb4d249ef1a6f7e8fd0cfdfa9764838dffda26b6"
··· 17071 invariant "^2.2.4" 17072 react-native-is-edge-to-edge "1.1.7" 17073 17074 react-native-safe-area-context@~5.6.0: 17075 version "5.6.1" 17076 resolved "https://registry.yarnpkg.com/react-native-safe-area-context/-/react-native-safe-area-context-5.6.1.tgz#cb4d249ef1a6f7e8fd0cfdfa9764838dffda26b6"