PluginProbe
Code Snippets / 3.7.0
Code Snippets v3.7.0
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 / ConditionModal / ConditionModalButton.tsx

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

40 lines 1.3 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 '../../hooks/useSnippetForm'
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('conditions-editor-open block-form-field', hasCondition ? 'has-condition' : 'no-condition')}>
22 {isCondition(snippet) ? null
23 : <>
24 <h4>
25 {__('Conditions', 'code-snippets')}
26 <Badge name="beta" small>{__('beta', 'code-snippets')}</Badge>
27 {!isLicensed() && <Badge name="pro" small>{__('Pro', 'code-snippets')}</Badge>}
28 </h4>
29
30 <Button large disabled={isReadOnly} onClick={() => setIsDialogOpen(true)}>
31 <Badge name="cond" small />
32 {hasCondition
33 ? __('Edit Conditions', 'code-snippets')
34 : __('Add Conditions', 'code-snippets')}
35 </Button>
36 </>}
37 </div>
38 )
39 }
40