UNPKG

@looker/embed-components

Version:
98 lines (97 loc) 4.12 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 _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; } 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