Search & show listings
This commit is contained in:
43
web/lib/handlers.js
Normal file
43
web/lib/handlers.js
Normal file
@@ -0,0 +1,43 @@
|
||||
const setMinPrice = ({type, action}, component) => {
|
||||
component.setState({
|
||||
filters: {
|
||||
minPrice: parseFloat(action.minPrice) || 0
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const viewListingDetails= ({type, action}, component) => {
|
||||
component.setState({
|
||||
listingDetails: true,
|
||||
listingId: action.id,
|
||||
descriptionExpanded: false
|
||||
})
|
||||
}
|
||||
|
||||
const listingsLoaded = ({type, action}, component) => {
|
||||
component.setState({
|
||||
listings: action.listings
|
||||
});
|
||||
}
|
||||
|
||||
const expandDescription = ({type, action}, component) => {
|
||||
component.setState({
|
||||
descriptionExpanded: true
|
||||
});
|
||||
}
|
||||
|
||||
const handlers = {
|
||||
'SET_MIN_PRICE': setMinPrice,
|
||||
'LISTINGS_LOADED': listingsLoaded,
|
||||
'EXPAND_DESCRIPTION': expandDescription,
|
||||
'VIEW_LISTING_DETAILS': viewListingDetails
|
||||
}
|
||||
|
||||
export const handleMessage = ({type, action}, component) => {
|
||||
|
||||
if (!handlers[type]) {
|
||||
throw new `Unhandled message: ${type}`;
|
||||
}
|
||||
|
||||
return handlers[type]({type, action}, component);
|
||||
}
|
||||
Reference in New Issue
Block a user