| Server IP : 170.10.161.225 / Your IP : 216.73.216.78 Web Server : Apache System : Linux vps103298.mylogin.co 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : calvet ( 273824) PHP Version : 7.4.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : ON Directory : /home/www/calvetrealty.com/wp-content/plugins/code-snippets/js/Edit/buttons/ |
Upload File : |
import React from 'react'
import { AxiosResponse } from 'axios'
import { __ } from '@wordpress/i18n'
import { Button } from '../../common/Button'
import { ExportSnippets } from '../../types/ExportSnippets'
import { useSnippetsAPI } from '../../utils/api/snippets'
import { downloadSnippetExportFile } from '../../utils/files'
import { useSnippetForm } from '../SnippetForm/context'
export const ExportButtons: React.FC = () => {
const api = useSnippetsAPI()
const { snippet, isWorking, setIsWorking, handleRequestError } = useSnippetForm()
const handleFileResponse = (response: AxiosResponse<string | ExportSnippets>) => {
const data = response.data
setIsWorking(false)
console.info('file response', response)
if ('string' === typeof data) {
downloadSnippetExportFile(data, snippet)
} else {
const JSON_INDENT_SPACES = 2
downloadSnippetExportFile(JSON.stringify(data, undefined, JSON_INDENT_SPACES), snippet, 'json')
}
}
return (
<>
<Button
name="export_snippet"
onClick={() => {
setIsWorking(true)
api.export(snippet)
.then(handleFileResponse)
// translators: %s: error message.
.catch(error => handleRequestError(error, __('Could not download export file.', 'code-snippets')))
}}
disabled={isWorking}
>
{__('Export', 'code-snippets')}
</Button>
{window.CODE_SNIPPETS_EDIT?.enableDownloads ?
<Button
name="export_snippet_code"
onClick={() => {
api.exportCode(snippet)
.then(handleFileResponse)
// translators: %s: error message.
.catch(error => handleRequestError(error, __('Could not download file.', 'code-snippets')))
}}
disabled={isWorking}
>
{__('Export Code', 'code-snippets')}
</Button> : ''}
</>
)
}