UNPKG

react-cosmos

Version:

CLI for running React Cosmos inside webpack-powered apps

41 lines (30 loc) 1.24 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.selectedFixtureId = void 0; var _url = require("react-cosmos-shared2/url"); var _shared = require("./shared"); var selectedFixtureId = getSelectedFixtureId(); // The selected fixture ID is stored in session because components might change // the URL as a side effect. This means that after the renderer stores the // fixture ID initially, the renderer window can be refreshed and the same // fixture will be selected even if the URL no longer contains the fixture ID. exports.selectedFixtureId = selectedFixtureId; function getSelectedFixtureId() { var urlParams = (0, _url.parseRendererUrlQuery)(location.search); if (urlParams._fixtureId) { setFixtureIdToSession(urlParams._fixtureId); return urlParams._fixtureId; } return getFixtureIdFromSession(); } function setFixtureIdToSession(fixtureId) { sessionStorage.setItem('cosmosFixtureId', JSON.stringify(fixtureId)); } function getFixtureIdFromSession() { if ((0, _shared.isInsideCosmosPreviewIframe)()) { return null; } var stringifiedFixtureId = sessionStorage.getItem('cosmosFixtureId'); return stringifiedFixtureId ? JSON.parse(stringifiedFixtureId) : null; }