rn home offers
This commit is contained in:
1 parent
acf7e54be9
commit
6b8ebe3f35
1 file changed
+41
@@ -0,0 +1,41 @@
|
|||||||
|
import { h } from 'preact';
|
||||||
|
import { useState, useEffect } from 'preact/hooks';
|
||||||
|
import { route } from 'preact-router';
|
||||||
|
import { useSelector, useDispatch } from 'react-redux'
|
||||||
|
|
||||||
|
import http from './../http';
|
||||||
|
import { State, offersState } from './../store';
|
||||||
|
|
||||||
|
import Offer from './../components/offer';
|
||||||
|
|
||||||
|
function Home() {
|
||||||
|
const dispatch = useDispatch()
|
||||||
|
const offers = useSelector((state: State) => state.offers);
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
async function getOffers() {
|
||||||
|
const [error, offers] = await http.getOffers();
|
||||||
|
if (error) return console.error(error);
|
||||||
|
dispatch(offersState.actions.set(offers));
|
||||||
|
if (offers.length === 0) route('/search');
|
||||||
|
}
|
||||||
|
getOffers();
|
||||||
|
}, []);
|
||||||
|
|
||||||
|
if (!offers.length) {
|
||||||
|
return (
|
||||||
|
<div class={'offers'}>
|
||||||
|
loading...
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div class={'offers'}>
|
||||||
|
{offers.map(Offer)}
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
export default Home;
|
||||||
Reference in new issue
Block a user