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';
}