UNPKG

2.19 kBJavaScriptView Raw
1"use strict";
2
3require("core-js/modules/es.array.concat");
4
5require("core-js/modules/es.array.iterator");
6
7require("core-js/modules/es.object.to-string");
8
9require("core-js/modules/web.dom-collections.iterator");
10
11Object.defineProperty(exports, "__esModule", {
12 value: true
13});
14exports.withBackground = void 0;
15
16var _addons = require("@storybook/addons");
17
18var _constants = require("../constants");
19
20var _helpers = require("../helpers");
21
22var withBackground = function withBackground(StoryFn, context) {
23 var _globals$BACKGROUNDS_;
24
25 var globals = context.globals,
26 parameters = context.parameters;
27 var globalsBackgroundColor = (_globals$BACKGROUNDS_ = globals[_constants.PARAM_KEY]) === null || _globals$BACKGROUNDS_ === void 0 ? void 0 : _globals$BACKGROUNDS_.value;
28 var backgroundsConfig = parameters[_constants.PARAM_KEY];
29 var selectedBackgroundColor = (0, _addons.useMemo)(function () {
30 if (backgroundsConfig.disable) {
31 return 'transparent';
32 }
33
34 return (0, _helpers.getBackgroundColorByName)(globalsBackgroundColor, backgroundsConfig.values, backgroundsConfig["default"]);
35 }, [backgroundsConfig, globalsBackgroundColor]);
36 var isActive = (0, _addons.useMemo)(function () {
37 return selectedBackgroundColor && selectedBackgroundColor !== 'transparent';
38 }, [selectedBackgroundColor]);
39 var selector = context.viewMode === 'docs' ? "#anchor--".concat(context.id, " .docs-story") : '.sb-show-main';
40 var backgroundStyles = (0, _addons.useMemo)(function () {
41 return "\n ".concat(selector, " {\n background: ").concat(selectedBackgroundColor, " !important;\n transition: background-color 0.3s;\n }\n ");
42 }, [selectedBackgroundColor, selector]);
43 (0, _addons.useEffect)(function () {
44 var selectorId = context.viewMode === 'docs' ? "addon-backgrounds-docs-".concat(context.id) : "addon-backgrounds-color";
45
46 if (!isActive) {
47 (0, _helpers.clearStyles)(selectorId);
48 return;
49 }
50
51 (0, _helpers.addBackgroundStyle)(selectorId, backgroundStyles, context.viewMode === 'docs' ? context.id : null);
52 }, [isActive, backgroundStyles, context]);
53 return StoryFn();
54};
55
56exports.withBackground = withBackground;
\No newline at end of file