react-cosmos
Version:
CLI for running React Cosmos inside webpack-powered apps
41 lines (30 loc) • 1.24 kB
JavaScript
;
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;
}