GuideStackNavigator.js 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. import {
  2. createStackNavigator,
  3. CardStyleInterpolators,
  4. } from "@react-navigation/stack";
  5. import * as React from "react";
  6. import { useModel } from "flooks";
  7. import Guide1Screen from "../screens/Guide1Screen";
  8. import Guide2Screen from "../screens/Guide2Screen";
  9. import Guide3Screen from "../screens/Guide3Screen";
  10. import Guide4Screen from "../screens/Guide4Screen";
  11. import StoreAudit from "../screens/StoreAudit";
  12. const GuideStack = createStackNavigator();
  13. const config = {
  14. animation: "spring",
  15. config: {
  16. stiffness: 1000,
  17. damping: 500,
  18. mass: 3,
  19. overshootClamping: true,
  20. restDisplacementThreshold: 0.01,
  21. restSpeedThreshold: 0.01,
  22. },
  23. };
  24. export default function GuideStackNavigator() {
  25. const { guideStep } = useModel("userModel");
  26. const initial = React.useMemo(() => {
  27. if (guideStep == 0) {
  28. return "Guide1";
  29. } else if (guideStep == 1) {
  30. return "Guide2";
  31. } else if (guideStep == 2) {
  32. return "Guide3";
  33. } else if (guideStep == 3) {
  34. return "Guide4";
  35. } else if (guideStep == 4) {
  36. return "StoreAudit";
  37. } else {
  38. return "Guide1";
  39. }
  40. }, [guideStep]);
  41. return (
  42. <GuideStack.Navigator
  43. headerMode='none'
  44. screenOptions={{
  45. gestureEnabled: true,
  46. cardStyleInterpolator: CardStyleInterpolators.forHorizontalIOS,
  47. }}
  48. initialRouteName={initial}
  49. >
  50. <GuideStack.Screen name='Guide1' component={Guide1Screen} />
  51. <GuideStack.Screen name='Guide2' component={Guide2Screen} />
  52. <GuideStack.Screen name='Guide3' component={Guide3Screen} />
  53. <GuideStack.Screen name='Guide4' component={Guide4Screen} />
  54. <GuideStack.Screen name='StoreAudit' component={StoreAudit} />
  55. </GuideStack.Navigator>
  56. );
  57. }