import React from "react"; import PropTypes from "prop-types"; import Alert from "antd/lib/alert"; import Button from "antd/lib/button"; import Checkbox from "antd/lib/checkbox"; import Form from "antd/lib/form"; import InputNumber from "antd/lib/input-number"; import Modal from "antd/lib/modal"; import { wrap as wrapDialog, DialogPropType } from "@/components/DialogWrapper"; import { clientConfig } from "@/services/auth"; import CodeBlock from "@/components/CodeBlock"; import "./EmbedQueryDialog.less"; class EmbedQueryDialog extends React.Component { static propTypes = { dialog: DialogPropType.isRequired, query: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types visualization: PropTypes.object.isRequired, // eslint-disable-line react/forbid-prop-types }; state = { enableChangeIframeSize: false, iframeWidth: 720, iframeHeight: 391, }; constructor(props) { super(props); const { query, visualization } = props; this.embedUrl = `${clientConfig.basePath}embed/query/${query.id}/visualization/${visualization.id}?api_key=${ query.api_key }&${query.getParameters().toUrlParams()}`; if (window.snapshotUrlBuilder) { this.snapshotUrl = window.snapshotUrlBuilder(query, visualization); } } render() { const { query, dialog } = this.props; const { enableChangeIframeSize, iframeWidth, iframeHeight } = this.state; return ( Close}> {query.is_safe ? (
Public URL
{this.embedUrl}
IFrame Embed
{``}
this.setState({ enableChangeIframeSize: e.target.checked })} /> this.setState({ iframeWidth: value })} size="small" disabled={!enableChangeIframeSize} /> this.setState({ iframeHeight: value })} size="small" disabled={!enableChangeIframeSize} />
{this.snapshotUrl && (
Image Embed
{this.snapshotUrl}
)}
) : ( )}
); } } export default wrapDialog(EmbedQueryDialog);