import Moment from 'moment'; import React from 'react'; import { Image, SafeAreaView, ScrollView, TouchableOpacity, View, } from 'react-native'; import FastImage from 'react-native-fast-image'; import PieChart from 'react-native-pie-chart'; import AppText from '../../../components/AppText'; import ButtonComponent from '../../../components/ButtonComponent'; import SelectDropdownComponent from '../../../components/Select'; import config from '../../../config'; import {GifType, IMAGES} from '../../../values/images'; import styles from '../style'; import RequestLeavesDays from './subViews/RequestLeavesDays'; import commonStyles from '../../../styles/commonStyles'; const sliceColorRight = ['#6dc9ee', '#d9f4ff']; const selectDataDropDown = [ {label: 'Tất cả', value: 'Tất cả'}, {label: 'Chưa duyệt', value: 'Chưa duyệt'}, {label: 'Đã duyệt', value: 'Đã duyệt'}, {label: 'Đã từ chối', value: 'Đã từ chối'}, ]; const DataChartLeavesRestDays = React.memo( ({dataChart = []}) => { return ( {dataChart?.length > 0 && dataChart.map((item, index) => { return ( {item.name} {`${item.from} / ${item.to}`} Ngày Phép đã nghỉ Phép còn lại ); })} ); }, function areEqual(prevProps, nextProps) { return prevProps.dataChart === nextProps.dataChart; }, ); const AddNewLeavesSection = React.memo(props => { const {onOpenRequestLeavesModal, navigateToConfirmDate, navigateToOverTime} = props; return ( Nghỉ phép của bạn: YÊU CẦU NGHỈ PHÉP Liên kết nhanh:{' '} Xác nhận ngày công {/* Tăng ca của tôi */} ); }); const ApproveRequestLeavesDays = React.memo( props => { const { onChangeSelectFilter, approveRequestLeavesDaysList = [], userInfo, onOpenDetailModal, } = props; return ( Duyệt yêu cầu nghỉ phép {approveRequestLeavesDaysList.length > 0 && userInfo && approveRequestLeavesDaysList[0].approver_id === userInfo.id && approveRequestLeavesDaysList.map((item, index) => ( onOpenDetailModal(item)}> {item?.extend_creator_full_name?.length > 18 ? item.extend_creator_full_name.slice(0, 18) + '...' : item.extend_creator_full_name} {Moment(item.start).format('DD/MM/YYYY')} {item?.extend_category_name} {`${item?.extend_taken_days} ngày`} ))} {/* {leaveList?.length > 0 && !isDisableLoadMore.approveReqBtn && ( )} */} ); }, function areEqual(prevProps, nextProps) { return ( prevProps.approveRequestLeavesDaysList === nextProps.approveRequestLeaves ); }, ); const LeavesRequest = React.memo( props => { const {leaveRequestList, onRefreshLeaveList, onOpenDetailModal} = props; return ( Nghỉ phép của tôi: {leaveRequestList.length === 0 && ( Bạn chưa có ngày nghỉ nào! Vui lòng chọn “Yêu cầu nghỉ phép” ở bên trên nhé! )} {leaveRequestList && leaveRequestList.map((item, index) => ( onOpenDetailModal(item, true)} key={index}> {item.extend_category_name} {Moment(item.start).format('DD/MM/YYYY')} {item.reason} {`${item.extend_taken_days} ngày`} ))} {/* {leaveList && leaveList.length > 0 && !isDisableLoadMore.leaveBtn && ( )} */} ); }, function areEqual(prevProps, nextProps) { return prevProps.leaveRequestList === nextProps.leaveRequestList; }, ); const OnLeaveMainView = ({ navigateToConfirmDate, navigateToOverTime, dataChart, onRefreshLeaveList, onOpenDetailModal, onOpenRequestLeavesModal, approveRequestLeavesDaysProps, leaveRequestList, leavesDaysModal, leaveRequestModalProps, }) => { return ( {/* Approve leave request */} {leavesDaysModal?.visible && ( )} ); }; export default OnLeaveMainView;