import React from 'react' import { __ } from '@wordpress/i18n' import { useRestAPI } from '../../../hooks/useRestAPI' import { Button } from '../../common/Button' import { downloadSnippetExportFile } from '../../../utils/files' import { useSnippetForm } from '../../../hooks/useSnippetForm' import type { Snippet } from '../../../types/Snippet' import type { SnippetsExport } from '../../../types/schema/SnippetsExport' interface ExportButtonProps { name: string label: string makeRequest: (snippet: Snippet) => Promise } const ExportButton: React.FC = ({ name, label, makeRequest }) => { const { snippet, isWorking, setIsWorking, handleRequestError } = useSnippetForm() const handleClick = () => { setIsWorking(true) makeRequest(snippet) .then(response => downloadSnippetExportFile(response, snippet)) // translators: %s: error message. .catch((error: unknown) => handleRequestError(error, __('Could not download export file.', 'code-snippets'))) .finally(() => setIsWorking(false)) } return ( ) } export const ExportButtons: React.FC = () => { const { snippetsAPI } = useRestAPI() return (
{window.CODE_SNIPPETS_EDIT?.enableDownloads ? : null}
) }