import React from 'react' import { Spinner } from '@wordpress/components' import { __, isRTL } from '@wordpress/i18n' import { ConfirmDeleteDialog, useDeleteSnippet } from '../../common/snippets/ConfirmDeleteDialog' import { buildUrl } from '../../../utils/urls' import { Button } from '../../common/Button' import { useSnippetForm } from '../SnippetForm/WithSnippetFormContext' import { isNetworkAdmin } from '../../../utils/screen' import { isCondition } from '../../../utils/snippets/snippets' import { ConditionModalButton } from '../ConditionModal/ConditionModalButton' import { SnippetLocationInput } from '../SnippetForm/fields/SnippetLocationInput' import { Notices } from '../SnippetForm/page/Notices' import { ShortcodeInfo } from './actions/ShortcodeInfo' import { MultisiteSharingSettings } from './controls/MultisiteSharingSettings' import { ExportButtons } from './actions/ExportButtons' import { SubmitButtons } from './actions/SubmitButtons' import { ActivationSwitch } from './controls/ActivationSwitch' import { LockControl } from './controls/LockControl' import { PriorityInput } from './controls/PriorityInput' import { RTLControl } from './controls/RTLControl' import type { Dispatch, SetStateAction } from 'react' export interface EditorSidebarProps { setIsUpgradeDialogOpen: Dispatch> } export const EditorSidebar: React.FC = ({ setIsUpgradeDialogOpen }) => { const { snippet, isWorking, setIsWorking, handleRequestError } = useSnippetForm() const { requestDelete, deleteDialogProps } = useDeleteSnippet({ snippet, setIsWorking, onSuccess: () => { window.location.replace(buildUrl(window.CODE_SNIPPETS?.urls.manage, { result: 'deleted' })) }, onError: error => { handleRequestError(error, __('Could not delete snippet.', 'code-snippets')) } }) return (
{snippet.id && !isCondition(snippet) ? : null} {isNetworkAdmin() && } {isRTL() && } {!!snippet.id && (
)}

{isWorking ? : ''}

) }