You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
74 lines
2.5 KiB
74 lines
2.5 KiB
import { useRef } from 'react';
|
|
import App from '../components/App'
|
|
|
|
import { collection, query, orderBy } from '@firebase/firestore';
|
|
import { useFirestore, useFirestoreCollectionData } from 'reactfire';
|
|
|
|
export default function Home() {
|
|
const firestore = useFirestore();
|
|
const questionnaireCollection = collection(firestore, 'questionnaire');
|
|
const questionnaireQuery = query(questionnaireCollection, orderBy('created', 'desc'));
|
|
|
|
const { status, data: questionnaire } = useFirestoreCollectionData(questionnaireQuery, {
|
|
idField: 'id', // this field will be added to the object created from each document
|
|
});
|
|
|
|
const Q1Ref = useRef();
|
|
|
|
async function handleSubmit(event) {
|
|
event.preventDefault();
|
|
|
|
let body = JSON.stringify({
|
|
Q1: Q1Ref.current.value,
|
|
});
|
|
try {
|
|
let r = await fetch("/api/addQuestionnaire", {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
'Content-Length': body.length.toString(),
|
|
},
|
|
body: body,
|
|
});
|
|
let data = await r.json();
|
|
console.log(data);
|
|
}
|
|
catch (e) {
|
|
console.error(e);
|
|
}
|
|
console.log(Q1Ref.current.value);
|
|
}
|
|
|
|
return (
|
|
<App>
|
|
<div className="artboard phone-1 rounded-lg border-0 flex flex-col p-2 gap-4">
|
|
<form className="form-control w-full max-w-xs gap-2" onSubmit={handleSubmit}>
|
|
<label className="label">
|
|
<span className="label-text">你最喜歡的科幻/奇幻作品是哪一個?</span>
|
|
{/* <span class="label-text-alt">Alt label</span> */}
|
|
</label>
|
|
{/* <select className="select select-bordered" value="Pick one" onChange={handleChange}> */}
|
|
<select className="select select-bordered" ref={Q1Ref}>
|
|
<option disabled selected>Pick one</option>
|
|
<option>Star Wars</option>
|
|
<option>Harry Potter</option>
|
|
<option>Lord of the Rings</option>
|
|
<option>Planet of the Apes</option>
|
|
<option>Star Trek</option>
|
|
</select>
|
|
<input className="btn" type="submit" value="Submit" />
|
|
{/* <label class="label">
|
|
<span class="label-text-alt">Alt label</span>
|
|
<span class="label-text-alt">Alt label</span>
|
|
</label> */}
|
|
</form>
|
|
{/* <button className="btn" onClick={() => console.log("test")}>Button</button> */}
|
|
{
|
|
status == 'success' && questionnaire.map(q => (
|
|
<div key={q.id} className=' '>{q.Q1}</div>
|
|
))
|
|
}
|
|
</div>
|
|
</App>
|
|
)
|
|
}
|
|
|