parent
							
								
									e782c49e4b
								
							
						
					
					
						commit
						428d4a7137
					
				@ -0,0 +1,168 @@
 | 
				
			|||||||
 | 
					import React, { useEffect } from "react";
 | 
				
			||||||
 | 
					import { Modal, Form, Input, DatePicker } from "antd";
 | 
				
			||||||
 | 
					import dayjs from "dayjs";
 | 
				
			||||||
 | 
					import { taskController } from "../../../API/LayoutApi/tasks";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					interface ShiftAndCoDriverEditModalProps {
 | 
				
			||||||
 | 
					  open: boolean;
 | 
				
			||||||
 | 
					  onCancel: () => void;
 | 
				
			||||||
 | 
					  recordTask?: any;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					const ShiftAndCoDriverEditModal: React.FC<ShiftAndCoDriverEditModalProps> = ({
 | 
				
			||||||
 | 
					  open,
 | 
				
			||||||
 | 
					  onCancel,
 | 
				
			||||||
 | 
					  recordTask,
 | 
				
			||||||
 | 
					}) => {
 | 
				
			||||||
 | 
					  const [form] = Form.useForm();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  useEffect(() => {
 | 
				
			||||||
 | 
					    if (recordTask) {
 | 
				
			||||||
 | 
					      form.setFieldsValue({
 | 
				
			||||||
 | 
					        shift_date: recordTask.shift_date ? dayjs(recordTask.shift_date) : null,
 | 
				
			||||||
 | 
					        shift_location: recordTask.shift_location,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        cycle_date: recordTask.cycle_date ? dayjs(recordTask.cycle_date) : null,
 | 
				
			||||||
 | 
					        cycle_location: recordTask.cycle_location,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        pickup_date: recordTask.pickup_date
 | 
				
			||||||
 | 
					          ? dayjs(recordTask.pickup_date)
 | 
				
			||||||
 | 
					          : null,
 | 
				
			||||||
 | 
					        pickup_location: recordTask.pickup_location,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        driver_name: recordTask.driver_name,
 | 
				
			||||||
 | 
					        co_driver_name: recordTask.co_driver_name,
 | 
				
			||||||
 | 
					        co_driver_pickup_location: recordTask.co_driver_pickup_location,
 | 
				
			||||||
 | 
					        co_driver_pickup_date: recordTask.co_driver_pickup_date
 | 
				
			||||||
 | 
					          ? dayjs(recordTask.co_driver_pickup_date)
 | 
				
			||||||
 | 
					          : null,
 | 
				
			||||||
 | 
					        co_driver_drop_date: recordTask.co_driver_drop_date
 | 
				
			||||||
 | 
					          ? dayjs(recordTask.co_driver_drop_date)
 | 
				
			||||||
 | 
					          : null,
 | 
				
			||||||
 | 
					        co_driver_drop_location: recordTask.co_driver_drop_location,
 | 
				
			||||||
 | 
					      });
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  }, [recordTask, form]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  const handleOk = async () => {
 | 
				
			||||||
 | 
					    try {
 | 
				
			||||||
 | 
					      const values = await form.validateFields();
 | 
				
			||||||
 | 
					      // Date fieldlarni string formatga o'tkazib yuboramiz
 | 
				
			||||||
 | 
					      const formattedValues = {
 | 
				
			||||||
 | 
					        ...values,
 | 
				
			||||||
 | 
					        shift_date: values.shift_date ? values.shift_date.toISOString() : null,
 | 
				
			||||||
 | 
					        pickup_date: values.pickup_date
 | 
				
			||||||
 | 
					          ? values.pickup_date.toISOString()
 | 
				
			||||||
 | 
					          : null,
 | 
				
			||||||
 | 
					        cycle_date: values.cycle_date ? values.cycle_date.toISOString() : null,
 | 
				
			||||||
 | 
					        co_driver_pickup_date: values.co_driver_pickup_date
 | 
				
			||||||
 | 
					          ? values.co_driver_pickup_date.toISOString()
 | 
				
			||||||
 | 
					          : null,
 | 
				
			||||||
 | 
					        co_driver_drop_date: values.co_driver_drop_date
 | 
				
			||||||
 | 
					          ? values.co_driver_drop_date.toISOString()
 | 
				
			||||||
 | 
					          : null,
 | 
				
			||||||
 | 
					      };
 | 
				
			||||||
 | 
					      taskController.taskPatch(formattedValues, recordTask.id);
 | 
				
			||||||
 | 
					      onCancel();
 | 
				
			||||||
 | 
					      form.resetFields();
 | 
				
			||||||
 | 
					    } catch (error) {
 | 
				
			||||||
 | 
					      console.log("Validation Failed:", error);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  return (
 | 
				
			||||||
 | 
					    <Modal
 | 
				
			||||||
 | 
					      open={open}
 | 
				
			||||||
 | 
					      title="Edit Shift & Co-Driver Data"
 | 
				
			||||||
 | 
					      okText="Save"
 | 
				
			||||||
 | 
					      cancelText="Cancel"
 | 
				
			||||||
 | 
					      onCancel={onCancel}
 | 
				
			||||||
 | 
					      onOk={handleOk}
 | 
				
			||||||
 | 
					      destroyOnClose
 | 
				
			||||||
 | 
					    >
 | 
				
			||||||
 | 
					      <Form form={form} layout="vertical">
 | 
				
			||||||
 | 
					        {/* shift */}
 | 
				
			||||||
 | 
					        <Form.Item label="Shift Date" name="shift_date">
 | 
				
			||||||
 | 
					          <DatePicker
 | 
				
			||||||
 | 
					            style={{ width: "100%" }}
 | 
				
			||||||
 | 
					            format="MM-DD-YYYY hh:mm:ss A"
 | 
				
			||||||
 | 
					            showTime={{ format: "hh:mm:ss A" }}
 | 
				
			||||||
 | 
					          />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Shift Location" name="shift_location">
 | 
				
			||||||
 | 
					          <Input placeholder="Enter location" />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {/* cycle */}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Cycle Date" name="cycle_date">
 | 
				
			||||||
 | 
					          <DatePicker
 | 
				
			||||||
 | 
					            style={{ width: "100%" }}
 | 
				
			||||||
 | 
					            format="MM-DD-YYYY hh:mm:ss A"
 | 
				
			||||||
 | 
					            showTime={{ format: "hh:mm:ss A" }}
 | 
				
			||||||
 | 
					          />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Cycle Location" name="cycle_location">
 | 
				
			||||||
 | 
					          <Input placeholder="Enter location" />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {/* pick up */}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Pick Up Date" name="pickup_date">
 | 
				
			||||||
 | 
					          <DatePicker
 | 
				
			||||||
 | 
					            style={{ width: "100%" }}
 | 
				
			||||||
 | 
					            format="MM-DD-YYYY hh:mm:ss A"
 | 
				
			||||||
 | 
					            showTime={{ format: "hh:mm:ss A" }}
 | 
				
			||||||
 | 
					          />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Pick Up Location" name="cycle_location">
 | 
				
			||||||
 | 
					          <Input placeholder="Enter location" />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        {/* co driver */}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Driver Name" name="driver_name">
 | 
				
			||||||
 | 
					          <Input placeholder="Driver name" />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Co-Driver Name" name="co_driver_name">
 | 
				
			||||||
 | 
					          <Input placeholder="Co-driver name" />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Co-Driver Pick Up Date" name="co_driver_pickup_date">
 | 
				
			||||||
 | 
					          <DatePicker
 | 
				
			||||||
 | 
					            style={{ width: "100%" }}
 | 
				
			||||||
 | 
					            format="MM-DD-YYYY hh:mm:ss A"
 | 
				
			||||||
 | 
					            showTime={{ format: "hh:mm:ss A" }}
 | 
				
			||||||
 | 
					          />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item
 | 
				
			||||||
 | 
					          label="Co-Driver Pick Up Location"
 | 
				
			||||||
 | 
					          name="co_driver_pickup_location"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          <Input placeholder="Enter pickup location" />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        <Form.Item label="Co-Driver Drop Date" name="co_driver_drop_date">
 | 
				
			||||||
 | 
					          <DatePicker
 | 
				
			||||||
 | 
					            style={{ width: "100%" }}
 | 
				
			||||||
 | 
					            format="MM-DD-YYYY hh:mm:ss A"
 | 
				
			||||||
 | 
					            showTime={{ format: "hh:mm:ss A" }}
 | 
				
			||||||
 | 
					          />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					        <Form.Item
 | 
				
			||||||
 | 
					          label="Co-Driver Drop Location"
 | 
				
			||||||
 | 
					          name="co_driver_drop_location"
 | 
				
			||||||
 | 
					        >
 | 
				
			||||||
 | 
					          <Input placeholder="Drop location" />
 | 
				
			||||||
 | 
					        </Form.Item>
 | 
				
			||||||
 | 
					      </Form>
 | 
				
			||||||
 | 
					    </Modal>
 | 
				
			||||||
 | 
					  );
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default ShiftAndCoDriverEditModal;
 | 
				
			||||||
					Loading…
					
					
				
		Reference in new issue