Commit fb253d7f authored by Phuengton Chummuel's avatar Phuengton Chummuel

little change

parent c60f4dea
...@@ -10,7 +10,6 @@ import { appointmentNotification, cancleNotification } from './../Utils' ...@@ -10,7 +10,6 @@ import { appointmentNotification, cancleNotification } from './../Utils'
export const appointmentCreate = ({ id, doctorName, date, place, time }) => { export const appointmentCreate = ({ id, doctorName, date, place, time }) => {
return (dispatch) => { return (dispatch) => {
let appointment = { id, doctorName, date, place, time }
realm.write(() => { realm.write(() => {
realm.create('Appointments', { realm.create('Appointments', {
id: id, id: id,
......
...@@ -7,9 +7,15 @@ import { ...@@ -7,9 +7,15 @@ import {
import realm from './../Database/' import realm from './../Database/'
import moment from 'moment' import moment from 'moment'
import { scheduleLocalNotification, cancleNotification } from './../Utils' import { scheduleLocalNotification, cancleNotification } from './../Utils'
import { ToastAndroid } from 'react-native'
export const reminderCreate = ({ id, medName, reminderTime, meal, period, dose }) => { export const reminderCreate = ({ id, medName, reminderTime, meal, period, dose }) => {
return (dispatch) => { return (dispatch) => {
let isPast = moment().diff(reminderTime)
if (isPast > 0) {
reminderTime = new Date(moment(reminderTime).add(1, 'day'))
}
ToastAndroid.show(isPast.toString(), ToastAndroid.SHORT)
realm.write(() => { realm.write(() => {
realm.create('Reminder', { realm.create('Reminder', {
id: id, id: id,
...@@ -21,7 +27,7 @@ export const reminderCreate = ({ id, medName, reminderTime, meal, period, dose } ...@@ -21,7 +27,7 @@ export const reminderCreate = ({ id, medName, reminderTime, meal, period, dose }
timeStamp: moment().toDate() timeStamp: moment().toDate()
}) })
}) })
var time = moment(date).format('HH:mm').split(':') var time = moment(reminderTime).format('HH:mm').split(':')
var msg = "แจ้งเตือนกินยา\n" + "เวลา: " + time[0] + ":" + time[1] + "\nยา: " + medName + '\n' + meal; var msg = "แจ้งเตือนกินยา\n" + "เวลา: " + time[0] + ":" + time[1] + "\nยา: " + medName + '\n' + meal;
scheduleLocalNotification(msg, reminderTime, id) scheduleLocalNotification(msg, reminderTime, id)
let reminders = realm.objects("Reminder") let reminders = realm.objects("Reminder")
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import { TouchableOpacity } from 'react-native'; import { TouchableOpacity } from 'react-native';
import { View, Text } from 'native-base'; import { View, Text, SwipeRow, Button, Icon } from 'native-base';
import { appointmentDelete } from './../actions' import { appointmentDelete } from './../actions'
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import moment from 'moment'; import moment from 'moment';
...@@ -16,17 +16,34 @@ class AppointmentListItem extends Component { ...@@ -16,17 +16,34 @@ class AppointmentListItem extends Component {
} }
render() { render() {
const { listItem } = styles
return ( return (
<TouchableOpacity onPress={() => this.deleteAppointment(this.props.data.id)}> <SwipeRow
<View> rightOpenValue={-75}
<Text>{this.props.data.doctorName}</Text> body={
<Text>{this.props.data.date}</Text> <View style={listItem}>
<Text>{this.props.data.time}</Text> <Text>{"แพทย์: " + this.props.data.doctorName}</Text>
<Text>{this.props.data.place}</Text> <Text>{"วันที่: " + moment(new Date(this.props.data.date)).format('DD MMM YYYY')}</Text>
</View> <Text>{"เวลา: " + moment(new Date(this.props.data.date)).format('HH:mm')}</Text>
</TouchableOpacity> <Text>{"สถานที่: " + this.props.data.place}</Text>
</View>
}
right={
<Button danger onPress={() => this.deleteAppointment(this.props.data.id)}>
<Icon active name="trash" />
</Button>
}
/>
) )
} }
} }
const styles = {
listItem: {
paddingLeft: 15
}
}
export default connect(null, { appointmentDelete })(AppointmentListItem); export default connect(null, { appointmentDelete })(AppointmentListItem);
\ No newline at end of file
...@@ -19,15 +19,17 @@ class ReminderBoxList extends React.Component { ...@@ -19,15 +19,17 @@ class ReminderBoxList extends React.Component {
<View> <View>
<Text>{this.props.periodText}</Text> <Text>{this.props.periodText}</Text>
<View style={containerStyle}> <View style={containerStyle}>
<List dataArray={this.props.items} <View style={{ height: 190 }}>
renderRow={(item) => <List dataArray={this.props.items}
<ListItem> renderRow={(item) =>
<Text>{item.medName}</Text> <ListItem>
</ListItem> <Text>{item.medName}</Text>
}> </ListItem>
</List> }>
</List>
</View>
</View> </View>
</View> </View >
) )
} }
......
import React, { Component } from 'react'; import React, { Component } from 'react';
import { TouchableOpacity } from 'react-native'; import { TouchableOpacity } from 'react-native';
import { View, Text } from 'native-base'; import { View, Text, SwipeRow, Button, Icon } from 'native-base';
import { reminderDelete } from './../actions' import { reminderDelete } from './../actions'
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import moment from 'moment'; import moment from 'moment';
...@@ -11,23 +11,39 @@ class ReminderListItem extends Component { ...@@ -11,23 +11,39 @@ class ReminderListItem extends Component {
super(props) super(props)
} }
deleteAppointment(id) { deleteReminder(id) {
this.props.reminderDelete(id) this.props.reminderDelete(id)
} }
render() { render() {
const { listItem } = styles
return ( return (
<TouchableOpacity onPress={() => this.deleteAppointment(this.props.data.id)}> <SwipeRow
<View> rightOpenValue={-75}
<Text>{this.props.data.medName}</Text> body={
<Text>{this.props.data.reminderTime}</Text> <View style={listItem}>
<Text>{this.props.data.meal}</Text> <Text>{"ชื่อยา: " + this.props.data.medName}</Text>
<Text>{this.props.data.period}</Text> <Text>{"เวลา: " + moment(new Date(this.props.data.reminderTime)).format('HH:mm')}</Text>
<Text>{this.props.data.dose}</Text> <Text>{"ก่อน/หลังอาหาร: " + this.props.data.meal}</Text>
</View> <Text>{"จำนวน: " + this.props.data.dose}</Text>
</TouchableOpacity> </View>
}
right={
<Button danger onPress={() => this.deleteReminder(this.props.data.id)}>
<Icon active name="trash" />
</Button>
}
/>
) )
} }
} }
const styles = {
listItem: {
paddingLeft: 15
}
}
export default connect(null, { reminderDelete })(ReminderListItem); export default connect(null, { reminderDelete })(ReminderListItem);
\ No newline at end of file
...@@ -10,9 +10,9 @@ import { IMAGE_TO_TEXT } from './../ServiceUrl'; ...@@ -10,9 +10,9 @@ import { IMAGE_TO_TEXT } from './../ServiceUrl';
import { Container, Header, Content, Icon, Button } from 'native-base'; import { Container, Header, Content, Icon, Button } from 'native-base';
import { MaterialDialog } from 'react-native-material-dialog'; import { MaterialDialog } from 'react-native-material-dialog';
import { RNCamera } from 'react-native-camera'; import { RNCamera } from 'react-native-camera';
import { scheduleLocalNotification, appointmentNotification, futch } from './../Utils'; import { scheduleLocalNotification, appointmentNotification, futch, generateID } from './../Utils';
import { connect } from 'react-redux' import { connect } from 'react-redux'
import { reminderCreate } from './../actions' import { reminderCreate, appointmentCreate } from './../actions'
import ReminderDialogForm from './../components/ReminderDialogForm'; import ReminderDialogForm from './../components/ReminderDialogForm';
import moment from 'moment'; import moment from 'moment';
import realm from './../Database/'; import realm from './../Database/';
...@@ -26,11 +26,14 @@ class AppCamera extends Component { ...@@ -26,11 +26,14 @@ class AppCamera extends Component {
afternoonTime: "", afternoonTime: "",
eveningTime: "", eveningTime: "",
nightTime: "", nightTime: "",
addItemVisible: true, addItemVisible: false,
visible: false, visible: false,
imageToText: "", imageToText: "",
uploadProgress: "0", uploadProgress: "0",
addReminder: false addReminder: false,
dataType: '',
qrData: {},
uuid: ''
} }
} }
...@@ -54,6 +57,7 @@ class AppCamera extends Component { ...@@ -54,6 +57,7 @@ class AppCamera extends Component {
style={styles.preview} style={styles.preview}
type={RNCamera.Constants.Type.back} type={RNCamera.Constants.Type.back}
fixOrientation={true} fixOrientation={true}
onBarCodeRead={(data, type) => this._onBarCodeRead(data, type)}
permissionDialogTitle={'Permission to use camera'} permissionDialogTitle={'Permission to use camera'}
permissionDialogMessage={'We need your permission to use your camera phone'} permissionDialogMessage={'We need your permission to use your camera phone'}
/> />
...@@ -74,7 +78,13 @@ class AppCamera extends Component { ...@@ -74,7 +78,13 @@ class AppCamera extends Component {
uploadProgress={this.state.uploadProgress} uploadProgress={this.state.uploadProgress}
imageToText={this.state.imageToText} imageToText={this.state.imageToText}
/> />
</MaterialDialog>
<MaterialDialog
title="QRcode"
visible={this.state.addItemVisible}
onOk={() => this.addQr(this.state.uuid, this.state.dataType, this.state.qrData)}
onCancel={() => this.setState({ addItemVisible: false, dataType: '', qrData: {} })}>
<Text>{JSON.stringify(this.state.qrData)}</Text>
</MaterialDialog> </MaterialDialog>
</Container > </Container >
); );
...@@ -108,28 +118,54 @@ class AppCamera extends Component { ...@@ -108,28 +118,54 @@ class AppCamera extends Component {
} }
} }
// _onBarCodeRead(data, type) { _onBarCodeRead(data, type) {
// if (data.type == 'QR_CODE') { if (data.type == 'QR_CODE') {
// var tmpData = JSON.parse(decodeURI(data.data)) var tmpData = JSON.parse(decodeURI(data.data))
// switch (tmpData.type) { let id = generateID()
// case "medicine": switch (tmpData.type) {
// if (this.state.addItemVisible) { case "reminder":
// this._addMedicine(tmpData) if (!this.state.addItemVisible) {
// this.setState({ addItemVisible: false }) this.setState({ addItemVisible: true, dataType: tmpData.type, qrData: tmpData, uuid: id })
// } }
// break; break;
// case "appointment": case "appointment":
// if (this.state.addItemVisible) { if (!this.state.addItemVisible) {
// this._addAppointment(tmpData) this.setState({ addItemVisible: true, dataType: tmpData.type, qrData: tmpData, uuid: id })
// this.setState({ addItemVisible: false }) }
// } break;
// break; }
// } }
// } }
// } addQr(id, dataType, qrData) {
switch (dataType) {
case "reminder":
this.props.reminderCreate({
id, medName: qrData.medName, reminderTime: new Date(moment(qrData.reminderTime)),
meal: qrData.meal, period: parseInt(qrData.period), dose: qrData.dose
})
this.setState({ addItemVisible: false, dataType: '', qrData: {} })
break;
case "appointment":
this.props.appointmentCreate({
id, doctorName: qrData.doctorName, date: new Date(moment(qrData.date)),
place: qrData.place, time: moment().date(),
})
this.setState({ addItemVisible: false, dataType: '', qrData: {} })
break;
}
}
} }
const styles = StyleSheet.create({ const styles = StyleSheet.create({
container: { container: {
flex: 1, flex: 1,
...@@ -152,4 +188,4 @@ const styles = StyleSheet.create({ ...@@ -152,4 +188,4 @@ const styles = StyleSheet.create({
} }
}); });
export default connect(null, { reminderCreate })(AppCamera); export default connect(null, { reminderCreate, appointmentCreate })(AppCamera);
\ No newline at end of file \ No newline at end of file
This diff is collapsed.
...@@ -30,7 +30,7 @@ class MedicationListScreen extends Component { ...@@ -30,7 +30,7 @@ class MedicationListScreen extends Component {
return ( return (
<Container> <Container>
<AppHeader <AppHeader
headerText={"Medications"} headerText={"Reminders"}
headerLeft={ headerLeft={
<Button onPress={() => goBack(null)}> <Button onPress={() => goBack(null)}>
<Icon name='arrow-back' /> <Icon name='arrow-back' />
......
...@@ -157,7 +157,7 @@ class MedicationsScreen extends Component { ...@@ -157,7 +157,7 @@ class MedicationsScreen extends Component {
return ( return (
<Container> <Container>
<AppHeader <AppHeader
headerText={'Add Medication'} headerText={'Add Reminder'}
headerLeft={ headerLeft={
<Button onPress={() => goBack(null)}> <Button onPress={() => goBack(null)}>
<Icon name='arrow-back' /> <Icon name='arrow-back' />
...@@ -166,7 +166,7 @@ class MedicationsScreen extends Component { ...@@ -166,7 +166,7 @@ class MedicationsScreen extends Component {
/> />
<Content> <Content>
<MedForm titleText={"Medicine Name"}> <MedForm titleText={"Medication Name"}>
<Form> <Form>
<Item floatingLabel> <Item floatingLabel>
<Label>medicine or brand name</Label> <Label>medicine or brand name</Label>
...@@ -235,10 +235,6 @@ class MedicationsScreen extends Component { ...@@ -235,10 +235,6 @@ class MedicationsScreen extends Component {
</Content> </Content>
</MedForm> </MedForm>
<MedForm titleText={"Schedule"}>
<Text style={timeStyle}>Start date : {formatDate(new Date(Date.now()))}</Text>
</MedForm>
<MedForm titleText={"Dose"}> <MedForm titleText={"Dose"}>
<View style={{ padding: 15 }}> <View style={{ padding: 15 }}>
<Button style={{ backgroundColor: 'white' }} onPress={() => this.setState({ singlePickerVisible: true })}> <Button style={{ backgroundColor: 'white' }} onPress={() => this.setState({ singlePickerVisible: true })}>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment