@storybook/react-native-server
Version:
A better way to develop React Native Components for your app
84 lines (83 loc) • 3.62 kB
JavaScript
;
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
if (typeof b !== "function" && b !== null)
throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
var react_1 = __importDefault(require("react"));
var api_1 = require("@storybook/api");
var ui_1 = require("@storybook/ui");
var channel_websocket_1 = __importDefault(require("@storybook/channel-websocket"));
var addons_1 = require("@storybook/addons");
var core_events_1 = __importDefault(require("@storybook/core-events"));
var uuid_1 = __importDefault(require("uuid"));
var PreviewHelp_1 = __importDefault(require("./components/PreviewHelp"));
var mapper = function (_a) {
var state = _a.state, api = _a.api;
return ({
api: api,
storiesHash: state.storiesHash,
storyId: state.storyId,
viewMode: state.viewMode,
});
};
var ReactProvider = /** @class */ (function (_super) {
__extends(ReactProvider, _super);
function ReactProvider(_a) {
var domain = _a.url, options = _a.options;
var _this = _super.call(this) || this;
var secured = options.secured, host = options.host, port = options.port;
var websocketType = secured ? 'wss' : 'ws';
var url = "".concat(websocketType, "://").concat(domain);
if (options.manualId) {
_this.pairedId = (0, uuid_1.default)();
url += "/pairedId=".concat(_this.pairedId);
}
var channel = _this.channel || (0, channel_websocket_1.default)({ url: url });
addons_1.addons.setChannel(channel);
channel.emit(core_events_1.default.CHANNEL_CREATED, {
host: host,
pairedId: _this.pairedId,
port: port,
secured: secured,
});
_this.addons = addons_1.addons;
_this.channel = channel;
_this.options = options;
return _this;
}
ReactProvider.prototype.getElements = function (type) {
return addons_1.addons.getElements(type);
};
ReactProvider.prototype.getConfig = function () {
return this.addons.getConfig();
};
ReactProvider.prototype.renderPreview = function () {
return (react_1.default.createElement(api_1.Consumer, { filter: mapper, pure: true }, function (_a) {
var storiesHash = _a.storiesHash, storyId = _a.storyId, api = _a.api, viewMode = _a.viewMode;
if (storiesHash[storyId]) {
api.emit(core_events_1.default.SET_CURRENT_STORY, { storyId: storyId });
}
return viewMode === 'story' ? react_1.default.createElement(PreviewHelp_1.default, null) : null;
}));
};
ReactProvider.prototype.handleAPI = function (api) {
addons_1.addons.loadAddons(api);
};
return ReactProvider;
}(ui_1.Provider));
exports.default = ReactProvider;