Files
old-kivi/web/src/index.js
2017-11-06 14:38:47 +01:00

85 lines
1.9 KiB
JavaScript

import React from 'react';
import {render} from 'react-dom';
import Main from './components/Main';
import Welcome from './components/Welcome';
const getInitialState = url => {
const params = window.location.search.substr (1).split ('&');
const initialState = {
rooms: {},
category: {},
};
for (const param of params) {
const [key, value] = param.split ('=');
if (key === 'rooms' && value !== '') {
initialState.rooms = {};
value.split (',').forEach (k => {
initialState.rooms[parseInt (k)] = true;
});
}
if (key === 'category' && value !== '') {
initialState.category = {};
value.split (',').forEach (k => {
initialState.category[parseInt (k)] = true;
});
}
if (key === 'sort') {
initialState.sort = value;
}
if (key === 'bounds') {
initialState.bounds = value;
}
if (key === 'listingId') {
initialState.listingId = value;
}
if (key === 'adType') {
initialState.adType = value;
}
if (key === 'zoom') {
initialState.zoom = parseInt (value);
}
if (['minSize', 'maxSize', 'minPrice', 'maxPrice'].includes (key)) {
initialState[key] = parseFloat (value);
}
}
return initialState;
};
const root = document.getElementById ('root');
const initialState = getInitialState (window.location);
const renderMain = (additionalState = {}) => {
const main = <Main initialState={{...initialState, ...additionalState}} />;
render (main, root);
};
//renderMain ();
// disable temp
if (
Object.keys (initialState).length === 2 &&
window.localStorage.getItem ('lastLoad') == null
) {
const onSearch = ({adType}) => {
console.log("onSearch()");
//window.location = `/?adType=${adType}`;
renderMain({adType})
};
const welcome = <Welcome onSearch={onSearch} />;
render (welcome, root);
} else {
renderMain ();
}