HEX
Server: LiteSpeed
System: Linux cyberpanel235onubuntu2204-m-2vcpu-16gb-sgp1-01 5.15.0-94-generic #104-Ubuntu SMP Tue Jan 9 15:25:40 UTC 2024 x86_64
User: buzzb2931 (1011)
PHP: 8.0.30
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /home/buzzblu.com.bd/public_html/wp-content/plugins/code-snippets/js/Edit/buttons/ExportButtons.tsx
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> : ''}
		</>
	)
}