import { h, Component } from 'preact'; import { ListingRow } from './dashboard/listingRow'; export class ListingDashboard extends Component { state = { listings: [], orgListings: [], orgs: [], userCredits: 0, selectedListings: "user", } componentDidMount() { const t = this; const container = document.getElementById('classifieds-listings-dashboard') let listings = []; let orgs = []; let orgListings = []; listings = JSON.parse(container.dataset.listings); orgs = JSON.parse(container.dataset.orgs); orgListings = JSON.parse(container.dataset.orglistings); const userCredits = container.dataset.usercredits; t.setState({ listings, orgListings, orgs, userCredits }); } render() { const { listings, orgListings, userCredits, orgs, selectedListings } = this.state const showListings = (selected, userListings, organizationListings) => { return (selected === "user") ? userListings.map(listing => ) : organizationListings.map(listing => (listing.organization_id === selected) ? : ''); } const orgButtons = orgs.map(org => ( this.setState({selectedListings: org.id})} className={"rounded-btn " + (selectedListings === org.id ? 'active': '')}> {org.name} )) const listingLength = (selected, userListings, organizationListings) => { return (selected === "user") ? (

Listings Made: {userListings.length}

) : (

Listings Made: {organizationListings.filter((listing) => (listing.organization_id == selected)).length}

); } const creditCount = (selected, userCreds, organizations) => { return (selected === "user") ? (

Credits Available: {userCredits}

) : (

Credits Available: {organizations.find((org) => (org.id === selected)).unspent_credits_count}

); } return (
this.setState({selectedListings: "user"})} className={"rounded-btn " + (selectedListings === "user" ? 'active': '')}>Personal {orgButtons}

Listings

{listingLength(selectedListings, listings, orgListings)} Create a Listing

Credits

{creditCount(selectedListings, userCredits, orgs)} Buy Credits
{showListings(selectedListings, listings, orgListings)}
) } }