// Metro module 10657 (f10658). import { useState, useLayoutEffect, memo, useCallback } from "react"; import { ActivityIndicator, View } from "react-native"; import EmbeddedActivitiesStore from "../EmbeddedActivitiesStore"; import { ActivityLayoutMode, ActivityScreenOrientation } from "../Constants"; import { OBEY_SILENT_HARDWARE_SWITCH_APP_IDS } from "../../applications/ApplicationConstants"; import { createStyles } from "../../../design/components/Styles/native/createStyles"; import * as _getDefaultOrientationLockState from "./getDefaultOrientationLockState"; import { getDefaultOrientationLockState } from "./getDefaultOrientationLockState"; import useWindowDimensions_native from "../../screen/useWindowDimensions.native"; import Dispatcher from "../../../Dispatcher"; import doesOrientationMatchLockState from "./doesOrientationMatchLockState"; import WakeLock from "../../device/native/WakeLock"; import useCurrentEmbeddedApplication from "../utils/useCurrentEmbeddedApplication"; import { useStateFromStores } from "../../../_bundle/Module589"; import useDispatchOpenActivity from "../useDispatchOpenActivity"; import EmbeddedActivitiesNativeManager, { EMBEDDED_ACTIVITY_WEB_VIEW_KEY } from "./EmbeddedActivitiesNativeManager"; import EmbeddedActivityWebView from "./EmbeddedActivityWebView"; import * as _allowPopups from "../utils/allowPopups"; let useStyles, ActivityViewLoadingIndicator, BaseActivityView; const useBaseActivityView = function useBaseActivityView({ orientationLockState, showLoadingIndicator, setShowLoadingStateForLockingOrientation, application, setOrientationLockState }) { const [state, setIsResetting2] = useState(false); const defaultOrientationLockState = getDefaultOrientationLockState(application); const id = application?.id; const [state2, setState] = useState(false); const windowDimensions_native = useWindowDimensions_native(); const isLandscape = windowDimensions_native.width > windowDimensions_native.height; let c18165_9 = isLandscape; useLayoutEffect(() => { Dispatcher.dispatch({ type: "ACTIVITY_SCREEN_ORIENTATION_UPDATE", screenOrientation: c18165_9 ? ActivityScreenOrientation.LANDSCAPE : ActivityScreenOrientation.PORTRAIT }); }, [isLandscape]); useLayoutEffect(() => { setState(false); }, [id]); useLayoutEffect(() => { if (!state2 && (orientationLockState == null && !doesOrientationMatchLockState(c18165_9, defaultOrientationLockState))) { setShowLoadingStateForLockingOrientation(true); } else { setShowLoadingStateForLockingOrientation(false); } if (application != null) { setOrientationLockState(application, orientationLockState); } }, [defaultOrientationLockState, application, orientationLockState, isLandscape, state2, setShowLoadingStateForLockingOrientation, setOrientationLockState]); useLayoutEffect(() => { if (doesOrientationMatchLockState(c18165_9, orientationLockState)) { setShowLoadingStateForLockingOrientation(false); } }, [orientationLockState, isLandscape, setShowLoadingStateForLockingOrientation]); useLayoutEffect(() => { let r3 = showLoadingIndicator; if (!showLoadingIndicator) { r3 = state; } if (!r3) { setState(true); } }, [showLoadingIndicator, state]); return { isResetting: state, setIsResetting: setIsResetting2, isLandscape }; }; ActivityViewLoadingIndicator = function ActivityViewLoadingIndicator() { return ; }; BaseActivityView = function BaseActivityView(props) { const { children, wakeLockKey, showLoadingIndicator: showLoadingIndicator2, isResetting } = props; return showLoadingIndicator2 ? : isResetting ? null : <> {children} ; }; useStyles = createStyles({ loadingContainer: { flex: 1, justifyContent: "center" } }); const r46 = memo(function EmbeddedActivityViewInner(props) { let queryParams; let setIsResetting; const { channel, layoutMode } = props; let portraitSafeAreasConfig = props.portraitSafeAreasConfig; const landscapeSafeAreasConfig = props.landscapeSafeAreasConfig; setIsResetting = void 0; const currentEmbeddedActivity = EmbeddedActivitiesStore.getCurrentEmbeddedActivity(); const currentEmbeddedApplication = useCurrentEmbeddedApplication(); let c18166_2 = currentEmbeddedApplication; const stateFromStores = useStateFromStores([EmbeddedActivitiesStore], () => c18166_2 != null ? EmbeddedActivitiesStore.getOrientationLockStateForApp(c18166_2.id) : void 0, [currentEmbeddedApplication]); const [state, setShowLoadingStateForLockingOrientation2] = useState(true); if (currentEmbeddedActivity == null) { queryParams = { instance_id: "" }; } else { let compositeInstanceId = currentEmbeddedActivity.compositeInstanceId; if (compositeInstanceId == null) { compositeInstanceId = currentEmbeddedActivity.launchId; } const r41 = { instance_id: compositeInstanceId, location_id: currentEmbeddedActivity.location?.id, launch_id: currentEmbeddedActivity.launchId }; if (currentEmbeddedActivity.proxyTicket != null) { r41.discord_proxy_ticket = currentEmbeddedActivity.proxyTicket; } if (channel != null && channel.id != null && channel.id !== "") { r41.channel_id = channel.id; } const r53 = channel?.guild_id != null && channel?.guild_id !== ""; queryParams = r41; if (r53) { r41.guild_id = channel?.guild_id; queryParams = r41; } } useDispatchOpenActivity({ connectedEmbeddedActivity: currentEmbeddedActivity }); useLayoutEffect(() => { if (currentEmbeddedActivity != null) { Dispatcher.dispatch({ type: "ACTIVITY_LAYOUT_MODE_UPDATE", layoutMode, applicationId: currentEmbeddedActivity.applicationId }); } }, [layoutMode, currentEmbeddedActivity]); const callback = useCallback(() => { EmbeddedActivitiesNativeManager.leaveActivity({ location: currentEmbeddedActivity?.location, applicationId: c18166_2?.id }); }, [currentEmbeddedApplication, currentEmbeddedActivity]); const id = currentEmbeddedApplication?.id; const showLoadingIndicator2 = currentEmbeddedActivity == null || currentEmbeddedActivity?.launchId == null || state || id == null || currentEmbeddedApplication == null; const baseActivityView = useBaseActivityView({ orientationLockState: stateFromStores, showLoadingIndicator: showLoadingIndicator2, setShowLoadingStateForLockingOrientation: setShowLoadingStateForLockingOrientation2, application: currentEmbeddedApplication, setOrientationLockState: _getDefaultOrientationLockState.setOrientationLockState }); const isResetting = baseActivityView.isResetting; setIsResetting = baseActivityView.setIsResetting; const isLandscape = baseActivityView.isLandscape; const r82 = currentEmbeddedActivity == null; let r83 = null; if (!r82) { const r84 = id == null; r83 = null; if (!r84) { const props2 = { onActivityCrash: () => { setIsResetting(true); setTimeout(() => setIsResetting(false), 0); }, applicationId: id, channelId: channel?.id, guildId: channel?.guild_id, activityUrl: currentEmbeddedActivity.url, currentEmbeddedActivity, activitySessionId: currentEmbeddedActivity?.compositeInstanceId, queryParams, onLoadError: callback, allowPopups: _allowPopups.allowPopups(currentEmbeddedApplication), referrerPolicy: "origin", isPipOrGridMode: layoutMode === ActivityLayoutMode.PIP || layoutMode === ActivityLayoutMode.GRID, webViewKey: EMBEDDED_ACTIVITY_WEB_VIEW_KEY, safeAreasConfig: null, ignoreSilentHardwareSwitch: null }; if (isLandscape) { portraitSafeAreasConfig = landscapeSafeAreasConfig; } props2.safeAreasConfig = portraitSafeAreasConfig; props2.ignoreSilentHardwareSwitch = !OBEY_SILENT_HARDWARE_SWITCH_APP_IDS.has(id); r83 = ; } } return r83; }); export default r46; export { useBaseActivityView }; export { ActivityViewLoadingIndicator }; export { BaseActivityView }; export { r46 as EmbeddedActivityView };