PluginProbe
Code Snippets / 4.0.0-beta.1
Code Snippets v4.0.0-beta.1
4.0.0-beta.2 3.10.2 3.10.1 3.10.0 3.10.0-beta.2 3.10.0-beta.1 4.0.0-beta.1 3.9.6 trunk 2.10.0 2.10.1 2.12.0 2.12.1 2.13.0 2.13.1 2.13.2 2.13.3 2.14.0 2.14.1 2.14.2 2.14.3 2.14.4 2.14.5 2.14.6 3.0.0 All 65 releases
code-snippets / js / components / EditMenu / EditorSidebar / EditorSidebar.tsx

EditorSidebar.tsx in Code Snippets 4.0.0-beta.1, at js/components/EditMenu/EditorSidebar/EditorSidebar.tsx

71 lines 2.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import React from 'react'
2 import { Spinner } from '@wordpress/components'
3 import { __, isRTL } from '@wordpress/i18n'
4 import { buildUrl } from '../../../utils/urls'
5 import { useSnippetForm } from '../SnippetForm/WithSnippetFormContext'
6 import { isNetworkAdmin } from '../../../utils/screen'
7 import { isCondition } from '../../../utils/snippets/snippets'
8 import { DeleteButton } from '../../common/DeleteButton'
9 import { ConditionModalButton } from '../ConditionModal/ConditionModalButton'
10 import { SnippetLocationInput } from '../SnippetForm/fields/SnippetLocationInput'
11 import { Notices } from '../SnippetForm/page/Notices'
12 import { ShortcodeInfo } from './actions/ShortcodeInfo'
13 import { MultisiteSharingSettings } from './controls/MultisiteSharingSettings'
14 import { ExportButtons } from './actions/ExportButtons'
15 import { SubmitButtons } from './actions/SubmitButtons'
16 import { ActivationSwitch } from './controls/ActivationSwitch'
17 import { LockControl } from './controls/LockControl'
18 import { PriorityInput } from './controls/PriorityInput'
19 import { RTLControl } from './controls/RTLControl'
20 import type { Dispatch, SetStateAction } from 'react'
21
22 export interface EditorSidebarProps {
23 setIsUpgradeDialogOpen: Dispatch<SetStateAction<boolean>>
24 }
25
26 export const EditorSidebar: React.FC<EditorSidebarProps> = ({ setIsUpgradeDialogOpen }) => {
27 const { snippet, isWorking, setIsWorking, handleRequestError } = useSnippetForm()
28
29 return (
30 <div className="snippet-editor-sidebar">
31 <div className="box">
32 {snippet.id && !isCondition(snippet) ? <ActivationSwitch /> : null}
33
34 {isNetworkAdmin() ? <MultisiteSharingSettings /> : null}
35
36 {isRTL() ? <RTLControl /> : null}
37
38 <ConditionModalButton setIsDialogOpen={setIsUpgradeDialogOpen} />
39 <SnippetLocationInput />
40 <ShortcodeInfo />
41 <PriorityInput />
42
43 {snippet.id ? <LockControl /> : null}
44
45 {snippet.id
46 ? <div className="row-actions visible inline-form-field">
47 <ExportButtons />
48 <DeleteButton
49 snippet={snippet}
50 disabled={isWorking || snippet.locked}
51 setIsWorking={setIsWorking}
52 onSuccess={() => {
53 window.location.replace(buildUrl(window.CODE_SNIPPETS?.urls.manage, { result: 'deleted' }))
54 }}
55 onError={error => {
56 handleRequestError(error, __('Could not delete snippet.', 'code-snippets'))
57 }}
58 />
59 </div> : null}
60 </div>
61
62 <p className="submit">
63 <SubmitButtons />
64 {isWorking ? <Spinner /> : ''}
65 </p>
66
67 <Notices placement="sidebar" />
68 </div>
69 )
70 }
71