Your IP : 3.144.98.43


Current Path : /var/www/www-root/data/www/monolith-realty.ru/bitrix/js/landing/history/src/internal/
Upload File :
Current File : /var/www/www-root/data/www/monolith-realty.ru/bitrix/js/landing/history/src/internal/save-stack.js

import {Type} from 'main.core';
import {Main} from 'landing.main';
import asyncJsonParse from './async-json-parse';
import asyncJsonStringify from './async-json-stringify';
import type {History} from '../history';

/**
 * Saves history to storage
 * @param {History} history
 * @return {Promise<History>}
 */
// todo: del
export default function saveStack(history: History): Promise<History>
{
	let currentPageId;

	try
	{
		currentPageId = Main.getInstance().id;
	}
	catch (err)
	{
		currentPageId = -1;
	}

	return asyncJsonParse(window.localStorage.history)
		.then((historyData) => {
			return Type.isPlainObject(historyData) ? historyData : {};
		})
		.then((all) => {
			all[currentPageId] = {};
			all[currentPageId].stack = history.stack;
			all[currentPageId].step = history.step;
			return all;
		})
		.then(asyncJsonStringify)
		.then((allString) => {
			window.localStorage.history = allString;
			return history;
		});
}