MemoDetails.js 2.21 KB
Newer Older
YoonDongMin's avatar
YDm    
YoonDongMin committed
1
import React, { useState, useEffect } from 'react';
2
import { StyleSheet, View, TouchableWithoutFeedback, Keyboard } 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 memoApi from '../db/memoPage.api';
7
import { getDateStr } from '../utils/dateFunction';
YoonDongMin's avatar
YdM    
YoonDongMin committed
8

YoonDongMin's avatar
YDm    
YoonDongMin committed
9
function MemoDetails({ route, navigation }) {
10
11
12
13
    const { item, loadMemos } = route.params
    const getDates = () => {
        const date = new Date();
        return (getDateStr(date))
YoonDongMin's avatar
YDm    
YoonDongMin committed
14
    }
15
    const [date, setDate] = useState(getDates())
YoonDongMin's avatar
YDm    
YoonDongMin committed
16
17
18
19
20
21
    const [message, setMessage] = useState('')
    const onUpdateHandle = async () => {
        await memoApi.updateMemo({ date, message }, item.id)
        loadMemos()
        navigation.navigate('MemoPage')
    }
YoonDongMin's avatar
YdM    
YoonDongMin committed
22

YoonDongMin's avatar
YDm    
YoonDongMin committed
23
24
25
26
    useEffect(() => {
        setDate(String(item.date))
        setMessage(item.message)
    }, [])
YoonDongMin's avatar
YdM    
YoonDongMin committed
27
28
29
30
31
32
33

    return (
        <TouchableWithoutFeedback onPress={() => {
            Keyboard.dismiss();
        }}>
            <View style={{ flex: 1 }}>
                <View>
YoonDongMin's avatar
YDm    
YoonDongMin committed
34
                    <DatePicker
YoonDongMin's avatar
YdM    
YoonDongMin committed
35
                        inputTitle="날짜"
YoonDongMin's avatar
YDm    
YoonDongMin committed
36
37
                        date={date}
                        setDate={setDate}
YoonDongMin's avatar
YdM    
YoonDongMin committed
38
39
40
                    />
                    <InputBox
                        inputTitle="내용"
YoonDongMin's avatar
YDm    
YoonDongMin committed
41
                        value={message}
YoonDongMin's avatar
YdM    
YoonDongMin committed
42
                        onChangeText={
YoonDongMin's avatar
YDm    
YoonDongMin committed
43
                            (message) => setMessage(message)
YoonDongMin's avatar
YdM    
YoonDongMin committed
44
45
                        }
                    />
YoonDongMin's avatar
YDm    
YoonDongMin committed
46

YoonDongMin's avatar
YdM    
YoonDongMin committed
47
48
49
50
                </View>
                <View style={style.buttonRow}>
                    <StyledButton
                        name="수정"
YoonDongMin's avatar
YDm    
YoonDongMin committed
51
                        onPress={() => { onUpdateHandle() }}
YoonDongMin's avatar
YdM    
YoonDongMin committed
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
                        style={style.submitButton}
                    />
                </View>
            </View>
        </TouchableWithoutFeedback>
    )
}

const style = StyleSheet.create({

    buttonRow: {
        flexDirection: 'row',
        alignItems: "center",
        marginHorizontal: 10,
        marginVertical: 3,
    },
    submitButton: {
        flex: 1,
        height: 50,
    },
    cancelButton: {
        flex: 1,
        height: 50,
    }
});

export default MemoDetails;