/* eslint-disable react-native/no-inline-styles */
import CheckBox from '@react-native-community/checkbox';
import Moment from 'moment';
import React, {useMemo} from 'react';
import {Image, Modal, ScrollView, TouchableOpacity, View} from 'react-native';
import DateTimePickerModal from 'react-native-modal-datetime-picker';
import AppText from '../../../../components/AppText';
import ButtonComponent from '../../../../components/ButtonComponent';
import SelectDropdownComponent from '../../../../components/Select';
import TextInputComponent from '../../../../components/TextInputComponent';
import config from '../../../../config';
import {IMAGES} from '../../../../values/images';
import {leavesModalStyles} from '../../style';
// const ButtonAction = React.memo(
// ({
// onCloseModal,
// onSubmitApproveLeaveRequest,
// isRequest,
// onSubmitLeaveRequest,
// userInfo,
// }) => {
// return (
//
//
// Hủy
//
// {isRequest && (
//
// Gửi yêu cầu
//
// )}
// {userInfo?.isApprover && (
// onSubmitApproveLeaveRequest(userInfo?.leave_id)}>
// Duyệt yêu cầu
//
// )}
//
// );
// },
// function areEquals(prevProps, nextProps) {
// return (
// prevProps.isRequest === nextProps.isRequest ||
// prevProps.userInfo === nextProps.userInfo ||
// prevProps.onSubmitLeaveRequest === nextProps.onSubmitLeaveRequest ||
// prevProps.onCloseModal === nextProps.onCloseModal ||
// prevProps.onSubmitApproveLeaveRequest ===
// nextProps.onSubmitApproveLeaveRequest
// );
// },
// );
const UserHeader = React.memo(
({userInfo, fullName}) => {
return (
{`${fullName} - ${userInfo?.employee_code}`}
{userInfo?.position}
);
},
function areEqual(prevProps, nextProps) {
return (
prevProps.userInfo === nextProps.userInfo ||
prevProps.fullName === nextProps.fullName
);
},
);
const Attachments = React.memo(
({leaveRequestImage, onDeleteLeaveRequestImage, openGallery}) => {
return (
Tệp đính kèm
{leaveRequestImage.length > 0 &&
leaveRequestImage.map((item, index) => {
//console.log("item", item[0].uri)
return (
onDeleteLeaveRequestImage(index)}
/>
);
})}
{leaveRequestImage.length < 3 && (
)}
);
},
);
const ButtonAction = ({
onCloseModal,
onSubmitApproveLeaveRequest,
isRequest,
onSubmitLeaveRequest,
userInfo,
}) => {
return (
Hủy
{isRequest && (
Gửi yêu cầu
)}
{userInfo?.isApprover && (
onSubmitApproveLeaveRequest(userInfo?.leave_id)}>
Duyệt yêu cầu
)}
);
};
const RequestLeavesDays = props => {
const {
userInfo,
onCloseModal,
leaveCategory,
directManagersList = [],
openTimePicker,
setOpenTimePicker,
timeRequestLeave,
setTimeRequestLeave,
leaveRequestImage = [],
openGallery,
onDeleteLeaveRequestImage,
leaveRequestTicket,
setLeaveRequestTicket,
onSubmitLeaveRequest,
onSelectManagerLeaveRequest,
isRequest = false,
onSubmitApproveLeaveRequest,
} = props;
const formatLeaveCategory = useMemo(() => {
leaveCategory.map(item => {
return {label: item.name, value: item.name};
});
return leaveCategory.length > 0
? leaveCategory.map(item => {
return {label: item.name, value: item.name};
})
: [];
}, [leaveCategory]);
const fullName = useMemo(() => {
return userInfo?.full_name
? userInfo?.full_name
: `${userInfo?.first_name} ${
userInfo?.middle_name ? userInfo?.middle_name : ''
} ${userInfo?.last_name}`;
}, [userInfo]);
return (
onCloseModal(null)}>
Nghỉ phép mới
Thông tin chung
Loại nghỉ phép
setLeaveRequestTicket(prev => ({
...prev,
leaveCategory: value,
}))
}
width={200}
height={30}
/>
Từ ngày
setOpenTimePicker(state => ({
...state,
startDate: true,
}))
}
style={leavesModalStyles.chooseTimeSection}>
{Moment(timeRequestLeave.startDate).format('DD/MM/YYYY')}
{
setTimeRequestLeave(prev => ({...prev, startDate: time}));
setOpenTimePicker(state => ({
...state,
startDate: false,
}));
}}
onCancel={() => {
setOpenTimePicker(state => ({
...state,
startDate: false,
}));
}}
/>
Giờ
setOpenTimePicker(state => ({
...state,
startTime: true,
}))
}
style={leavesModalStyles.chooseTimeSection}>
{Moment(timeRequestLeave.startDate).format('HH:mm')}
{
setTimeRequestLeave(prev => ({...prev, startDate: time}));
setOpenTimePicker(state => ({
...state,
startTime: false,
}));
}}
onCancel={() => {
setOpenTimePicker(state => ({
...state,
startTime: false,
}));
}}
/>
Đến ngày
setOpenTimePicker(state => ({
...state,
finishDate: true,
}))
}
style={leavesModalStyles.chooseTimeSection}>
{Moment(timeRequestLeave.finishDate).format('DD/MM/YYYY')}
{
setTimeRequestLeave(prev => ({...prev, finishDate: time}));
setOpenTimePicker(state => ({
...state,
finishDate: false,
}));
}}
onCancel={() => {
setOpenTimePicker(state => ({
...state,
finishDate: false,
}));
}}
/>
Giờ
setOpenTimePicker(state => ({
...state,
finishTime: true,
}))
}
style={leavesModalStyles.chooseTimeSection}>
{Moment(timeRequestLeave.finishDate).format('HH:mm')}
{
setTimeRequestLeave(prev => ({...prev, finishDate: time}));
setOpenTimePicker(state => ({
...state,
finishTime: false,
}));
}}
onCancel={() => {
setOpenTimePicker(state => ({
...state,
finishTime: false,
}));
}}
/>
{/*
{`Thời gian nghỉ (*)`}
{durationLeave.stringTime}
*/}
{`Lý do(*)`}
{
setLeaveRequestTicket(state => ({
...state,
reason: text,
}));
}}
noBorder
/>
{/*
Tệp đính kèm
{leaveRequestImage.length > 0 &&
leaveRequestImage.map((item, index) => {
//console.log("item", item[0].uri)
return (
onDeleteLeaveRequestImage(index)}
/>
);
})}
{leaveRequestImage.length < 3 && (
)}
*/}
{isRequest && directManagersList.length > 0 && (
Người duyệt
{directManagersList.map((item, index) => (
{`${item.extend_user_full_name}`}
onSelectManagerLeaveRequest(index, newValue)
}
boxType={'square'}
animationDuration={0.3}
lineWidth={1}
key={index}
tintColors={'#9E663C'}
/>
))}
)}
);
};
export default RequestLeavesDays;