import React, { useState, useEffect } from 'react'; import { DataView, DataViewLayoutOptions } from 'primereact/dataview'; import { Button } from 'primereact/button'; import { Dropdown } from 'primereact/dropdown'; import { Rating } from 'primereact/rating'; import { PickList } from 'primereact/picklist'; import { OrderList } from 'primereact/orderlist'; import { ProductService } from '../service/ProductService'; const ListDemo = () => { const listValue = [ { name: 'San Francisco', code: 'SF' }, { name: 'London', code: 'LDN' }, { name: 'Paris', code: 'PRS' }, { name: 'Istanbul', code: 'IST' }, { name: 'Berlin', code: 'BRL' }, { name: 'Barcelona', code: 'BRC' }, { name: 'Rome', code: 'RM' }, ]; const [picklistSourceValue, setPicklistSourceValue] = useState(listValue); const [picklistTargetValue, setPicklistTargetValue] = useState([]); const [orderlistValue, setOrderlistValue] = useState(listValue); const [dataviewValue, setDataviewValue] = useState(null); const [layout, setLayout] = useState('grid'); const [sortKey, setSortKey] = useState(null); const [sortOrder, setSortOrder] = useState(null); const [sortField, setSortField] = useState(null); const sortOptions = [ { label: 'Price High to Low', value: '!price' }, { label: 'Price Low to High', value: 'price' } ]; useEffect(() => { const productService = new ProductService(); productService.getProducts().then(data => setDataviewValue(data)); }, []); const onSortChange = (event) => { const value = event.value; if (value.indexOf('!') === 0) { setSortOrder(-1); setSortField(value.substring(1, value.length)); setSortKey(value); } else { setSortOrder(1); setSortField(value); setSortKey(value); } }; const dataviewHeader = (
setLayout(e.value)} />
); const dataviewListItem = (data) => { return (
{data.name}
{data.name}
{data.description}
{data.category}
${data.price} {data.inventoryStatus}
); }; const dataviewGridItem = (data) => { return (
{data.category}
{data.inventoryStatus}
{data.name}
{data.name}
{data.description}
${data.price}
); }; const itemTemplate = (data, layout) => { if (!data) { return; } if (layout === 'list') { return dataviewListItem(data); } else if (layout === 'grid') { return dataviewGridItem(data); } }; return (
DataView
PickList
{item.name}
} onChange={(e) => { setPicklistSourceValue(e.source); setPicklistTargetValue(e.target) }} sourceStyle={{ height: '200px' }} targetStyle={{ height: '200px' }}>
OrderList
{item.name}
} onChange={(e) => setOrderlistValue(e.value)}>
) } const comparisonFn = function (prevProps, nextProps) { return prevProps.location.pathname === nextProps.location.pathname; }; export default React.memo(ListDemo, comparisonFn);