import React, { useEffect, useState } from 'react'; import { FiltersMap, ModalState } from '@wix/bex-core'; import { Button, Drawer, Modal } from '@wix/design-system'; import { UploadExport } from '@wix/wix-ui-icons-common/lazy'; import { observer, Observer } from 'mobx-react-lite'; import { ExportButtonModalLayout } from './ExportButtonModalLayout'; import { useWixPatternsContainer } from '@wix/bex-core/react'; import { useToolbarCollectionContext } from '../ToolbarCollectionContext'; import { ExportButtonProps } from './ExportProps'; import { ResponsiveButton } from '../ResponsiveButton/ResponsiveButton'; import { useIsMobile } from '../../hooks/useIsMobile'; function _ExportButton( props: ExportButtonProps, ) { const { toolbarType = 'default', renderError, transformPlatformizedQuery, differentQueryEndpointThanCollection, customTotal, methodMetadata, arrayFieldDelimiter, methodSpec, fields, saveAs, exportModalFooter, exportModalTitle, onProgressModalTitle, exportToCSVMessage, } = props; const table = useToolbarCollectionContext(); const { toolbar: { responsive }, } = table; const { translate: t } = useWixPatternsContainer(); const [state] = useState(() => (table.exportState ??= new ModalState())); const isMobile = useIsMobile(); useEffect(() => { table.featuredComponents.exportModal.set( {() => { const child = ( ); if (isMobile) { return ( {child} ); } return ( {child} ); }} , ); return () => { table.featuredComponents.exportModal.set(null); }; }, []); return (
{toolbarType === 'default' ? ( } > {t('cairo.export.export')} ) : ( )}
); } export const ExportButton = observer(_ExportButton);