code-snippets
/
js
/
components
/
EditMenu
/
EditorSidebar
/
controls
/
MultisiteSharingSettings.tsx
MultisiteSharingSettings.tsx in Code Snippets 3.10.0, at js/components/EditMenu/EditorSidebar/controls/MultisiteSharingSettings.tsx
| 1 | import React, { useId } from 'react' |
| 2 | import { __ } from '@wordpress/i18n' |
| 3 | import { useSnippetForm } from '../../SnippetForm/WithSnippetFormContext' |
| 4 | import { Tooltip } from '../../../common/Tooltip' |
| 5 | |
| 6 | export const MultisiteSharingSettings: React.FC = () => { |
| 7 | const { snippet, setSnippet, isReadOnly } = useSnippetForm() |
| 8 | const sharingId = useId() |
| 9 | |
| 10 | return ( |
| 11 | <div className="inline-form-field activation-switch-container"> |
| 12 | <label htmlFor={sharingId} id="snippet-sharing-label"> |
| 13 | {__('Share with Subsites', 'code-snippets')} |
| 14 | </label> |
| 15 | |
| 16 | <Tooltip inline start> |
| 17 | {__('Instead of running on every site, allow this snippet to be activated on individual sites on the network.', 'code-snippets')} |
| 18 | </Tooltip> |
| 19 | |
| 20 | <span className="sharing-status-text"> |
| 21 | {snippet.shared_network |
| 22 | ? __('Enabled', 'code-snippets') |
| 23 | : __('Disabled', 'code-snippets')} |
| 24 | </span> |
| 25 | |
| 26 | <input |
| 27 | id={sharingId} |
| 28 | name="snippet_sharing" |
| 29 | type="checkbox" |
| 30 | className="switch" |
| 31 | checked={!!snippet.shared_network} |
| 32 | disabled={isReadOnly} |
| 33 | aria-labelledby="snippet-sharing-label" |
| 34 | onChange={event => |
| 35 | setSnippet(previous => ({ |
| 36 | ...previous, |
| 37 | active: false, |
| 38 | shared_network: event.target.checked |
| 39 | }))} |
| 40 | /> |
| 41 | </div> |
| 42 | ) |
| 43 | } |
| 44 |