Save seen listings in localStorage

This commit is contained in:
Edin Dazdarevic
2017-04-06 02:05:06 +02:00
parent 6905695958
commit 395444b67e
3 changed files with 84 additions and 10 deletions

View File

@@ -25,7 +25,16 @@ export const loadProperties = ({
//credentials: 'include'
});
//const body = await res.text();
//return JSON.parse(body);
}
export const markSeen = (id) => {
const seen = JSON.parse(window.localStorage.getItem('seen') || '[]');
seen.push(id);
window.localStorage.setItem('seen', JSON.stringify(seen));
}
export const loadSeen = (id) => {
const seen = JSON.parse(window.localStorage.getItem('seen') || '[]');
return seen;
//return seen.findIndex(s => s === id) !== -1;
}

View File

@@ -1,3 +1,5 @@
import { markSeen } from './api';
const setMaxPrice = ({ type, action }, component) => {
const maxPrice = parseFloat(action.maxPrice);
component.setState({
@@ -48,6 +50,8 @@ const viewListingDetails = ({ type, action }, component) => {
listingId: action.id,
descriptionExpanded: false,
imageIndex: 0
}, () => {
markSeen(action.id);
});
};
@@ -156,11 +160,22 @@ const setCategory = ({type, action}, component) => {
const onListingMouseOver = ({type, action}, component) => {
const marker = component.findMarker(action.id);
if (marker) {
marker.marker.setIcon(component.hoveredMarkerIcon());
const seen = component.isSeen(action.id);
if (seen) {
marker.marker.setIcon(component.visitedHoveredMarkerIcon());
} else {
marker.marker.setIcon(component.hoveredMarkerIcon());
}
marker.marker.setAnimation(google.maps.Animation.BOUNCE);
setTimeout(() => {
marker.marker.setAnimation(null);
marker.marker.setIcon(component.defaultMarkerIcon());
if (seen) {
marker.marker.setIcon(component.visitedMarkerIcon());
} else {
marker.marker.setIcon(component.defaultMarkerIcon());
}
} , 710);
}