UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 8.17 kB
{ "version": 3, "sources": ["../../src/video/edit-common-settings.js"], "sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport {\n\tToggleControl,\n\tSelectControl,\n\t__experimentalToolsPanelItem as ToolsPanelItem,\n} from '@wordpress/components';\nimport { useMemo, useCallback, Platform } from '@wordpress/element';\n\nconst options = [\n\t{ value: 'auto', label: __( 'Auto' ) },\n\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t{ value: 'none', label: _x( 'None', 'Preload value' ) },\n];\n\nconst VideoSettings = ( { setAttributes, attributes } ) => {\n\tconst { autoplay, controls, loop, muted, playsInline, preload } =\n\t\tattributes;\n\n\tconst autoPlayHelpText = __(\n\t\t'Autoplay may cause usability issues for some users.'\n\t);\n\n\tconst getAutoplayHelp = Platform.select( {\n\t\tweb: useCallback( ( checked ) => {\n\t\t\treturn checked ? autoPlayHelpText : null;\n\t\t}, [] ),\n\t\tnative: autoPlayHelpText,\n\t} );\n\n\tconst toggleFactory = useMemo( () => {\n\t\tconst toggleAttribute = ( attribute ) => {\n\t\t\treturn ( newValue ) => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\t[ attribute ]: newValue,\n\t\t\t\t\t// Set muted and playsInLine when autoplay changes\n\t\t\t\t\t// playsInline is set to true when autoplay is true to support iOS devices\n\t\t\t\t\t...( attribute === 'autoplay' && {\n\t\t\t\t\t\tmuted: newValue,\n\t\t\t\t\t\tplaysInline: newValue,\n\t\t\t\t\t} ),\n\t\t\t\t} );\n\t\t\t};\n\t\t};\n\n\t\treturn {\n\t\t\tautoplay: toggleAttribute( 'autoplay' ),\n\t\t\tloop: toggleAttribute( 'loop' ),\n\t\t\tmuted: toggleAttribute( 'muted' ),\n\t\t\tcontrols: toggleAttribute( 'controls' ),\n\t\t\tplaysInline: toggleAttribute( 'playsInline' ),\n\t\t};\n\t}, [] );\n\n\tconst onChangePreload = useCallback( ( value ) => {\n\t\tsetAttributes( { preload: value } );\n\t}, [] );\n\n\treturn (\n\t\t<>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! autoplay }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { autoplay: false, muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\tonChange={ toggleFactory.autoplay }\n\t\t\t\t\tchecked={ !! autoplay }\n\t\t\t\t\thelp={ getAutoplayHelp }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! loop }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { loop: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\tonChange={ toggleFactory.loop }\n\t\t\t\t\tchecked={ !! loop }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! muted }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { muted: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\t\tonChange={ toggleFactory.muted }\n\t\t\t\t\tchecked={ !! muted }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay ? __( 'Muted because of Autoplay.' ) : null\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => ! controls }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { controls: true } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Playback controls' ) }\n\t\t\t\t\tonChange={ toggleFactory.controls }\n\t\t\t\t\tchecked={ !! controls }\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => !! playsInline }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { playsInline: false } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t/* translators: Setting to play videos within the webpage on mobile browsers rather than opening in a fullscreen player. */\n\t\t\t\t\tlabel={ __( 'Play inline' ) }\n\t\t\t\t\tonChange={ toggleFactory.playsInline }\n\t\t\t\t\tchecked={ !! playsInline }\n\t\t\t\t\tdisabled={ autoplay }\n\t\t\t\t\thelp={\n\t\t\t\t\t\tautoplay\n\t\t\t\t\t\t\t? __( 'Play inline enabled because of Autoplay.' )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'When enabled, videos will play directly within the webpage on mobile browsers, instead of opening in a fullscreen player.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t\t<ToolsPanelItem\n\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\tisShownByDefault\n\t\t\t\thasValue={ () => preload !== 'metadata' }\n\t\t\t\tonDeselect={ () => {\n\t\t\t\t\tsetAttributes( { preload: 'metadata' } );\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\tvalue={ preload }\n\t\t\t\t\tonChange={ onChangePreload }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\thideCancelButton\n\t\t\t\t/>\n\t\t\t</ToolsPanelItem>\n\t\t</>\n\t);\n};\n\nexport default VideoSettings;\n"], "mappings": "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", "names": [] }