/**
* External dependencies
*/
import jetpackAnalytics from '@automattic/jetpack-analytics';
import { DropdownMenu } from '@wordpress/components';
import { useCallback } from '@wordpress/element';
import { __ } from '@wordpress/i18n';
import { menu, plus, download, plugins } from '@wordpress/icons';
import { useNavigate } from 'react-router';
/**
* Internal dependencies
*/
import useCreateForm from '../../hooks/use-create-form.ts';
import useExportResponses from '../../hooks/use-export-responses.ts';
import useInboxData from '../../hooks/use-inbox-data.ts';
import { ExportResponsesModal } from '../export-responses/index.tsx';
type ActionsDropdownMenuProps = {
exportData: { show: boolean };
};
const ActionsDropdownMenu = ( { exportData }: ActionsDropdownMenuProps ) => {
const { openNewForm } = useCreateForm();
const { showExportModal, openModal, closeModal, onExport, autoConnectGdrive, exportLabel } =
useExportResponses();
const navigate = useNavigate();
const { totalItems, isLoadingData } = useInboxData();
const hasItems = ! isLoadingData && totalItems > 0;
const analyticsEvent = useCallback( () => {
jetpackAnalytics.tracks.recordEvent( 'jetpack_wpa_forms_landing_page_cta_click', {
button: 'forms',
} );
}, [] );
const onCreateFormClick = useCallback( () => {
openNewForm( {
analyticsEvent,
} );
}, [ openNewForm, analyticsEvent ] );
const onIntegrationsClick = useCallback( () => {
jetpackAnalytics.tracks.recordEvent( 'jetpack_forms_integrations_button_click', {
origin: 'dashboard',
} );
navigate( '/integrations' );
}, [ navigate ] );
const controls = [
{
icon: plus,
onClick: onCreateFormClick,
title: __( 'Create form', 'jetpack-forms' ),
},
{
icon: plugins,
onClick: onIntegrationsClick,
title: __( 'Integrations', 'jetpack-forms' ),
},
...( exportData.show && hasItems
? [
{
icon: download,
onClick: openModal,
title: exportLabel,
},
]
: [] ),
];
return (
<>
{ showExportModal && (
) }
>
);
};
export default ActionsDropdownMenu;