App.js 4.45 KB
Newer Older
Choi Ga Young's avatar
Choi Ga Young committed
1
import * as React from 'react';
YoonDongMin's avatar
모달    
YoonDongMin committed
2
3
import { useState } from 'react';
import { StyleSheet, View, Text, TextInput, Button, Keyboard, TouchableWithoutFeedback, Modal } from 'react-native';
Choi Ga Young's avatar
Choi Ga Young committed
4
5
6
7
8
9
import { NavigationContainer } from '@react-navigation/native';
import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
import Ionicons from 'react-native-vector-icons/Ionicons';
import Monthly from './Monthly';
import Analy from './Analy';
import MoneyDB from './MoneyDB';
YoonDongMin's avatar
부채    
YoonDongMin committed
10
import DeptPage from './DeptPage';
YoonDongMin's avatar
DongM    
YoonDongMin committed
11
import InfoForm from './screens/infoForm';
YoonDongMin's avatar
부채    
YoonDongMin committed
12
import { SpeedDial } from 'react-native-elements';
YoonDongMin's avatar
DongM    
YoonDongMin committed
13
14
15
16
17
18
19
20
import { StackRouter } from 'react-navigation';
import InfoDetails from './screens/InfoDetails';
import { createStackNavigator } from '@react-navigation/stack';
// import HomeStack from './routes/HomeStack';
// import MainScreen from './screens/MainScreen';



YoonDongMin's avatar
부채    
YoonDongMin committed
21

YoonDongMin's avatar
모달    
YoonDongMin committed
22

Test User's avatar
Test User committed
23

YoonDongMin's avatar
YoonDongMin committed
24

Choi Ga Young's avatar
Choi Ga Young committed
25
function MainScreen({ navigation }) {
YoonDongMin's avatar
부채    
YoonDongMin committed
26
  const [number, onChangeNumber] = useState(null);
YoonDongMin's avatar
모달    
YoonDongMin committed
27
  const [modalOpen, setModalOpen] = useState(false);
YoonDongMin's avatar
부채    
YoonDongMin committed
28
29
30
31
  // const [reviews, setReviews] = useState([
  //   { title: 'aa', rating: 5, body: 'bb', key: '1' },
  // ]);
  const [open, setOpen] = useState(false)
YoonDongMin's avatar
모달    
YoonDongMin committed
32
33


Choi Ga Young's avatar
Choi Ga Young committed
34
  return (
YoonDongMin's avatar
DongM    
YoonDongMin committed
35

Choi Ga Young's avatar
Choi Ga Young committed
36
    <>
YoonDongMin's avatar
YoonDongMin committed
37
38
      <TouchableWithoutFeedback onPress={() => {
        Keyboard.dismiss();
YoonDongMin's avatar
모달    
YoonDongMin committed
39

YoonDongMin's avatar
YoonDongMin committed
40
      }}>
YoonDongMin's avatar
모달    
YoonDongMin committed
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
        <View style={{ flex: 1 }}>


          <View >
            <Text style={style.Font}>여기는 메인 페이지 입니다.</Text>
            <Text style={style.Font}>아래는 input 테스트를 위한 것입니다.</Text>
            <TextInput
              style={style.TextInput}
              onChangeText={onChangeNumber}
              keyboardType="numeric"
            />
            <Text>입력한 숫자 보기: {number} </Text>
          </View>

          <Button
            title="월별 페이지로 이동"
            onPress={() => navigation.navigate('Monthly')}
          />
YoonDongMin's avatar
부채    
YoonDongMin committed
59
60
61
62
63
64
65
66
67
68
          <SpeedDial
            isOpen={open}
            icon={{ name: 'edit', color: '#fff' }} //연필모양
            openIcon={{ name: 'close', color: '#fff' }} //x모양
            onOpen={() => setOpen(!open)}
            onClose={() => setOpen(!open)}
          >
            <SpeedDial.Action
              icon={{ name: 'add', color: '#fff' }}
              title="부채"
YoonDongMin's avatar
DongM    
YoonDongMin committed
69
              onPress={() => navigation.navigate('DeptPage')}
YoonDongMin's avatar
부채    
YoonDongMin committed
70
71
72
73
            />
            <SpeedDial.Action
              icon={{ name: 'delete', color: '#fff' }}
              title="Delete"
YoonDongMin's avatar
DongM    
YoonDongMin committed
74
              onPress={() => navigation.navigate('DeptPage')}
YoonDongMin's avatar
부채    
YoonDongMin committed
75
76
77
78
            />

          </SpeedDial>

YoonDongMin's avatar
YoonDongMin committed
79
        </View>
YoonDongMin's avatar
모달    
YoonDongMin committed
80

YoonDongMin's avatar
DongM    
YoonDongMin committed
81
82
83
84
        {/* <MoneyDB /> */}



YoonDongMin's avatar
부채    
YoonDongMin committed
85
      </TouchableWithoutFeedback>
YoonDongMin's avatar
YoonDongMin committed
86
    </>
Choi Ga Young's avatar
Choi Ga Young committed
87
88
  )
}
Test User's avatar
Test User committed
89

