const createJob = () => {
const values = Object.values(Brand);
if (showCreatejob) {
return (
<div className="flex flex-col">
<p><b>Create New Job</b></p> <br/>
<label>JOB ID : {jobid}</label>
<br/>
<label>Manual Job Number : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="manualcode"
id="manualcode"
required
value={manualjobcode}
onChange={(e) => setManualjobcode(e.target.value)}
/>
<br></br>
<label><b>Product Details</b></label>
<br/>
<label>Brand : </label>
<select
name="inventoryType"
className="border-b-[1px] px-4 py-2 w-1/4"
value={brand}
onChange={(e) => {
setBrand(e.target.value);
console.log("Brand ",e.target.value);
}}
>
{values.map((item, index) => (
<option>{item}</option>
))}
</select>
<br></br>
{brand == "KIESLECT" && (
<div>
<label>Serial No : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="imei1"
id="imei1"
required
value={imei}
onChange={(e) => setImei(String(e.target.value))}
/> </div>
)}
{brand != "KIESLECT" && (
<div>
<label>IMEI : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="imei1"
id="imei1"
required
value={imei}
onChange={(e) => setImei(Number(e.target.value))}
/> </div>
)}
<button className="transition-transform transform active:scale-
95 float-right bg-blue-500 rounded text-white py-1 px-4"
onClick={getDataPoova}>Get Phone Data / Warranty Data</button>
<br></br>
{viewGetDataPoova()}
<label>Previous Jobs : </label>
<br/>
<textarea disabled={true} value={getPrvJobValues()}
name="Text133"
cols={50} rows={4}></textarea>
<label>Warranty : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="warranty"
id="warranty"
required
value={warrenty}
onChange={(e) => setWarrenty(e.target.value)}
/>
<br/>
<label>Warranty Notes : </label> <br></br>
<textarea value={warrentyNote} onChange={(e) =>
setWarrentyNote(e.target.value)} name="Text54"
cols={50} rows={4}></textarea>
<br></br>
<label>Dealer Name : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="dealername"
id="dealername"
required
value={dealerName}
onChange={(e) => setDealerName(e.target.value)}
/>
<br></br>
<label>Dealer Address : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="dealeraddress"
id="dealeraddress"
required
value={dealerAddress}
onChange={(e) => setDealerAddress(e.target.value)}
/>
<br></br>
<label>Dealer Contact : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="dealercontact"
id="dealercontact"
required
value={dealerContact}
onChange={(e) => setDealerContact(e.target.value)}
/>
<br></br>
<label>Customer Handover : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="date"
name="cusHandover"
id="cusHandover"
required
value={cusHandover}
onChange={(e) => setCusHandover(e.target.value)}
/>
<br></br>
<label>Item Received On : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="date"
name="itemreceivedOn"
id="itemreceivedOn"
required
value={itemReceivedOn}
onChange={(e) => setItemReceivedOn(e.target.value)}
/>
<br></br>
<label><b>Customer Details</b></label>
<br/>
<label>Customer Name : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="name"
id="name"
required
value={cusName}
onChange={(e) => setCusName(e.target.value)}
/>
<br></br>
<label>Customer Telephone : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="telephone"
id="telephone"
required
value={cusNumber}
onChange={(e) => setCusNumber(e.target.value)}
/>
<br></br>
<label>Customer Address : </label>
<input
className="border-b-[1px] px-4 py-2 w-1/4 rounded"
type="text"
name="address"
id="address"
required
value={cusAddress}
onChange={(e) => setCusAddress(e.target.value)}
/>
<br></br>
<label>Nature of the complaint as reported by the customer :
</label>
{selectItem(faults, fault, setFault, cusComplaint,
setCusComplaint)}
<textarea value={cusComplaint} onChange={(e) =>
setCusComplaint(e.target.value)} name="Text1"
cols={50} rows={4}></textarea>
<br></br>
<label>Physical condition of the phone when received :
</label>
{selectItem(pConditions, selCondition, setSelCondition,
condition, setCondition)}
<textarea value={condition} onChange={(e) =>
setCondition(e.target.value)} name="Text2"
cols={50} rows={4}></textarea>
<br></br>
<label>Received items : </label>
{selectItem(receivedItemsList, selRecvdItem, setSelRecvdItem,
recvdItems, setRecvdItems)}
<textarea value={recvdItems} onChange={(e) =>
setRecvdItems(e.target.value)} name="Text3"
cols={50} rows={4}></textarea>
<br></br>
<label>Notes : </label> <br></br>
<textarea value={notes} onChange={(e) =>
setNotes(e.target.value)} name="Text3"
cols={50} rows={4}></textarea>
<br></br>
<label><b>Service Engineer</b></label> <br></br>
<label>Select Engineer</label>
<select
name="selectegineer"
className="border-b-[1px] px-4 py-2 w-1/4"
value={engineer}
onChange={(e) => {
if (e.target.value) {
setEngineer(e.target.value);
setEngineerObj(JSON.parse(e.target.value));
}
}}
>
<option></option>
{engineers.map((item: any) => (
<option value={JSON.stringify(item)}
key={item.id}>{item.username} -
Jobs {item.jobs}</option>
))}
</select>
<br/> <br/>
<div>
<h1><b>Upload Images</b></h1>
{uploadProgress && (<p>Uploading... </p>)}
<br/>
<ImageUploader setURLs={pushPhotoUrl}
setProgress={setUploadProgress}/>
<br/>
</div>
{uploadProgress && (
<p>Uploading...</p>
)}
<button disabled={uploadProgress} onClick={submitJob}
className="transition-transform transform active:scale-
95 bg-blue-500 rounded text-white py-1 px-4">Submit
</button>
<button onClick={resetJob}
className="transition-transform transform active:scale-
95 bg-blue-500 rounded text-white py-1 px-4">Cancel
</button>
</div>
);
}
}
-----------------------------------
import { useState } from 'react';
export default function JobForm() {
const [formData, setFormData] = useState({
jobNumber: '',
brand: 'Sony',
notes: '',
});
const handleChange = (e) => {
const { name, value } = e.target;
setFormData((prev) => ({
...prev,
[name]: value,
}));
};
const handleSubmit = (e) => {
e.preventDefault();
console.log('Form Data Submitted:', formData);
};
return (
<div className="max-w-md mx-auto mt-10 p-4 border rounded-lg shadow-lg">
<h2 className="text-xl font-semibold mb-6">Enter Job Details</h2>
<form onSubmit={handleSubmit}>
<div className="mb-6">
<label className="block font-medium">Job Number:</label>
<input
type="text"
name="jobNumber"
value={formData.jobNumber}
onChange={handleChange}
className="w-full p-2 border rounded"
required
/>
</div>
<div className="mb-6">
<label className="block font-medium">Brand:</label>
<select
name="brand"
value={formData.brand}
onChange={handleChange}
className="w-full p-2 border rounded"
>
<option value="Sony">Sony</option>
<option value="Nokia">Nokia</option>
<option value="Apple">Apple</option>
</select>
</div>
<div className="mb-6">
<label className="block font-medium">Notes:</label>
<textarea
name="notes"
value={formData.notes}
onChange={handleChange}
className="w-full p-2 border rounded"
/>
</div>
<button
type="submit"
className="w-full p-2 bg-blue-600 text-white rounded hover:bg-blue-700"
>
Submit
</button>
</form>
</div>
);
}
create a nextjs page that allows the user to enter following data,
job number - an input box,
brand - a select box with items Sony, Nokia, Apple,
notes - a text area box,
a submit button