PluginProbe ʕ •ᴥ•ʔ
Presto Player / trunk
Presto Player vtrunk
4.3.1 4.3.0 4.2.4 4.2.3 4.2.2 4.2.0 4.2.1 trunk 1.10.0 1.10.1 1.10.2 1.11.0 1.12.0 1.13.0 1.14.0 1.14.1 1.5.10 1.5.11 1.5.12 1.5.13 1.5.14 1.5.15 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.10 1.6.11 1.6.12 1.6.13 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.11 2.0.12 2.0.13 2.0.14 2.0.15 2.0.16 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.2.0 2.2.1 2.2.2 2.2.3 2.2.3-beta1 2.3.0 2.3.1 2.3.2 2.3.3 3.0.0 3.0.0-beta1 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.1.0 3.1.1 3.1.2 3.1.3 4.0.0 4.0.1 4.0.2 4.0.3 4.0.4 4.0.5 4.0.6 4.0.7 4.0.8 4.1.0 4.1.1 4.1.2 4.1.3 4.1.4
presto-player / src / admin / dashboard / pages / settings / integrations / YouTubePage.js
presto-player / src / admin / dashboard / pages / settings / integrations Last commit date
BunnyNetPage.js 1 month ago EmailCapturePage.js 1 month ago GoogleAnalyticsPage.js 1 month ago WebhooksPage.js 1 month ago YouTubePage.js 1 month ago
YouTubePage.js
73 lines
1 import { __ } from '@wordpress/i18n';
2 import { Container, Switch, Label, Input, Text } from '@bsf/force-ui';
3 import { ExternalLink } from 'lucide-react';
4 import SettingsPageShell from '../shared/SettingsPageShell';
5 import SectionCard from '../shared/SectionCard';
6 import useSimpleSettingsPage from '../../../hooks/useSimpleSettingsPage';
7 import { OPTION_KEYS } from '../config';
8
9 const DEFAULTS = {
10 nocookie: false,
11 channel_id: '',
12 };
13
14 const YouTubePage = ( { registerActivePage } ) => {
15 const { data, update, handleSave, isDirty, isSaving, isLoading } =
16 useSimpleSettingsPage( OPTION_KEYS.youtube, DEFAULTS, registerActivePage );
17
18 return (
19 <SettingsPageShell
20 title={ __( 'YouTube', 'presto-player' ) }
21 isDirty={ isDirty }
22 isSaving={ isSaving }
23 isLoading={ isLoading }
24 onSave={ handleSave }
25 >
26 <SectionCard title={ __( 'YouTube', 'presto-player' ) }>
27 <Container direction="column" className="gap-4">
28 <Switch
29 size="md"
30 value={ !! data.nocookie }
31 onChange={ ( val ) => update( { nocookie: val } ) }
32 label={ {
33 heading: __( 'Privacy-Enhanced Mode', 'presto-player' ),
34 description: __(
35 'Embed YouTube videos without using cookies that track viewing behaviour.',
36 'presto-player'
37 ),
38 } }
39 />
40
41 <Container.Item className="flex flex-col gap-2">
42 <Label size="sm">{ __( 'Channel ID', 'presto-player' ) }</Label>
43 <Input
44 size="md"
45 value={ data.channel_id || '' }
46 onChange={ ( val ) => update( { channel_id: val } ) }
47 />
48 <Label size="xs" variant="help">
49 { __(
50 'Enter the ID of your channel to enable YouTube Subscribe button functionality.',
51 'presto-player'
52 ) }{ ' ' }
53 <Text
54 as="a"
55 href="https://support.google.com/youtube/answer/3250431?hl=en"
56 target="_blank"
57 rel="noreferrer"
58 size="xs"
59 className="text-brand-primary-600 hover:underline inline-flex items-center gap-1"
60 >
61 { __( 'Find my channel id', 'presto-player' ) }
62 <ExternalLink className="w-3 h-3" />
63 </Text>
64 </Label>
65 </Container.Item>
66 </Container>
67 </SectionCard>
68 </SettingsPageShell>
69 );
70 };
71
72 export default YouTubePage;
73