'use client' import classnames from 'classnames' import React, { ChangeEvent, use, useState } from 'react' import Image from 'next/image' import { useSession } from 'next-auth/react' import { useRouter } from 'next/navigation' import 'react-quill/dist/quill.snow.css'; import ReactQuill from 'react-quill' const SubmitPost = () => { const { data: session, status } = useSession() const [file, setFile] = useState() const [fileName, setFileName] = useState(null) const [success, setSuccess] = useState(false) const [title, setTitle] = useState('') const [prompt, setPrompt] = useState('') const [value, setValue] = useState('') const [posting, setPosting] = useState(false) const router = useRouter() const handleImageChange = (event: any) => { setFile(event.target.files[0]) for (var i = 0; i < event.target.files.length; ++i) { var name = event.target.files.item(i).name setFileName(name) } } const handleSubmit = async (event: { preventDefault: () => void }) => { event.preventDefault() setPosting(true) const url = 'https://api.cloudinary.com/v1_1/setago/raw/upload' const formData = new FormData() formData.append('file', file) formData.append('upload_preset', 'setago') const res = await fetch(url, { method: 'POST', body: formData, }) const fileone = await res.json() if (status === 'authenticated') { } const data = await fetch('/api/post', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({ email: session?.user?.email?.toString(), title: title, content: value, prompt: prompt, imageUrl: fileone.secure_url, }), }) if (data.status === 200) { setSuccess(true) setTitle('') setPrompt('') setValue('') setFileName(null) setPosting(false) //refresh page // window.location.reload() router.refresh() } } const handleTitleInput = (event: any) => { event.preventDefault() setTitle(event.target.value) } const handlePromptInput = (event: any) => { event.preventDefault() setPrompt(event.target.value) } function handleContentInput(event: ChangeEvent): void { event.preventDefault() setValue(event.target.value) } return ( <>
Make A New Post
Non-Fictional Tech News, Recipes, Travel Guides etc
handleImageChange(event)} style={{ display: 'none' }} className='outline-0' />
{fileName}