import { h } from 'preact'; import { useState, useEffect } from 'preact/hooks'; import http from './../http'; import { useSelector, useDispatch } from 'react-redux' import { State } from './../store'; enum Status { Accepted = 'Accepted', Pending = 'Pending', Declined = 'Declined', Confirmed = 'Confirmed', Complete = 'Complete', } const POSITIVE_STATUS = [Status.Accepted, Status.Confirmed, Status.Complete]; function Item({ item }) { const ws = useSelector((state: State) => state.ws); console.log(item); const statuses = Object.entries(Status).map(([label, value]) => ( )); function onChange(e) { ws.sendAcpOfferStatusSet(item.id, e.target.value); } const bold = POSITIVE_STATUS.includes(item.status) ? 'bold' : ''; return (

{item.listing.data.release.description}

{item.user.email}
{item.total}
{item.status}
); } function SellerGroup(group) { const ready = group.offers.filter(item => POSITIVE_STATUS.includes(item.status)).length; return (

{group.username} - {group.seller}

{ready} / {group.offers.length} offers

Ships: {group.mentionsAustralia && 'AU'} {group.mentionsWorldwide && 'WORLD'}

{group.offers.map(i => )}
) } function Home() { const offers = useSelector((state: State) => state.acpOffers); const ws = useSelector((state: State) => state.ws); function sync() { ws.sendAcpListingsSync(); } if (!offers.length) { return (
loading...
); } return (

{offers.map(SellerGroup)}
); } export default Home;