62 lines
2.0 KiB
TypeScript
62 lines
2.0 KiB
TypeScript
/**
|
|
* Sample React Native App
|
|
* https://github.com/facebook/react-native
|
|
*
|
|
* Generated with the TypeScript template
|
|
* https://github.com/react-native-community/react-native-template-typescript
|
|
*
|
|
* @format
|
|
*/
|
|
|
|
import React from 'react';
|
|
import {SafeAreaView, Text, View} from 'react-native';
|
|
import data from './src/data/templateData.json';
|
|
import userData from './src/data/userData.json';
|
|
import RenderingEngine from './src/components/formRenderingEngine';
|
|
import {Provider} from 'react-redux';
|
|
import store, {persistor} from './src/store/store';
|
|
import {PersistGate} from 'redux-persist/integration/react';
|
|
|
|
import {NavigationContainer} from '@react-navigation/native';
|
|
import {createNativeStackNavigator} from '@react-navigation/native-stack';
|
|
import Widget from './src/components/form';
|
|
import {navigationRef} from './src/components/utlis/navigationUtlis';
|
|
|
|
function HomeScreen() {
|
|
return (
|
|
<View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
|
|
<SafeAreaView>
|
|
<RenderingEngine data={data} userData={userData} />
|
|
</SafeAreaView>
|
|
</View>
|
|
);
|
|
}
|
|
|
|
const Stack = createNativeStackNavigator();
|
|
|
|
const App = () => {
|
|
// const [hasBeenManuplated, setHasBeenManuplated] = useState<boolean>(false);
|
|
return (
|
|
<Provider store={store}>
|
|
<PersistGate
|
|
loading={<Text>Loading...</Text>}
|
|
persistor={persistor}>
|
|
<NavigationContainer ref={navigationRef}>
|
|
<Stack.Navigator>
|
|
<Stack.Screen name="Home" component={HomeScreen} />
|
|
{Object.keys(data.widgets).map(key => (
|
|
<Stack.Screen
|
|
key={key}
|
|
name={key}
|
|
component={Widget}
|
|
/>
|
|
))}
|
|
</Stack.Navigator>
|
|
</NavigationContainer>
|
|
</PersistGate>
|
|
</Provider>
|
|
);
|
|
};
|
|
|
|
export default App;
|