PluginProbe
Code Snippets / 3.10.1
Code Snippets v3.10.1
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 3.0.1 All 64 releases
code-snippets / js / components / EditMenu / ConditionModal / ConditionModalButton.tsx

ConditionModalButton.tsx in Code Snippets 3.10.1, at js/components/EditMenu/ConditionModal/ConditionModalButton.tsx

42 lines 1.4 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 classnames from 'classnames'
3 import { __ } from '@wordpress/i18n'
4 import { isLicensed } from '../../../utils/screen'
5 import { isCondition } from '../../../utils/snippets/snippets'
6 import { Badge } from '../../common/Badge'
7 import { Button } from '../../common/Button'
8 import { useSnippetForm } from '../SnippetForm/WithSnippetFormContext'
9 import type { Dispatch, SetStateAction } from 'react'
10
11 export interface ConditionModalButtonProps {
12 setIsDialogOpen: Dispatch<SetStateAction<boolean>>
13 }
14
15 export const ConditionModalButton: React.FC<ConditionModalButtonProps> = ({ setIsDialogOpen }) => {
16 const { snippet, isReadOnly } = useSnippetForm()
17
18 const hasCondition = 0 !== snippet.conditionId
19
20 return (
21 <div className={classnames(
22 'conditions-editor-open block-form-field',
23 hasCondition ? 'has-condition' : 'no-condition'
24 )}>
25 {isCondition(snippet) ? null
26 : <>
27 <div className="conditions-editor-header">
28 <strong>{__('Conditions', 'code-snippets')}</strong>
29 {!isLicensed() && <Badge name="pro" small>{__('Pro', 'code-snippets')}</Badge>}
30 </div>
31
32 <Button large disabled={isReadOnly} onClick={() => setIsDialogOpen(true)}>
33 <Badge name="cond" small />
34 {hasCondition
35 ? __('Edit Conditions', 'code-snippets')
36 : __('Add Conditions', 'code-snippets')}
37 </Button>
38 </>}
39 </div>
40 )
41 }
42