import React from 'react';
import {
selectAllHealthcheckInfo,
selectCheckStatus,
} from '../../store/reducers/healthcheckInfo/healthcheckInfo';
import {useTypedSelector} from '../../utils/hooks';
import {useDatabaseHealthcheckAvailable} from '../../utils/hooks/useDatabaseHealthcheckAvailable';
import {Healthcheck} from './Healthcheck/Healthcheck';
import {HealthcheckDrawer} from './Healthcheck/components/HealthcheckDrawer';
import {getDatabaseHealthcheckAssistantTarget} from './Healthcheck/utils';
import {useCurrentSchema} from './TenantContext';
import i18n from './i18n';
import {useTenantQueryParams} from './useTenantQueryParams';
interface TenantDrawerHealthcheckProps {
children: React.ReactNode;
clusterName?: string;
}
export function TenantDrawerHealthcheck({children, clusterName}: TenantDrawerHealthcheckProps) {
const healthcheckAvailable = useDatabaseHealthcheckAvailable();
const {database} = useCurrentSchema();
const {
handleShowHealthcheckChange,
showHealthcheck,
handleIssuesFilterChange,
handleHealthcheckViewChange,
issuesFilter,
view,
} = useTenantQueryParams();
const healthcheckStatus = useTypedSelector((state) =>
selectCheckStatus(state, database || '', clusterName),
);
const healthcheckData = useTypedSelector((state) =>
selectAllHealthcheckInfo(state, database || '', clusterName),
);
const handleCloseDrawer = React.useCallback(() => {
handleShowHealthcheckChange(false);
handleIssuesFilterChange(undefined);
handleHealthcheckViewChange(undefined);
}, [handleShowHealthcheckChange, handleIssuesFilterChange, handleHealthcheckViewChange]);
React.useEffect(() => {
if (
healthcheckAvailable === false &&
(showHealthcheck !== undefined || view !== undefined || issuesFilter !== undefined)
) {
handleCloseDrawer();
}
}, [healthcheckAvailable, showHealthcheck, view, issuesFilter, handleCloseDrawer]);
const renderDrawerContent = React.useCallback(() => {
return ;
}, [database, clusterName]);
return (
{children}
);
}