// Metro module 13907 (f13908). import { useCallback, useEffect } from "react"; import { View } from "react-native"; import UserStore from "../../../stores/UserStore"; import FamilyCenterStore from "../FamilyCenterStore"; import { CONNECT_GUARDIAN_BOTTOM_SHEET_KEY, FAMILY_CENTER_LINK_REQUEST_REGEX, FamilyCenterAction } from "../FamilyCenterConstants"; import { AnalyticEvents } from "../../../Constants"; import { NativePermissionTypes } from "../../native_permissions/NativePermissionConstants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import Module712 from "../../../_bundle/Module712"; import { useUserQRLinkUrl, useHasMaxConnections } from "../hooks/useUserLinks"; import { presentFailedToast } from "../../toast/native/ToastUtils"; import { intl, t } from "../../../intl/index.native"; import { useFamilyCenterActions } from "../hooks/useFamilyCenterActions"; import { useStateFromStores } from "../../../_bundle/defaultAreStatesEqual"; import useRefreshLinkCodeOnExpiry from "../hooks/useRefreshLinkCodeOnExpiry"; import AnalyticsUtils from "../../../utils/AnalyticsUtils"; import { shareGuardianConnectLink } from "./shareGuardianConnectLink"; import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators"; import { Stack } from "../../../design/components/Stack/native/Stack.native"; import { Button } from "../../../design/components/Button/native/Button.native"; import { ShareIcon } from "../../../design/components/Icon/native/redesign/generated/ShareIcon"; import FamilyCenter_messages from "../FamilyCenter.messages"; import { QrCodeIcon } from "../../../design/components/Icon/native/redesign/generated/QrCodeIcon"; import ModalActionCreators from "../../../actions/ModalActionCreators"; import URLUtils from "../../../utils/URLUtils"; import { handleFamilyCenterQRCodeScan } from "./FamilyCenterNativeUtils"; import { isMetaQuest } from "../../device/MetaQuestUtils.android"; import NativePermissionUtils from "../../native_permissions/NativePermissionUtils"; let useStyles, useStyles2, FamilyCenterBannerButton; const FamilyCenterTeenQRCodeButtonInner = function FamilyCenterTeenQRCodeButtonInner() { let getLinkCode, getLinkCode2, stateFromStores, stateFromStores2, stateFromStores3; const styles = useStyles(); const callback = useCallback(() => { presentFailedToast(intl.string(t.R0RpRX)); }, []); getLinkCode = useFamilyCenterActions().getLinkCode; getLinkCode2 = useFamilyCenterActions({ onError: callback }).getLinkCode; stateFromStores = useStateFromStores([UserStore], () => UserStore.getCurrentUser()); stateFromStores2 = useStateFromStores([FamilyCenterStore], () => FamilyCenterStore.getLinkCode()); stateFromStores3 = useStateFromStores([FamilyCenterStore], () => FamilyCenterStore.getLinkCodeExpiresAt()); const userQRLinkUrl = useUserQRLinkUrl(); useEffect(() => { getLinkCode(); }, []); useRefreshLinkCodeOnExpiry(stateFromStores3, getLinkCode); const disabled = userQRLinkUrl == null || stateFromStores2 == null || stateFromStores3 == null; const callback2 = useCallback(() => { if (stateFromStores != null && stateFromStores2 != null) { AnalyticsUtils.track(AnalyticEvents.FAMILY_CENTER_ACTION, { action: FamilyCenterAction.ShareLink }); shareGuardianConnectLink(stateFromStores, stateFromStores2); } }, [stateFromStores, stateFromStores2]); const callback3 = useCallback(() => { if (stateFromStores2 != null && stateFromStores3 != null) { AnalyticsUtils.track(AnalyticEvents.FAMILY_CENTER_ACTION, { action: FamilyCenterAction.ShowQRCodeModal }); ActionSheetActionCreators.openLazy(import("./ConnectGuardianBottomSheet"), CONNECT_GUARDIAN_BOTTOM_SHEET_KEY, { linkCode: stateFromStores2, expiresAt: stateFromStores3, onRefresh: getLinkCode2 }); } }, [stateFromStores2, stateFromStores3, getLinkCode2]); return