import * as React from 'react'; import { __useActiveDocument as useActiveDocument, __useActiveDocumentActions as useActiveDocumentActions, type Document, } from '@elementor/editor-documents'; import { useEditMode } from '@elementor/editor-v1-adapters'; import { ChevronDownIcon } from '@elementor/icons'; import { bindMenu, bindTrigger, Box, Button, ButtonGroup, CircularProgress, Tooltip, usePopupState, } from '@elementor/ui'; import { __ } from '@wordpress/i18n'; import { type ExtendedWindow } from '../../../types'; import PrimaryActionMenu from './primary-action-menu'; export default function PrimaryAction() { const document = useActiveDocument(); const { save } = useActiveDocumentActions(); const editMode = useEditMode(); const isEditMode = editMode === 'edit'; const popupState = usePopupState( { variant: 'popover', popupId: 'document-save-options', } ); if ( ! document ) { return null; } const isPublishDisabled = ! isEditMode || ! isPublishEnabled( document ); const isSaveOptionsDisabled = ! isEditMode || document.type.value === 'kit'; // When the document is being saved, the spinner should not appear. // Usually happens when the Kit is being saved. const shouldShowSpinner = document.isSaving && ! isPublishDisabled; return ( <> ); } function getLabel( document: Document ) { return document.userCan.publish ? __( 'Publish', 'elementor' ) : __( 'Submit', 'elementor' ); } function isPublishEnabled( document: Document ) { if ( document.type.value === 'kit' ) { return false; } return document.isDirty || document.status.value === 'draft'; }