index.tsx 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. import { Image } from 'expo-image';
  2. import { Platform, StyleSheet } from 'react-native';
  3. import { HelloWave } from '@/components/hello-wave';
  4. import ParallaxScrollView from '@/components/parallax-scroll-view';
  5. import { ThemedText } from '@/components/themed-text';
  6. import { ThemedView } from '@/components/themed-view';
  7. import { Link } from 'expo-router';
  8. export default function HomeScreen() {
  9. return (
  10. <ParallaxScrollView
  11. headerBackgroundColor={{ light: '#A1CEDC', dark: '#1D3D47' }}
  12. headerImage={
  13. <Image
  14. source={require('@/assets/images/partial-react-logo.png')}
  15. style={styles.reactLogo}
  16. />
  17. }>
  18. <ThemedView style={styles.titleContainer}>
  19. <ThemedText type="title">Welcome!</ThemedText>
  20. <HelloWave />
  21. </ThemedView>
  22. <ThemedView style={styles.stepContainer}>
  23. <ThemedText type="subtitle">Step 1: Try it</ThemedText>
  24. <ThemedText>
  25. Edit <ThemedText type="defaultSemiBold">app/(tabs)/index.tsx</ThemedText> to see changes.
  26. Press{' '}
  27. <ThemedText type="defaultSemiBold">
  28. {Platform.select({
  29. ios: 'cmd + d',
  30. android: 'cmd + m',
  31. web: 'F12',
  32. })}
  33. </ThemedText>{' '}
  34. to open developer tools.
  35. </ThemedText>
  36. </ThemedView>
  37. <ThemedView style={styles.stepContainer}>
  38. <Link href="/modal">
  39. <Link.Trigger>
  40. <ThemedText type="subtitle">Step 2: Explore</ThemedText>
  41. </Link.Trigger>
  42. <Link.Preview />
  43. <Link.Menu>
  44. <Link.MenuAction title="Action" icon="cube" onPress={() => alert('Action pressed')} />
  45. <Link.MenuAction
  46. title="Share"
  47. icon="square.and.arrow.up"
  48. onPress={() => alert('Share pressed')}
  49. />
  50. <Link.Menu title="More" icon="ellipsis">
  51. <Link.MenuAction
  52. title="Delete"
  53. icon="trash"
  54. destructive
  55. onPress={() => alert('Delete pressed')}
  56. />
  57. </Link.Menu>
  58. </Link.Menu>
  59. </Link>
  60. <ThemedText>
  61. {`Tap the Explore tab to learn more about what's included in this starter app.`}
  62. </ThemedText>
  63. </ThemedView>
  64. <ThemedView style={styles.stepContainer}>
  65. <ThemedText type="subtitle">Step 3: Get a fresh start</ThemedText>
  66. <ThemedText>
  67. {`When you're ready, run `}
  68. <ThemedText type="defaultSemiBold">npm run reset-project</ThemedText> to get a fresh{' '}
  69. <ThemedText type="defaultSemiBold">app</ThemedText> directory. This will move the current{' '}
  70. <ThemedText type="defaultSemiBold">app</ThemedText> to{' '}
  71. <ThemedText type="defaultSemiBold">app-example</ThemedText>.
  72. </ThemedText>
  73. </ThemedView>
  74. </ParallaxScrollView>
  75. );
  76. }
  77. const styles = StyleSheet.create({
  78. titleContainer: {
  79. flexDirection: 'row',
  80. alignItems: 'center',
  81. gap: 8,
  82. },
  83. stepContainer: {
  84. gap: 8,
  85. marginBottom: 8,
  86. },
  87. reactLogo: {
  88. height: 178,
  89. width: 290,
  90. bottom: 0,
  91. left: 0,
  92. position: 'absolute',
  93. },
  94. });