| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- import getMeta from '@/utils/meta'
- import { isSplitTestEnabled } from '@/utils/splitTestUtils'
- import { FC } from 'react'
- import useConvertProject from '../../hooks/use-convert-project'
- import { useCommandProvider } from '../../hooks/use-command-provider'
- import OLDropdownMenuItem from '@/shared/components/ol/ol-dropdown-menu-item'
- type ExportProjectWithConversionProps = {
- featureFlag?: string
- conversionType: 'docx' | 'markdown'
- label: string
- menuBarId: string
- }
- export const ExportProjectWithConversionButton: FC<
- ExportProjectWithConversionProps
- > = ({ featureFlag, conversionType, label, menuBarId }) => {
- const splitTestEnabledIfNeeded = featureFlag
- ? isSplitTestEnabled(featureFlag)
- : true
- const enablePandocConversions =
- getMeta('ol-ExposedSettings')?.enablePandocConversions
- const anonymous = getMeta('ol-anonymous')
- const downloadConversion = useConvertProject(conversionType)
- const showExportButton =
- splitTestEnabledIfNeeded && enablePandocConversions && !anonymous
- useCommandProvider(
- () =>
- showExportButton
- ? [
- {
- id: menuBarId,
- handler: downloadConversion,
- label,
- },
- ]
- : [],
- [showExportButton, downloadConversion, label, menuBarId]
- )
- if (!showExportButton) {
- return null
- }
- return (
- <OLDropdownMenuItem onClick={downloadConversion}>
- {label}
- </OLDropdownMenuItem>
- )
- }
|