PluginProbe ʕ •ᴥ•ʔ
Presto Player / 4.3.2
Presto Player v4.3.2
4.3.2 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 2 months ago LabelWithTooltip.js 2 months ago ProGate.js 2 months ago SectionCard.js 2 months ago SettingsDataProvider.js 2 months ago SettingsPageShell.js 2 months ago UnsavedChangesDialog.js 2 months ago navigationGuard.js 2 months 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