import React, {useState} from 'react';
import {
  Modal,
  View,
  Text,
  TextInput,
  TouchableOpacity,
  StyleSheet,
  Image,
} from 'react-native';
import R from '../../assets/R';

const WorkReportModal = ({visible, onClose, onSubmit}) => {
  const [reportContent, setReportContent] = useState('');

  const handleSubmit = () => {
    if (reportContent.trim()) {
      onSubmit(reportContent);
      setReportContent('');
      onClose();
    }
  };

  const handleCancel = () => {
    setReportContent('');
    onClose();
  };

  return (
    <Modal
      visible={visible}
      transparent={true}
      animationType="slide"
      onRequestClose={onClose}>
      <View style={styles.overlay}>
        <View style={styles.modalContainer}>
          <Text style={styles.title}>Báo cáo công việc</Text>
          
          <Text style={styles.label}>Nội dung báo cáo *</Text>
          <TextInput
            style={styles.textInput}
            multiline={true}
            numberOfLines={6}
            placeholder="Nhập nội dung báo cáo..."
            value={reportContent}
            onChangeText={setReportContent}
            textAlignVertical="top"
          />

          <Text style={styles.label}>Tài liệu đính kèm</Text>
          <TouchableOpacity style={styles.attachmentContainer}>
            <Image source={R.images.icUpload} style={styles.uploadIcon} />
            <Text style={styles.attachmentText}>Thêm tài liệu</Text>
          </TouchableOpacity>

          <View style={styles.buttonContainer}>
            <TouchableOpacity style={styles.cancelButton} onPress={handleCancel}>
              <Text style={styles.cancelButtonText}>Hủy</Text>
            </TouchableOpacity>
            <TouchableOpacity 
              style={[styles.submitButton, !reportContent.trim() && styles.disabledButton]} 
              onPress={handleSubmit}
              disabled={!reportContent.trim()}>
              <Text style={styles.submitButtonText}>Báo cáo</Text>
            </TouchableOpacity>
          </View>
        </View>
      </View>
    </Modal>
  );
};

const styles = StyleSheet.create({
  overlay: {
    flex: 1,
    backgroundColor: 'rgba(0, 0, 0, 0.5)',
    justifyContent: 'center',
    alignItems: 'center',
  },
  modalContainer: {
    backgroundColor: 'white',
    borderRadius: 12,
    padding: 20,
    width: '90%',
    maxWidth: 400,
  },
  title: {
    fontSize: 18,
    fontWeight: '600',
    color: R.colors.blue,
    textAlign: 'center',
    marginBottom: 20,
  },
  label: {
    fontSize: 14,
    fontWeight: '500',
    color: R.colors.black,
    marginBottom: 8,
  },
  textInput: {
    borderWidth: 1,
    borderColor: R.colors.gray,
    borderRadius: 8,
    padding: 12,
    fontSize: 14,
    color: R.colors.black,
    marginBottom: 16,
    minHeight: 120,
  },
  attachmentContainer: {
    borderWidth: 1,
    borderColor: R.colors.gray,
    borderRadius: 8,
    borderStyle: 'dashed',
    padding: 20,
    alignItems: 'center',
    marginBottom: 20,
  },
  uploadIcon: {
    width: 40,
    height: 40,
    tintColor: R.colors.blue,
    marginBottom: 8,
  },
  attachmentText: {
    fontSize: 14,
    color: R.colors.blue,
    fontWeight: '500',
  },
  buttonContainer: {
    flexDirection: 'row',
    justifyContent: 'space-between',
    gap: 12,
  },
  cancelButton: {
    flex: 1,
    backgroundColor: R.colors.orange,
    borderRadius: 8,
    paddingVertical: 12,
    alignItems: 'center',
  },
  submitButton: {
    flex: 1,
    backgroundColor: R.colors.blue,
    borderRadius: 8,
    paddingVertical: 12,
    alignItems: 'center',
  },
  disabledButton: {
    backgroundColor: R.colors.gray,
  },
  cancelButtonText: {
    color: 'white',
    fontSize: 16,
    fontWeight: '600',
  },
  submitButtonText: {
    color: 'white',
    fontSize: 16,
    fontWeight: '600',
  },
});

export default WorkReportModal;
