import { WebApplication } from '@/ui_models/application'; import { FeatureIdentifier } from '@standardnotes/features'; import { FeatureStatus } from '@standardnotes/snjs'; import { FunctionComponent } from 'preact'; import { useCallback, useState } from 'preact/hooks'; import { JSXInternal } from 'preact/src/jsx'; import { Icon } from '../Icon'; import { PremiumFeaturesModal } from '../PremiumFeaturesModal'; import { Switch } from '../Switch'; type Props = { application: WebApplication; onToggle: (value: boolean) => void; onClose: () => void; isEnabled: boolean; }; export const FocusModeSwitch: FunctionComponent = ({ application, onToggle, onClose, isEnabled, }) => { const [showUpgradeModal, setShowUpgradeModal] = useState(false); const isEntitled = application.getFeatureStatus(FeatureIdentifier.FocusMode) === FeatureStatus.Entitled; const toggle = useCallback( (e: JSXInternal.TargetedMouseEvent) => { e.preventDefault(); if (isEntitled) { onToggle(!isEnabled); onClose(); } else { setShowUpgradeModal(true); } }, [isEntitled, isEnabled, onToggle, setShowUpgradeModal, onClose] ); return ( <> setShowUpgradeModal(false)} /> ); };