PluginProbe
BeyondWords – AI audio for publishers / 4.2.4
BeyondWords – AI audio for publishers v4.2.4
7.1.0 trunk 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.1.0 4.1.1 4.1.2 4.2.0 4.2.1 4.2.2 4.2.3 4.2.4 4.3.0 4.4.0 4.5.0 4.5.1 4.6.0 4.6.1 4.6.2 4.7.0 All 43 releases
speechkit / src / Component / Post / PlayerStyle / index.js

index.js in BeyondWords – AI audio for publishers 4.2.4, at src/Component/Post/PlayerStyle/index.js

64 lines 1.7 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * WordPress dependencies
3 */
4 import { __ } from '@wordpress/i18n';
5 import { SelectControl, Flex, FlexBlock } from '@wordpress/components';
6 import { useEntityProp } from '@wordpress/core-data';
7 import { useSelect } from '@wordpress/data';
8 import { Fragment } from '@wordpress/element';
9
10 export function PlayerStyle( { wrapper } ) {
11 const Wrapper = wrapper || Fragment;
12
13 const { postType, playerStyles, defaultPlayerStyle } = useSelect( ( select ) => {
14 let playerStyles = [];
15
16 const postType = select( 'core/editor' ).getCurrentPostType();
17 const { beyondwords_project_id: postProjectId } = select('core/editor').getEditedPostAttribute('meta');
18
19 if ( postProjectId ) {
20 playerStyles = select( 'beyondwords/settings' ).getPlayerStyles( postProjectId ) || [];
21 } else {
22 const { getSettings } = select( 'beyondwords/settings' );
23 const { projectId: settingsProjectId } = getSettings();
24 playerStyles = select( 'beyondwords/settings' ).getPlayerStyles( settingsProjectId ) || [];
25 }
26
27 return {
28 postType,
29 playerStyles,
30 defaultPlayerStyle: playerStyles.find(x => x.default)
31 }
32 }, [] );
33
34 const [ meta, setMeta ] = useEntityProp( 'postType', postType, 'meta' );
35
36 const playerStyle = meta.beyondwords_player_style || defaultPlayerStyle?.value;
37
38 const setPlayerStyle = ( newPlayerStyle ) => {
39 setMeta( {
40 ...meta,
41 beyondwords_player_style: newPlayerStyle,
42 } );
43 };
44
45 return (
46 <Wrapper>
47 <Flex>
48 <FlexBlock>
49 <SelectControl
50 className="beyondwords--player-style"
51 label={ __( 'Player style', 'speechkit' ) }
52 options={ playerStyles }
53 onChange={ ( val ) => setPlayerStyle( val ) }
54 value={ playerStyle }
55 __nextHasNoMarginBottom
56 />
57 </FlexBlock>
58 </Flex>
59 </Wrapper>
60 );
61 }
62
63 export default PlayerStyle;
64