{"version":3,"file":"ConfirmModal.mjs","sources":["../../../src/components/ConfirmModal.tsx"],"sourcesContent":["import { css } from '@emotion/css';\nimport { useRef, useEffect } from 'react';\n\nimport { type GrafanaTheme2 } from '@grafana/data';\nimport { t, Trans } from '@grafana/i18n';\nimport { Button, Icon, Modal, useStyles2 } from '@grafana/ui';\n\ntype ConfirmModalProps = {\n  isOpen: boolean;\n  onCancel?: () => void;\n  onDiscard?: () => void;\n  onCopy?: () => void;\n};\nexport function ConfirmModal({ isOpen, onCancel, onDiscard, onCopy }: ConfirmModalProps) {\n  const buttonRef = useRef<HTMLButtonElement>(null);\n  const styles = useStyles2(getStyles);\n\n  // Moved from grafana/ui\n  useEffect(() => {\n    // for some reason autoFocus property did no work on this button, but this does\n    if (isOpen) {\n      buttonRef.current?.focus();\n    }\n  }, [isOpen]);\n\n  return (\n    <Modal\n      title={\n        <div className={styles.modalHeaderTitle}>\n          <Icon name=\"exclamation-triangle\" size=\"lg\" />\n          <span className={styles.titleText}>\n            <Trans i18nKey=\"grafana-sql.components.confirm-modal.warning\">Warning</Trans>\n          </span>\n        </div>\n      }\n      ariaLabel={t('grafana-sql.components.confirm-modal.warning', 'Warning')}\n      onDismiss={onCancel}\n      isOpen={isOpen}\n    >\n      <p>\n        <Trans i18nKey=\"grafana-sql.components.confirm-modal.builder-mode\">\n          Builder mode does not display changes made in code. The query builder will display the last changes you made\n          in builder mode.\n        </Trans>\n      </p>\n      <p>\n        <Trans i18nKey=\"grafana-sql.components.confirm-modal.clipboard\">\n          Do you want to copy your code to the clipboard?\n        </Trans>\n      </p>\n      <Modal.ButtonRow>\n        <Button type=\"button\" variant=\"secondary\" onClick={onCancel} fill=\"outline\">\n          <Trans i18nKey=\"grafana-sql.components.confirm-modal.cancel\">Cancel</Trans>\n        </Button>\n        <Button variant=\"destructive\" type=\"button\" onClick={onDiscard} ref={buttonRef}>\n          <Trans i18nKey=\"grafana-sql.components.confirm-modal.discard-code-and-switch\">Discard code and switch</Trans>\n        </Button>\n        <Button variant=\"primary\" onClick={onCopy}>\n          <Trans i18nKey=\"grafana-sql.components.confirm-modal.copy-code-and-switch\">Copy code and switch</Trans>\n        </Button>\n      </Modal.ButtonRow>\n    </Modal>\n  );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  titleText: css({\n    paddingLeft: theme.spacing(2),\n  }),\n  modalHeaderTitle: css({\n    fontSize: theme.typography.size.lg,\n    float: 'left',\n    paddingTop: theme.spacing(1),\n    margin: theme.spacing(0, 2),\n  }),\n});\n"],"names":[],"mappings":"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"}