YoonDongMin's avatar
YoonDongMin committed
90

Choi Ga Young's avatar
Choi Ga Young committed
91
const Tab = createBottomTabNavigator();
YoonDongMin's avatar
DongM    
YoonDongMin committed
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
const Stack = createStackNavigator();


function Home() {
  return (
    <Tab.Navigator screenOptions={({ route }) => ({
      tabBarIcon: ({ focused, color, size }) => {
        let iconName;

        if (route.name === 'Main') {
          iconName = focused
            ? 'home'
            : 'home-outline';
        } else if (route.name === 'Monthly') {
          iconName = focused ? 'calendar' : 'calendar-outline';
        } else if (route.name === 'Analy') {
          iconName = focused ? 'bar-chart' : 'bar-chart-outline';
        }

        // You can return any component that you like here!
        return <Ionicons name={iconName} size={size} color={color} />;
      },
    })}
      tabBarOptions={{
        activeTintColor: 'tomato',
        inactiveTintColor: 'gray',
      }}>
      <Tab.Screen name="Main" component={MainScreen} />
      <Tab.Screen name="Monthly" component={Monthly} />
      <Tab.Screen name="Analy" component={Analy} />
    </Tab.Navigator>
  );
}
Test User's avatar
Test User committed
125

Choi Ga Young's avatar
Choi Ga Young committed
126
function App() {
Test User's avatar
Test User committed
127
  return (
YoonDongMin's avatar
YoonDongMin committed
128
    <NavigationContainer>
YoonDongMin's avatar
DongM    
YoonDongMin committed
129
130
131
132
133
      <Stack.Navigator>
        <Stack.Screen name="Home" component={Home} />
        <Stack.Screen name="DeptPage" component={DeptPage} />
        <Stack.Screen name="InfoDetails" component={InfoDetails} />
      </Stack.Navigator>
YoonDongMin's avatar
YoonDongMin committed
134
    </NavigationContainer>
Test User's avatar
Test User committed
135
  );
Choi Ga Young's avatar
Choi Ga Young committed
136
}
Test User's avatar
Test User committed
137

Choi Ga Young's avatar
Choi Ga Young committed
138
const style = StyleSheet.create({
YoonDongMin's avatar
모달    
YoonDongMin committed
139
  modalToggle: {
YoonDongMin's avatar
DongM    
YoonDongMin committed
140

YoonDongMin's avatar
모달    
YoonDongMin committed
141
142
    padding: 10,
    borderRadius: 10,
YoonDongMin's avatar
DongM    
YoonDongMin committed
143
144
    alignSelf: 'flex-start',
    marginTop: -40, //위치를 center로
YoonDongMin's avatar
모달    
YoonDongMin committed
145
146
  },
  modalClose: {
YoonDongMin's avatar
DongM    
YoonDongMin committed
147
148
149
150
    alignSelf: 'center',
    alignItems: 'flex-start',
    marginTop: 150,
    marginBottom: 50,
YoonDongMin's avatar
모달    
YoonDongMin committed
151
152
  },
  modalContent: {
YoonDongMin's avatar
부채    
YoonDongMin committed
153
    flex: 1, //이후 유용한 키보드를 추가하려고 ex)dismissing keyboard
YoonDongMin's avatar
모달    
YoonDongMin committed
154
155
  },

Choi Ga Young's avatar
Choi Ga Young committed
156
157
158
159
160
  TextInput: {
    borderColor: 'skyblue',
    height: 40,
    margin: 12,
    borderWidth: 1
Test User's avatar
Test User committed
161
  },
Choi Ga Young's avatar
Choi Ga Young committed
162
163
164
  Font: {
    fontSize: 24
  }
Test User's avatar
Test User committed
165
166
});
export default App;