main.tsx 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import React, { useState } from 'react';
  2. import { View, StyleSheet, SafeAreaView } from 'react-native';
  3. import SearchScreen from '@/app/seach';
  4. import BottomTabBar from '@/components/BottomTabBar';
  5. import FavoritesScreen from "@/app/favorites";
  6. import MyInfoScreen from "@/app/myInfo";
  7. export default function MainScreen() {
  8. const [tab, setTab] = useState<'search' | 'favorites' | 'settings'>('search');
  9. return (
  10. <SafeAreaView style={styles.container}>
  11. <View style={styles.content}>
  12. <View style={[styles.screen, tab !== 'search' && styles.hidden]}>
  13. <SearchScreen />
  14. </View>
  15. <View style={[styles.screen, tab !== 'favorites' && styles.hidden]}>
  16. <FavoritesScreen />
  17. </View>
  18. <View style={[styles.screen, tab !== 'settings' && styles.hidden]}>
  19. <MyInfoScreen />
  20. </View>
  21. </View>
  22. <BottomTabBar activeTab={tab} onTabChange={setTab} />
  23. </SafeAreaView>
  24. );
  25. }
  26. const styles = StyleSheet.create({
  27. container: {
  28. flex: 1,
  29. backgroundColor: '#fff',
  30. },
  31. content: {
  32. flex: 1,
  33. },
  34. screen: {
  35. ...StyleSheet.absoluteFillObject,
  36. },
  37. hidden: {
  38. display: 'none',
  39. },
  40. });