import { findFlatGPS, costFilter } from '../tools' export default { allFlats: (state) => state.flats, flat: (state, getters) => (id) => state.flats.find((flat) => flat.id === id), isLoading: (state) => state.loading > 0, inseeCodesFlatsBuckets: (state, getters) => (filter) => { const buckets = {} state.flats.forEach((flat) => { if (!filter || filter(flat)) { const insee = flat.flatisfy_postal_code.insee_code if (!buckets[insee]) { buckets[insee] = { name: flat.flatisfy_postal_code.name, flats: [] } } buckets[insee].flats.push(flat) } }) return buckets }, flatsMarkers: (state, getters) => (router, filter) => { const markers = [] state.flats.forEach((flat) => { if (filter && filter(flat)) { const gps = findFlatGPS(flat) if (gps) { const previousMarker = markers.find( (marker) => marker.gps[0] === gps[0] && marker.gps[1] === gps[1] ) if (previousMarker) { // randomize position a bit // gps[0] += (Math.random() - 0.5) / 500 // gps[1] += (Math.random() - 0.5) / 500 } const href = router.resolve({ name: 'details', params: { id: flat.id } }).href const cost = flat.cost ? costFilter(flat.cost, flat.currency) : '' markers.push({ title: '', content: '' + flat.title + '' + cost, gps: gps, flatId: flat.id }) } } }) return markers }, allTimeToPlaces: (state) => { const places = {} Object.keys(state.timeToPlaces).forEach((constraint) => { const constraintTimeToPlaces = state.timeToPlaces[constraint] Object.keys(constraintTimeToPlaces).forEach((name) => { places[name] = constraintTimeToPlaces[name] }) }) return places }, timeToPlaces: (state, getters) => (constraintName) => { return state.timeToPlaces[constraintName] }, metadata: (state) => state.metadata }