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 / shared / ProGate.js
presto-player / src / admin / dashboard / pages / settings / shared Last commit date
ConfirmDialog.js 1 month ago LabelWithTooltip.js 1 month ago ProGate.js 1 month ago SectionCard.js 1 month ago SettingsDataProvider.js 1 month ago SettingsPageShell.js 1 month ago UnsavedChangesDialog.js 1 month ago navigationGuard.js 1 month ago
ProGate.js
58 lines
1 import { Button, Container, Title, Text } from '@bsf/force-ui';
2 import { Lock } from 'lucide-react';
3 import useUpgradeCTA from '../../../hooks/useUpgradeCTA';
4 import { useHistory } from '../../../router/router';
5
6 const ProGate = ( { children, enabled, title, description } ) => {
7 const history = useHistory();
8 const { label, href, onClick, isProUnlicensed } = useUpgradeCTA( history );
9
10 if ( enabled ) {
11 return children;
12 }
13
14 return (
15 <div className="relative min-h-[260px] overflow-hidden p-4">
16 <div
17 inert=""
18 aria-hidden="true"
19 className="blur-[2px] opacity-60 pointer-events-none select-none px-6 py-4"
20 >
21 { children }
22 </div>
23 <div className="absolute inset-0 bg-white/40 flex items-center justify-center p-4">
24 <Container
25 direction="column"
26 className="bg-white rounded-lg border border-border-subtle shadow-pro-gate-cta p-6 max-w-[340px] w-full items-center text-center gap-4"
27 >
28 <div className="w-11 h-11 rounded-full flex items-center justify-center bg-background-secondary">
29 <Lock className="w-5 h-5 text-icon-secondary" />
30 </div>
31
32 <Container direction="column" className="items-center gap-1.5">
33 <Title tag="h4" title={ title } size="sm" />
34 <Text size="sm" className="text-text-secondary leading-5">
35 { description }
36 </Text>
37 </Container>
38
39 <Button
40 tag="a"
41 href={ href }
42 target={ isProUnlicensed ? '_self' : '_blank' }
43 rel={ isProUnlicensed ? undefined : 'noreferrer' }
44 onClick={ onClick }
45 variant="primary"
46 size="sm"
47 className="mt-1 no-underline hover:no-underline"
48 >
49 { label }
50 </Button>
51 </Container>
52 </div>
53 </div>
54 );
55 };
56
57 export default ProGate;
58