'use client'; import { Button } from 'primereact/button'; import { Chip } from 'primereact/chip'; import { Dropdown } from 'primereact/dropdown'; import { Editor } from 'primereact/editor'; import { FileUpload, FileUploadSelectEvent, FileUploadUploadEvent, ItemTemplateOptions } from 'primereact/fileupload'; import { InputSwitch } from 'primereact/inputswitch'; import { InputText } from 'primereact/inputtext'; import { classNames } from 'primereact/utils'; import React, { useRef, useState } from 'react'; import type { Demo } from '@/types'; function NewProduct() { const colorOptions = [ { name: 'Black', background: 'bg-gray-900' }, { name: 'Orange', background: 'bg-orange-500' }, { name: 'Navy', background: 'bg-blue-500' } ]; const [product, setProduct] = useState({ name: '', price: '', code: '', sku: '', status: 'Draft', tags: ['Nike', 'Sneaker'], category: 'Sneakers', colors: [], stock: 'Sneakers', inStock: true, description: '', images: [] }); const [selectedCategory, setSelectedCategory] = useState(product.category); const [selectedStock, setSelectedStock] = useState(product.category); const categoryOptions = ['Sneakers', 'Apparel', 'Socks']; const fileUploader = useRef(null); const chipTemplate = (tag: string) => { return ( {tag} onChipRemove(tag)}> ); }; const onImageMouseOver = (ref: React.RefObject ); }; return (
Create Product
setProduct((prevState) => ({ ...prevState, name: e.target.value })) } placeholder="Product Name" />
setProduct((prevState) => ({ ...prevState, price: parseFloat(e.target.value) || undefined })) } />
setProduct((prevState) => ({ ...prevState, code: e.target.value })) } />
setProduct((prevState) => ({ ...prevState, sku: e.target.value })) } />
Publish
Status: {product.status as string}
Tags
{(product.tags as string[])?.map((tag, i) => { return chipTemplate(tag)} />; })}
Category
setSelectedCategory(e.value)} placeholder="Select a category">
Colors
{colorOptions.map((color, i) => { return (
{ onColorSelect(color.name, i); }} > {(product.colors as string[]).includes(color.name) ? : null}
); })}
Stock
setSelectedStock(e.value)} placeholder="Select stock">
In stock setProduct((prevState) => ({ ...prevState, inStock: e.value as boolean })) } >
); } export default NewProduct;