import React, { useState } from 'react';
import { Button, Form, Spinner, Card, Alert } from 'react-bootstrap';
import { toast } from 'react-toastify';
import './style.css';

const VideoUpload = ({ onVideoSelected }) => {
  const [videoFile, setVideoFile] = useState(null);
  const [loading, setLoading] = useState(false);
  const [videoFileName, setVideoFileName] = useState('');

  // 处理视频文件选择
  const handleVideoFileChange = (e) => {
    const selectedFile = e.target.files[0];
    if (selectedFile) {
      // 检查文件类型
      if (!selectedFile.type.startsWith('video/')) {
        toast.error('请选择有效的视频文件');
        return;
      }
      
      setVideoFile(selectedFile);
      setVideoFileName(selectedFile.name);
      
      // 调用回调函数将视频文件传递给父组件
      if (typeof onVideoSelected === 'function') {
        onVideoSelected(selectedFile);
      }
      
      toast.success('视频文件已选择');
    }
  };

  return (
    <div className="video-upload-container">
      <Card>
        <Card.Header as="h5">上传视频（必选）</Card.Header>
        <Card.Body>
          <Alert variant="info">
            请上传项目需要的视频文件。音频和视频文件都是创建项目所必需的。
          </Alert>
          <Form>
            <Form.Group controlId="videoFile" className="mb-3">
              <Form.Label>选择视频文件</Form.Label>
              <div className="custom-file-upload">
                <input
                  type="file"
                  accept="video/*"
                  onChange={handleVideoFileChange}
                  id="video-file-input"
                  className="d-none"
                  required
                />
                <div className="file-upload-box">
                  <Button 
                    variant="outline-primary" 
                    onClick={() => document.getElementById('video-file-input').click()}
                  >
                    选择视频
                  </Button>
                  <span className="ml-2">{videoFileName || '未选择视频文件'}</span>
                </div>
              </div>
              {!videoFile && (
                <Form.Text className="text-danger">
                  请上传视频文件，这是必选项
                </Form.Text>
              )}
              {videoFile && (
                <Form.Text className="text-success">
                  视频文件已选择 ✓
                </Form.Text>
              )}
            </Form.Group>
          </Form>
        </Card.Body>
      </Card>
    </div>
  );
};

export default VideoUpload; 