CI / quality (push) Waiting to run
- Add src/core/ (config, errors, events, http, observability, storage, query) - Add src/Spreadsheet/ engine with native POI backend and Excel bridge - Add Envelope C spreadsheet flow and tender bidding envelope modules - Consolidate components into src/components/, remove legacy Component/ and Hooks/ - Add registration state/validation, auth session guard, profile edit modules - Add unit tests across axios, redux, bidding, registration, encryption, core - Add CI workflow, docs (architecture, audit, DSC API spec), keystore example - Remove tracked keystore binary; ignore scripts.zip Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
45 lines
1.8 KiB
TypeScript
45 lines
1.8 KiB
TypeScript
import React from 'react';
|
|
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
import { View } from 'react-native';
|
|
import { QueryClientProvider } from '@tanstack/react-query';
|
|
import { AlertNotificationRoot } from 'react-native-alert-notification';
|
|
import { PersistGate } from 'redux-persist/integration/react';
|
|
import { Provider } from 'react-redux';
|
|
import { persistor, store } from './src/Redux/Store';
|
|
import Routes from './src/Navigation/Routes';
|
|
import { NavigationContainer } from '@react-navigation/native';
|
|
import colors from './src/Constant/Color';
|
|
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
import AppStatusBar from './src/components/AppStatusBar';
|
|
import { ErrorBoundary } from './src/core/errors/ErrorBoundary';
|
|
import { queryClient } from './src/core/query/queryClient';
|
|
import AuthSessionGuard from './src/Navigation/AuthSessionGuard';
|
|
import { navigationRef } from './src/Navigation/NavigationService';
|
|
|
|
const App = () => {
|
|
const insets = useSafeAreaInsets();
|
|
return (
|
|
<ErrorBoundary>
|
|
<NavigationContainer ref={navigationRef}>
|
|
<QueryClientProvider client={queryClient}>
|
|
<GestureHandlerRootView style={{ flex: 1 }}>
|
|
<AlertNotificationRoot>
|
|
<Provider store={store}>
|
|
<PersistGate persistor={persistor}>
|
|
<View style={{ flex: 1, backgroundColor: colors.white, paddingBottom: insets.bottom }}>
|
|
<AppStatusBar />
|
|
<AuthSessionGuard />
|
|
<Routes />
|
|
</View>
|
|
</PersistGate>
|
|
</Provider>
|
|
</AlertNotificationRoot>
|
|
</GestureHandlerRootView>
|
|
</QueryClientProvider>
|
|
</NavigationContainer>
|
|
</ErrorBoundary>
|
|
);
|
|
};
|
|
|
|
export default App;
|