UNPKG

@looker/embed-components

Version:
97 lines (96 loc) 3.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QuickEmbed = void 0; var _react = _interopRequireWildcard(require("react")); var _components = require("@looker/components"); var _materialOutlined = require("@styled-icons/material-outlined"); var _embedServices = require("@looker/embed-services"); var _Theme = require("../Theme"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } var QuickEmbed = _ref => { var { onClose, onCopy } = _ref; var service = new _embedServices.EmbedUrl(); var [toggleValue, setToggle] = (0, _react.useState)(false); var [embedUrl, setEmbedUrl] = (0, _react.useState)(service.embedUrl(false)); var { selectedTheme } = (0, _Theme.useThemesStoreState)(); var { selectThemeAction } = (0, _Theme.useThemeActions)(); var handleCopy = () => { if (onCopy) { onCopy(); } }; var handleToggle = () => { var newToggleValue = !toggleValue; if (newToggleValue) { var urlThemeName = service.searchParams.theme; if (urlThemeName) { selectThemeAction({ key: urlThemeName }); } } setToggle(newToggleValue); }; (0, _react.useEffect)(() => { var overrides; if (service.isThemable) { overrides = { theme: selectedTheme.name }; } var newUrl = service.embedUrl(toggleValue, overrides); setEmbedUrl(newUrl); }, [toggleValue, selectedTheme]); return _react.default.createElement(_components.Section, { padding: "large" }, _react.default.createElement(_components.Heading, { as: "h3", fontWeight: "medium" }, "Get embed URL"), _react.default.createElement(_components.SpaceVertical, { pt: "medium", pb: "medium", gap: "xsmall" }, service.isThemable && _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_components.Span, { fontWeight: "normal", fontSize: "xsmall" }, "Apply theme to ", service.contentType.toLocaleLowerCase(), " URL"), _react.default.createElement(_Theme.SelectTheme, null)), _react.default.createElement(_react.default.Fragment, null, _react.default.createElement(_components.Label, { htmlFor: "embed-url", fontWeight: "normal", fontSize: "xsmall" }, "Embed URL"), _react.default.createElement(_components.InputText, { id: "embed-url", iconBefore: _react.default.createElement(_materialOutlined.Link, null), readOnly: true, value: embedUrl }))), _react.default.createElement(_components.Space, { gap: "xxsmall", fontWeight: "normal", fontSize: "small" }, _react.default.createElement(_components.ToggleSwitch, { onChange: handleToggle, on: toggleValue }), "Include current params in URL"), _react.default.createElement(_components.Space, { mt: "large", between: true }, _react.default.createElement(_components.Space, { onClick: handleCopy, width: "fit-content" }, _react.default.createElement(_components.CopyToClipboard, { content: embedUrl }, _react.default.createElement(_components.ButtonOutline, { iconBefore: _react.default.createElement(_materialOutlined.Link, null) }, "Copy Link"))), _react.default.createElement(_components.Button, { onClick: onClose }, "Close"))); }; exports.QuickEmbed = QuickEmbed; //# sourceMappingURL=QuickEmbed.js.map