Home Reference Source Repository

src/persistState.js

/**
 * load last State
 * @return {object} saved state
 */
export const loadState = () => {
	const url = window.location.search;
	if(url.length>10) {
		try {
			const url = window.location.search;
			const urlstring = decodeURIComponent(url.slice(6)).replace(/\;/g,':');
			return JSON.parse(urlstring);
		} catch (e) {
			//redirect to 404
		}
	}

	try{
		const serializedState=localStorage.getItem("state");
		if(serializedState === null){
			return undefined;
		}
		return JSON.parse(serializedState);
	}catch(err){
		return undefined;
	}
};
/**
 * change browser url to new state and reload it
 */
export const setUrlByState = () => {
	var state=window.getStoreState();
	window.location.search="?data="+encodeURIComponent(JSON.stringify(state));
};

/**
 * save last State
 */
export const saveState = (state) => {
	try{
		localStorage.setItem("state",JSON.stringify(state));
	}
	catch(err){}
};