119 lines
6.7 KiB
TypeScript
119 lines
6.7 KiB
TypeScript
// Metro module 15990 (f15991).
|
|
import { useContext, useMemo } from "react";
|
|
import EmbeddedActivitiesStore from "../../../activities/EmbeddedActivitiesStore";
|
|
import FramesStore from "../../../frames/FramesStore";
|
|
import ChannelStore from "../../../../stores/ChannelStore";
|
|
import { ActivityLayoutMode } from "../../../activities/Constants";
|
|
import { ActivityPanelModes } from "../../../activities/panel/ActivityPanelConstants";
|
|
import { FrameLayoutModes } from "../../../frames/FramesConstants";
|
|
import { createStyles } from "../../../../design/components/Styles/native/createStyles";
|
|
import VoicePanelStateContext from "../VoicePanelStateContext";
|
|
import { usePIPState } from "./VoicePanelPIPStateContext";
|
|
import { useStateFromStoresObject, useStateFromStores } from "../../../../_bundle/Module589";
|
|
import { getEmbeddedActivityLocationChannelId } from "../../../activities/utils/embeddedActivityLocationUtils";
|
|
import roundToNearestPixel from "../utils/roundToNearestPixel";
|
|
import isVoiceEmbeddedActivity from "../../../activities/utils/isVoiceEmbeddedActivity";
|
|
import { useAnimatedStyle } from "../../../reanimated/ReanimatedRexport";
|
|
import getActivityContainerPIPStylesSpec from "../../../activities/panel/native/pip/getActivityContainerPIPStylesSpec";
|
|
import NativeView from "../../../core/native/NativeView";
|
|
import ReanimatedNativeView from "../../../core/native/ReanimatedNativeView";
|
|
import FrameView from "../../../frames/native/FrameView";
|
|
import EmbeddedActivityView from "../../../activities/native/EmbeddedActivityView";
|
|
const useStyles = createStyles({
|
|
activityContainer: {
|
|
flex: 1
|
|
}
|
|
});
|
|
const __initData = {
|
|
code: "function VoicePanelSecondaryPIPContentTsx1(){const{getActivityContainerPipStylesSpec,pipState,activePipOrientationLockState,windowDimensions}=this.__closure;const{width:width,height:height,shouldVerticallyCenter:shouldVerticallyCenter,shouldHorizontallyCenter:shouldHorizontallyCenter,marginLeft:marginLeft,marginTop:marginTop}=getActivityContainerPipStylesSpec({pipWidth:pipState.width,pipHeight:pipState.height,pipOrientationLockState:activePipOrientationLockState,isLandscape:windowDimensions.get().landscape});return{width:width,height:height,left:shouldHorizontallyCenter?'50%':'0%',top:shouldVerticallyCenter?'50%':'0%',marginLeft:marginLeft,marginTop:marginTop};}"
|
|
};
|
|
export default function VoicePanelSecondaryPIPContent() {
|
|
let connectedEmbeddedActivityChannelId, width, height, framePipOrientationLockState;
|
|
const windowDimensions = useContext(VoicePanelStateContext).windowDimensions;
|
|
const pIPState = usePIPState();
|
|
const styles = useStyles();
|
|
const stateFromStoresObject = useStateFromStoresObject([EmbeddedActivitiesStore], () => {
|
|
const connectedActivityLocation = EmbeddedActivitiesStore.getConnectedActivityLocation();
|
|
const selfEmbeddedActivityForLocation = EmbeddedActivitiesStore.getSelfEmbeddedActivityForLocation(connectedActivityLocation);
|
|
const applicationId = selfEmbeddedActivityForLocation?.applicationId;
|
|
return {
|
|
connectedEmbeddedActivityChannelId: getEmbeddedActivityLocationChannelId(connectedActivityLocation),
|
|
connectedEmbeddedActivity: selfEmbeddedActivityForLocation,
|
|
pipOrientationLockState: applicationId == null ? void 0 : EmbeddedActivitiesStore.getPipOrientationLockStateForApp(applicationId),
|
|
panelMode: EmbeddedActivitiesStore.getActivityPanelMode()
|
|
};
|
|
});
|
|
connectedEmbeddedActivityChannelId = stateFromStoresObject.connectedEmbeddedActivityChannelId;
|
|
const connectedEmbeddedActivity = stateFromStoresObject.connectedEmbeddedActivity;
|
|
let pipOrientationLockState = stateFromStoresObject.pipOrientationLockState;
|
|
const panelMode = stateFromStoresObject.panelMode;
|
|
const stateFromStoresObject2 = useStateFromStoresObject([FramesStore], () => {
|
|
const connectedFrame = FramesStore.getConnectedFrame();
|
|
const applicationId = connectedFrame?.applicationId;
|
|
return {
|
|
connectedFrame,
|
|
framePanelMode: FramesStore.getActivityPanelMode(),
|
|
framePipOrientationLockState: applicationId == null ? void 0 : FramesStore.getPipOrientationLockStateForApp(applicationId)
|
|
};
|
|
});
|
|
const { connectedFrame, framePanelMode, framePipOrientationLockState: framePipOrientationLockState2 } = stateFromStoresObject2;
|
|
const stateFromStores = useStateFromStores([ChannelStore], () => ChannelStore.getChannel(connectedEmbeddedActivityChannelId));
|
|
width = pIPState.width;
|
|
height = pIPState.height;
|
|
const memo = useMemo(() => ({
|
|
width,
|
|
height,
|
|
position: "absolute",
|
|
left: "50%",
|
|
marginLeft: -1 * roundToNearestPixel(width / 2),
|
|
top: "50%",
|
|
marginTop: -1 * roundToNearestPixel(height / 2)
|
|
}), [width, height]);
|
|
const r2 = connectedEmbeddedActivity != null && !isVoiceEmbeddedActivity(connectedEmbeddedActivityChannelId) && panelMode === ActivityPanelModes.PIP;
|
|
const r3 = connectedFrame != null && framePanelMode === ActivityPanelModes.PIP;
|
|
if (r3) {
|
|
pipOrientationLockState = framePipOrientationLockState2;
|
|
}
|
|
framePipOrientationLockState = pipOrientationLockState;
|
|
const P = function P() {
|
|
const activityContainerPIPStylesSpec = getActivityContainerPIPStylesSpec({
|
|
pipWidth: pIPState.width,
|
|
pipHeight: pIPState.height,
|
|
pipOrientationLockState: framePipOrientationLockState,
|
|
isLandscape: windowDimensions.get().landscape
|
|
});
|
|
const { width: width2, height: height2, shouldVerticallyCenter, shouldHorizontallyCenter } = activityContainerPIPStylesSpec;
|
|
let top = "0%";
|
|
const left = shouldHorizontallyCenter ? "50%" : "0%";
|
|
if (shouldVerticallyCenter) {
|
|
top = "50%";
|
|
}
|
|
return {
|
|
width: width2,
|
|
height: height2,
|
|
left,
|
|
top,
|
|
marginLeft: activityContainerPIPStylesSpec.marginLeft,
|
|
marginTop: activityContainerPIPStylesSpec.marginTop
|
|
};
|
|
};
|
|
P.__closure = {
|
|
getActivityContainerPipStylesSpec: getActivityContainerPIPStylesSpec,
|
|
pipState: pIPState,
|
|
activePipOrientationLockState: framePipOrientationLockState,
|
|
windowDimensions
|
|
};
|
|
P.__workletHash = 12186082276755;
|
|
P.__initData = __initData;
|
|
const animatedStyle = useAnimatedStyle(P);
|
|
return r2 ? <NativeView style={memo} pointerEvents="none">
|
|
<ReanimatedNativeView style={[styles.activityContainer, animatedStyle]}>
|
|
{r3 ? <FrameView layoutMode={FrameLayoutModes.PIP} /> : <EmbeddedActivityView channel={stateFromStores} layoutMode={ActivityLayoutMode.PIP} />}
|
|
</ReanimatedNativeView>
|
|
</NativeView> : r3 ? <NativeView style={memo} pointerEvents="none">
|
|
<ReanimatedNativeView style={[styles.activityContainer, animatedStyle]}>
|
|
{r3 ? <FrameView layoutMode={FrameLayoutModes.PIP} /> : <EmbeddedActivityView channel={stateFromStores} layoutMode={ActivityLayoutMode.PIP} />}
|
|
</ReanimatedNativeView>
|
|
</NativeView> : null;
|
|
};
|