import type { Store } from 'redux'; import { Provider, connect } from 'react-redux'; import React from 'react'; import { Button, SpinLoaderWithLabel, Modal, ModalFooter, ModalHeader, spacing, css, Link, } from '@mongodb-js/compass-components'; import type { ExplainPlanModalState } from '../stores/explain-plan-modal-store'; import { closeExplainPlanModal } from '../stores/explain-plan-modal-store'; import { ExplainPlanView } from './explain-plan-view'; export type ExplainPlanModalProps = Partial< Pick< ExplainPlanModalState, 'isModalOpen' | 'status' | 'explainPlan' | 'rawExplainPlan' | 'error' > > & { onModalClose(): void }; const explainPlanModalContentStyles = css({ '& > div': { display: 'grid', gridTemplateColumns: '1fr', gridTemplateRows: 'auto 1fr auto', }, }); const explainPlanModalLoadingStyles = css({ flex: 1, minHeight: spacing[6] * 2, display: 'flex', alignItems: 'center', justifyContent: 'center', }); const explainPlanModalBodyStyles = css({ paddingTop: spacing[3], paddingLeft: spacing[5], paddingRight: spacing[5], overflow: 'hidden', }); const loaderContainerStyles = css({ height: '100%', display: 'flex', }); const Loader: React.FunctionComponent = () => { return (