import React from 'react';
import {Xmark} from '@gravity-ui/icons';
import {Button, Flex, Icon, Text} from '@gravity-ui/uikit';
import {EnableFullscreenButton} from '../../../../../components/EnableFullscreenButton/EnableFullscreenButton';
import {ResponseError} from '../../../../../components/Errors/ResponseError';
import {Fullscreen} from '../../../../../components/Fullscreen/Fullscreen';
import {LoaderWrapper} from '../../../../../components/LoaderWrapper/LoaderWrapper';
import {setShowPreview} from '../../../../../store/reducers/schema/schema';
import {useTypedDispatch} from '../../../../../utils/hooks';
import i18n from '../../i18n';
import {b} from '../shared';
interface PreviewProps {
path: string;
quantity?: number;
truncated?: boolean;
renderResult?: () => React.ReactNode;
loading?: boolean;
error?: unknown;
}
export function Preview({
path,
quantity = 0,
truncated,
renderResult,
loading,
error,
}: PreviewProps) {
const dispatch = useTypedDispatch();
const handleClosePreview = () => {
dispatch(setShowPreview(false));
};
const renderHeader = () => {
return (
{i18n('title_query-preview')}
{truncated ? `${i18n('value_truncated-query-preview')} ` : ''}({quantity})
{path}
);
};
const renderContent = () => {
if (error) {
return ;
}
return renderResult?.();
};
return (
{renderHeader()}
{renderContent()}
);
}