Untitled

mail@pastecode.io avatar
unknown
javascript
3 years ago
2.9 kB
3
Indexable
Never
/* eslint-disable jsx-a11y/alt-text */
/* eslint-disable @next/next/no-img-element */
/* eslint-disable react-hooks/rules-of-hooks */
import React, {useState} from 'react'
import { collection, addDoc } from 'firebase/firestore';
import { db, storage, storageRef  } from '../src/config/firebase.config'
import dynamic from 'next/dynamic';
const ReactQuill = dynamic(() => import("react-quill"), { ssr: false });
import 'react-quill/dist/quill.snow.css';
import ImageUpload from '../components/ImageUpload'
import firebase from 'firebase/compat/app';
import 'firebase/compat/auth';
import 'firebase/compat/firestore';
import 'firebase/compat/storage';

function newJob() {
  const [value, setValue] = useState('');
  const [newClient, setNewClient] = useState("");
  const [newContact, setNewContact] = useState(0);
  const [newDesc, setNewDesc] = useState("");
  const [image, setImage] = useState(null);

  
  const handleChange = e => {
      if(e.target.files[0]) {
          setImage(e.target.files[0]);
      }
  }

  const handleUpload = () => {
    const ref = storage.ref(`/images/${image.name}`);
    const uploadTask = ref.put(image);
    uploadTask.on("state_changed", console.log, console.error, () => {
      getRef
        .getDownloadURL()
        .then((url) => {
          setFile(null);
          setURL(url);
        });
    });

  }

  const jobsCollectionRef = collection(db, "jobs");

  const createJob = async () => {
    
    await addDoc(jobsCollectionRef, { 
      client: newClient, 
      contact: Number(newContact), 
      description: newDesc
     });
    window.location.pathname="/jobs";
  }
  return (
    <div className='wrapper'>
      <div>
        <h1>Job Information</h1>
        <hr/>
      </div>
      
      <label>Upload Cover Photo</label>
      <div style={{width:"100%",marginBottom:"15px",marginTop:"15px"}}>
        <ImageUpload image={image} handleChange={handleChange} handleUpload={handleUpload} />
      </div>
      
      <hr />
      <label>Client</label>
      <input type="text" onChange={(event) => {setNewClient(event.target.value)}} placeholder="Client.."/>
      <label>Contact</label>
      <input type="tel" placeholder="Contact.." onChange={(event) => {setNewContact(event.target.value)}}/>
      <label>Template</label>
      <select>
        <option>Sample Template</option>
      </select>
      <label>Description</label>
      <ReactQuill value={newDesc} onChange={setNewDesc}/>
      <button type="submit" onClick={createJob}>Save</button>
      
      <style jsx>{`
        .wrapper {
          padding: 15px 0;
        }
        input {
          width: 100%;
          margin-bottom: 15px;
        }

        select {
          margin-bottom: 15px;
          width: 100%;
        }
      `}</style>
    </div>
  )
}

export default newJob