// Metro module 15757 (f15758).
import { useId, useState, useEffect } from "react";
import { View } from "react-native";
import ConnectedAccountsStore from "../../../stores/ConnectedAccountsStore";
import UserStore from "../../../stores/UserStore";
import LocalAppDetectionStore from "./LocalAppDetectionStore";
import { AnalyticsLocations, PlatformTypes, UserSettingsSections } from "../../../Constants";
import { ContentDismissActionType } from "../../dismissible_content/DismissibleContentConstants";
import { createStyles } from "../../../design/components/Styles/native/createStyles";
import Module712 from "../../../_bundle/Module712";
import { useThemeContext } from "../../../_bundle/Module3901";
import useSafeAreaInsets_native from "../../safe_area/useSafeAreaInsets.native";
import ActionSheetActionCreators from "../../action_sheet/native/ActionSheetActionCreators";
import { BottomSheet } from "../../../design/components/Sheet/native/BottomSheet.native";
import { BottomSheetTitleHeader } from "../../../design/components/Sheet/native/BottomSheetTitleHeader.native";
import { ActionSheetCloseButton } from "../../../design/components/Sheet/native/ActionSheetCloseButton.native";
import { Stack } from "../../../design/components/Stack/native/Stack.native";
import { Text } from "../../../design/components/Text/native/Text";
import { intl, t } from "../../../intl/index.native";
import { Button } from "../../../design/components/Button/native/Button.native";
import { WindowLaunchIcon } from "../../../design/components/Icon/native/redesign/generated/WindowLaunchIcon";
import authorizeConnection_native from "../../connections/authorizeConnection.native";
import { openUserSettings } from "../../user_settings/core/native/openUserSettings";
import * as _themes from "../../../design/utils/shared/themes";
import Platforms from "../../../lib/Platforms";
import { makeSource } from "../../../utils/AvatarUtils";
import { Icon, IconSizes, Avatar, AvatarSizes } from "../../../design/void/native";
import Module8531, { Path, Defs, LinearGradient, Stop } from "../../../_bundle/Module8531";
import { useStateFromStores, useStateFromStoresObject } from "../../../_bundle/Module589";
import { DetectableAppNames } from "../LocalAppDetectionTypes";
import ConnectedAccountsActionCreators from "../../../actions/ConnectedAccountsActionCreators";
import { UNSAFE_markDismissibleContentAsDismissed } from "../../dismissible_content/DismissibleContentUnsafeUtils";
import { DismissibleContent } from "../../../_bundle/Module1358";
let useStyles, UnionIcon, UserIcon;
const RobloxIcon = function RobloxIcon(props) {
const theme = props.theme;
const styles = useStyles();
const isThemeDark = _themes.isThemeDark(theme);
const r19 = Platforms.get(PlatformTypes.ROBLOX);
const backgroundColor = isThemeDark ? "black" : "white";
const icon = r19.icon;
return
;
};
UnionIcon = function UnionIcon(props) {
const stopColor = _themes.isThemeDark(props.theme) ? "white" : "black";
return
;
};
UserIcon = function UserIcon() {
const styles = useStyles();
return
UserStore.getCurrentUser())} guildId={void 0} />
;
};
useStyles = createStyles({
robloxIconContainer: {
width: 40,
height: 40,
borderRadius: Module712.radii.md,
alignItems: "center",
justifyContent: "center",
backgroundColor: Module712.colors.BACKGROUND_BASE_LOWEST
},
content: {
paddingHorizontal: Module712.space.PX_16
},
text: {
textAlign: "center"
},
avatarContainer: {
position: "relative"
},
avatarInnerBorder: {
zIndex: 1,
position: "absolute",
borderColor: Module712.colors.BORDER_STRONG,
borderRadius: Module712.radii.round,
borderWidth: 1,
width: "100%",
height: "100%"
}
});
export default function RobloxConnectionActionSheet(props) {
const markAsDismissed = props.markAsDismissed;
const handleCancel = function handleCancel() {
ActionSheetActionCreators.hideActionSheet();
if (markAsDismissed != null) {
markAsDismissed(ContentDismissActionType.DISMISS);
}
};
const styles = useStyles();
const theme = useThemeContext().theme;
return } />} onDismiss={() => markAsDismissed(ContentDismissActionType.DISMISS)}>
{intl.string(t.t3asUZ)}
{intl.string(t.no96NU)}
} iconPosition="end" size="lg" onPress={function onPress() {
ActionSheetActionCreators.hideActionSheet();
if (markAsDismissed != null) {
markAsDismissed(ContentDismissActionType.PRIMARY);
}
authorizeConnection_native({
platformType: PlatformTypes.ROBLOX,
location: AnalyticsLocations.ROBLOX_CONNECTION_ACTION_SHEET
});
openUserSettings({
screen: UserSettingsSections.CONNECTIONS
});
}} />
;
};
export { UnionIcon };
export function useShouldShowRobloxConnectionCoachmark() {
let hasRoloxAccount;
const stateFromStores = useStateFromStores([LocalAppDetectionStore], () => LocalAppDetectionStore.isAppInstalled(DetectableAppNames.ROBLOX));
const [state, setState] = useState(false);
const stateFromStoresObject = useStateFromStoresObject([ConnectedAccountsStore], () => ({
fetchingAccounts: ConnectedAccountsStore.isFetching(),
hasRoloxAccount: ConnectedAccountsStore.getAccounts().find((item) => item.type === PlatformTypes.ROBLOX) != null
}));
const fetchingAccounts = stateFromStoresObject.fetchingAccounts;
hasRoloxAccount = stateFromStoresObject.hasRoloxAccount;
useEffect(() => {
let r3 = stateFromStores;
if (stateFromStores) {
r3 = !state;
}
if (r3) {
setState(true);
ConnectedAccountsActionCreators.fetch();
}
}, [state, stateFromStores]);
useEffect(() => {
if (hasRoloxAccount) {
UNSAFE_markDismissibleContentAsDismissed(DismissibleContent.ROBLOX_CONNECTION_COACHMARK, {
dismissAction: ContentDismissActionType.INDIRECT_ACTION
});
}
}, [hasRoloxAccount]);
return (fetchingAccounts ? !fetchingAccounts : stateFromStores) && !hasRoloxAccount;
}