DeptDetails.js 3.13 KB
Newer Older
YoonDongMin's avatar
YdM    
YoonDongMin committed
1
import React, { useEffect, useState } from 'react';
YoonDongMin's avatar
0810DM    
YoonDongMin committed
2
import { StyleSheet, View, TouchableWithoutFeedback, Keyboard, LogBox } from 'react-native';
YoonDongMin's avatar
YdM    
YoonDongMin committed
3
4
import InputBox from '../components/InputBox';
import StyledButton from '../components/StyledButton';
YoonDongMin's avatar
YDm    
YoonDongMin committed
5
6
import DatePicker from '../components/DatePicker.js';
import deptApi from '../db/deptPage.api';
7
import { getDateStr } from '../utils/dateFunction';
YoonDongMin's avatar
DongM    
YoonDongMin committed
8

YoonDongMin's avatar
0810DM    
YoonDongMin committed
9

YoonDongMin's avatar
YDm    
YoonDongMin committed
10
11
function DeptDetails({ route, navigation }) {
    const { item, loadLoan } = route.params
12
13
14
    const getDates = () => {
        const date = new Date();
        return (getDateStr(date))
YoonDongMin's avatar
YDm    
YoonDongMin committed
15
    }
16
    const [date, setDate] = useState(getDates())
YoonDongMin's avatar
YDm    
YoonDongMin committed
17
    const [message, setMessage] = useState('')
YoonDongMin's avatar
YdM    
YoonDongMin committed
18
    const [money, setMoney] = useState('')
Choi Ga Young's avatar
Choi Ga Young committed
19
    const [repayment, setRepayment] = useState('')
YoonDongMin's avatar
0810DM    
YoonDongMin committed
20
    LogBox.ignoreLogs(['Non-serializable values were found in the navigation state']);
YoonDongMin's avatar
YDm    
YoonDongMin committed
21

YoonDongMin's avatar
YdM    
YoonDongMin committed
22
    useEffect(() => {
YoonDongMin's avatar
YDm    
YoonDongMin committed
23
24
25
        setDate(String(item.date))
        setMessage(item.message)
        setMoney(String(item.money))
Choi Ga Young's avatar
Choi Ga Young committed
26
        setRepayment(String(item.repayment))
YoonDongMin's avatar
YdM    
YoonDongMin committed
27
    }, [])
YoonDongMin's avatar
DongM    
YoonDongMin committed
28

YoonDongMin's avatar
YDm    
YoonDongMin committed
29
    const onUpdateHandle = async () => {
Choi Ga Young's avatar
Choi Ga Young committed
30
        await deptApi.updateDept({ date, message, money, repayment }, item.id)
YoonDongMin's avatar
YDm    
YoonDongMin committed
31
32
33
        loadLoan()
        navigation.navigate('DeptPage')
    }
YoonDongMin's avatar
DongM    
YoonDongMin committed
34
    return (
YoonDongMin's avatar
YdM    
YoonDongMin committed
35
36
37
38
        <TouchableWithoutFeedback onPress={() => {
            Keyboard.dismiss();
        }}>
            <View style={{ flex: 1 }}>
YoonDongMin's avatar
YDm    
YoonDongMin committed
39
40
                <View style={style.Font}>
                    <DatePicker
YoonDongMin's avatar
YdM    
YoonDongMin committed
41
                        inputTitle="날짜"
YoonDongMin's avatar
YDm    
YoonDongMin committed
42
43
                        date={date}
                        setDate={setDate}
YoonDongMin's avatar
YdM    
YoonDongMin committed
44
45
                    />
                    <InputBox
YoonDongMin's avatar
YDm    
YoonDongMin committed
46
47
                        inputTitle="내용"
                        value={message}
YoonDongMin's avatar
YdM    
YoonDongMin committed
48
                        onChangeText={
YoonDongMin's avatar
YDm    
YoonDongMin committed
49
                            (message) => setMessage(message)
YoonDongMin's avatar
YdM    
YoonDongMin committed
50
51
52
                        }
                    />
                    <InputBox
Choi Ga Young's avatar
Choi Ga Young committed
53
                        inputTitle="원금"
YoonDongMin's avatar
YdM    
YoonDongMin committed
54
55
56
57
58
59
                        value={money}
                        onChangeText={
                            (money) => setMoney(money)
                        }
                    />
                    <InputBox
Choi Ga Young's avatar
Choi Ga Young committed
60
61
                        inputTitle="갚은 금액"
                        value={repayment}
YoonDongMin's avatar
YdM    
YoonDongMin committed
62
                        onChangeText={
Choi Ga Young's avatar
Choi Ga Young committed
63
                            (repayment) => setRepayment(repayment)
YoonDongMin's avatar
YdM    
YoonDongMin committed
64
65
66
67
68
69
                        }
                    />
                </View>
                <View style={style.buttonRow}>
                    <StyledButton
                        name="수정"
YoonDongMin's avatar
YDm    
YoonDongMin committed
70
                        onPress={() => { onUpdateHandle() }}
YoonDongMin's avatar
YdM    
YoonDongMin committed
71
72
73
74
75
                        style={style.submitButton}
                    />
                </View>
            </View>
        </TouchableWithoutFeedback>
YoonDongMin's avatar
DongM    
YoonDongMin committed
76
77
78
    )
}

YoonDongMin's avatar
YdM    
YoonDongMin committed
79
80
const style = StyleSheet.create({

YoonDongMin's avatar
YDm    
YoonDongMin committed
81
82
83
84
    Font: {
        fontFamily: 'GowunDodum-Regular'
    },

YoonDongMin's avatar
YdM    
YoonDongMin committed
85
    buttonRow: {
YoonDongMin's avatar
YDm    
YoonDongMin committed
86
        fontFamily: 'GowunDodum-Regular',
YoonDongMin's avatar
YdM    
YoonDongMin committed
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
        flexDirection: 'row',
        alignItems: "center",
        marginHorizontal: 10,
        marginVertical: 3,
    },
    submitButton: {
        flex: 1,
        height: 50,
    },
    cancelButton: {
        flex: 1,
        height: 50,
    }
});

YoonDongMin's avatar
YDm    
YoonDongMin committed
102
export default DeptDetails;