|
|
@@ -7,14 +7,20 @@ import { useTranslation } from 'react-i18next'
|
|
|
import { emitToolbarEvent } from '../../extensions/toolbar/utils/analytics'
|
|
|
import { useCodeMirrorViewContext } from '../codemirror-context'
|
|
|
import { insertFigure } from '../../extensions/toolbar/commands'
|
|
|
+import sparkleWhite from '@/shared/svgs/sparkle-small-white.svg'
|
|
|
+import sparkle from '@/shared/svgs/ai-sparkle-text.svg'
|
|
|
import getMeta from '@/utils/meta'
|
|
|
import { usePermissionsContext } from '@/features/ide-react/context/permissions-context'
|
|
|
import { ToolbarButton } from './toolbar-button'
|
|
|
+import { useEditorContext } from '@/shared/context/editor-context'
|
|
|
+import { isSplitTestEnabled } from '@/utils/splitTestUtils'
|
|
|
|
|
|
export const InsertFigureDropdown = memo(function InsertFigureDropdown() {
|
|
|
const { t } = useTranslation()
|
|
|
const view = useCodeMirrorViewContext()
|
|
|
+ const { writefullInstance } = useEditorContext()
|
|
|
const { write } = usePermissionsContext()
|
|
|
+
|
|
|
const openFigureModal = useCallback(
|
|
|
(source: FigureModalSource, sourceName: string) => {
|
|
|
emitToolbarEvent(view, `toolbar-figure-modal-${sourceName}`)
|
|
|
@@ -32,6 +38,10 @@ export const InsertFigureDropdown = memo(function InsertFigureDropdown() {
|
|
|
hasLinkUrlFeature,
|
|
|
} = getMeta('ol-ExposedSettings')
|
|
|
|
|
|
+ const hasGenerateFromTextFeature =
|
|
|
+ writefullInstance !== null &&
|
|
|
+ isSplitTestEnabled('writefull-figure-generator')
|
|
|
+
|
|
|
if (!write) {
|
|
|
return (
|
|
|
<ToolbarButton
|
|
|
@@ -88,6 +98,27 @@ export const InsertFigureDropdown = memo(function InsertFigureDropdown() {
|
|
|
{t('from_url')}
|
|
|
</OLListGroupItem>
|
|
|
)}
|
|
|
+ {hasGenerateFromTextFeature && (
|
|
|
+ <OLListGroupItem
|
|
|
+ onClick={() => {
|
|
|
+ writefullInstance!.openFigureGenerator()
|
|
|
+ }}
|
|
|
+ >
|
|
|
+ <img
|
|
|
+ alt="sparkle"
|
|
|
+ className="ol-cm-toolbar-ai-sparkle-gradient"
|
|
|
+ src={sparkle}
|
|
|
+ aria-hidden="true"
|
|
|
+ />
|
|
|
+ <img
|
|
|
+ alt="sparkle"
|
|
|
+ className="ol-cm-toolbar-ai-sparkle-white"
|
|
|
+ src={sparkleWhite}
|
|
|
+ aria-hidden="true"
|
|
|
+ />
|
|
|
+ <span>{t('generate_from_text')}</span>
|
|
|
+ </OLListGroupItem>
|
|
|
+ )}
|
|
|
</ToolbarButtonMenu>
|
|
|
)
|
|
|
})
|