PluginProbe
Code Snippets / 3.6.6
Code Snippets v3.6.6
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 / SnippetForm / SnippetForm.tsx

SnippetForm.tsx in Code Snippets 3.6.6, at js/components/SnippetForm/SnippetForm.tsx

67 lines 2.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 import React, { useState } from 'react'
2 import classnames from 'classnames'
3 import { isNetworkAdmin } from '../../utils/general'
4 import { createEmptySnippet, getSnippetType } from '../../utils/snippets'
5 import { WithSnippetFormContext, useSnippetForm } from '../../hooks/useSnippetForm'
6 import { ActionButtons } from './buttons/ActionButtons'
7 import { UpgradeDialog } from './page/UpgradeDialog'
8 import { DescriptionEditor } from './fields/DescriptionEditor'
9 import { MultisiteSharingSettings } from './fields/MultisiteSharingSettings'
10 import { NameInput } from './fields/NameInput'
11 import { PriorityInput } from './fields/PriorityInput'
12 import { ScopeInput } from './fields/ScopeInput'
13 import { TagsInput } from './fields/TagsInput'
14 import { Notices } from './page/Notices'
15 import { PageHeading } from './page/PageHeading'
16 import { SnippetEditor } from './SnippetEditor/SnippetEditor'
17 import { SnippetEditorToolbar } from './SnippetEditor/SnippetEditorToolbar'
18
19 const OPTIONS = window.CODE_SNIPPETS_EDIT
20
21 const EditForm: React.FC = () => {
22 const [isUpgradeDialogOpen, setIsUpgradeDialogOpen] = useState(false)
23 const { snippet, isReadOnly } = useSnippetForm()
24
25 return (
26 <div className="wrap">
27 <PageHeading />
28 <Notices />
29
30 <div id="snippet-form" className={classnames(
31 'snippet-form',
32 `${snippet.scope}-snippet`,
33 `${getSnippetType(snippet.scope)}-snippet`,
34 `${snippet.id ? 'saved' : 'new'}-snippet`,
35 `${snippet.active ? 'active' : 'inactive'}-snippet`,
36 {
37 'erroneous-snippet': !!snippet.code_error,
38 'read-only-snippet': isReadOnly
39 }
40 )}>
41 <NameInput />
42
43 <SnippetEditorToolbar />
44 <SnippetEditor openUpgradeDialog={() => setIsUpgradeDialogOpen(true)} />
45
46 <div className="below-snippet-editor">
47 <ScopeInput />
48 <PriorityInput />
49 </div>
50
51 {isNetworkAdmin() ? <MultisiteSharingSettings /> : null}
52 {OPTIONS?.enableDescription ? <DescriptionEditor /> : null}
53 {OPTIONS?.tagOptions.enabled ? <TagsInput /> : null}
54
55 <ActionButtons />
56 </div>
57
58 <UpgradeDialog isOpen={isUpgradeDialogOpen} setIsOpen={setIsUpgradeDialogOpen} />
59 </div>
60 )
61 }
62
63 export const SnippetForm: React.FC = () =>
64 <WithSnippetFormContext initialSnippet={() => OPTIONS?.snippet ?? createEmptySnippet()}>
65 <EditForm />
66 </WithSnippetFormContext>
67