local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local l_withLocalization_0 = v1.withLocalization;
local v5 = require(l_Parent_0.Common.TextKeys);
local v6 = require(l_Parent_0.Components.AvatarImage);
local v7 = require(l_Parent_0.Components.ViewUserProfile);
local v8 = require(l_Parent_0.Common.ContextPropsTypes);
local v9 = require(l_Parent_0.Components.ProfileSocialCircle);
local l_UIBlox_0 = v1.UIBlox;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_LoadingStateContainer_0 = l_UIBlox_0.App.Container.LoadingStateContainer;
local l_RetrievalStatus_0 = l_UIBlox_0.App.Loading.Enum.RetrievalStatus;
local l_EmptyState_0 = l_UIBlox_0.App.Indicator.EmptyState;
local l_ExpandableTextArea_0 = l_UIBlox_0.App.Text.ExpandableTextArea;
local l_LoadingSkeleton_0 = v1.LoadingSkeleton;
local v17 = require(l_Parent_0.Components.CurrentlyWearingCarousel);
local l_FFlagInvisibleModeSetupEnabled_0 = v1.InvisibleMode.Flags.FFlagInvisibleModeSetupEnabled;
local _ = require(script.Parent.profileCardMapStateToProps);
local _ = require(script.Parent.profileCardMapDispatchToProps);
local function _(v21)
    if v21 < 600 then
        return 20;
    else
        return 40;
    end;
end;
local v23 = l_Roact_0.PureComponent:extend("ProfileCard");
v23.validateProps = l_t_0.strictInterface({
    fetchProfilePageData = l_t_0.callback,
    profileUserId = l_t_0.string,
    profilePageDataStatus = l_RetrievalStatus_0.fromRawValue,
    isDeleted = l_t_0.boolean,
    isCurrentlyWearingAnything = l_t_0.boolean,
    description = l_t_0.string,
    width = l_t_0.number,
    height = l_t_0.number,
    wideMode = l_t_0.boolean,
    peekViewProps = l_t_0.optional(v8.validatePeekViewProps),
    disableWebViewSupport = l_t_0.optional(l_t_0.boolean),
    supportsWebViews = l_t_0.optional(l_t_0.boolean),
    navigation = l_t_0.optional(l_t_0.table)
});
v23.renderOnLoading = function(v24)
    local l_props_0 = v24.props;
    local v26 = if not l_props_0.wideMode then l_props_0.width < 600 and 20 or 40 else 48;
    return l_Roact_0.createElement("Frame", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1
    }, {
        Padding = l_Roact_0.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 12),
            PaddingLeft = UDim.new(0, v26),
            PaddingRight = UDim.new(0, v26)
        }),
        Skeleton = l_Roact_0.createElement(l_LoadingSkeleton_0, {
            Size = UDim2.new(1, -v26, 1, 0),
            createLayout = function()
                return l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 15)
                });
            end,
            panels = {
                {
                    Size = UDim2.new(0, l_props_0.width - v26 * 2, 0, l_props_0.width - v26 * 2)
                },
                {
                    Size = UDim2.new(1, -v26 * 2, 0, 44)
                },
                {
                    Size = UDim2.new(0.6, -v26 * 2, 0, 19)
                }
            }
        })
    });
end;
v23.renderOnLoaded = function(v27)
    local l_props_1 = v27.props;
    local l_profileUserId_0 = l_props_1.profileUserId;
    local l_isDeleted_0 = l_props_1.isDeleted;
    local v31 = not l_props_1.wideMode and 24 or 48;
    return l_withStyle_0(function(_)
        return l_Roact_0.createElement("Frame", {
            Position = UDim2.new(0, 0, 0, 0),
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1,
            BorderSizePixel = 0
        }, {
            ListLayout = l_Roact_0.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 24)
            }),
            AvatarImage = l_Roact_0.createElement(v6, {
                profileUserId = l_profileUserId_0,
                width = l_props_1.width,
                layoutOrder = 1,
                padding = v31,
                navigation = l_props_1.navigation,
                ZIndex = if not l_FFlagInvisibleModeSetupEnabled_0 then nil else 2
            }),
            Content = l_Roact_0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = 2
            }, {
                ListLayout = l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 0)
                }),
                SocialCircleFrame = l_Roact_0.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    LayoutOrder = 1
                }, {
                    ListLayout = l_Roact_0.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Vertical,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        Padding = UDim.new(0, v31)
                    }),
                    PagePadding = l_Roact_0.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, v31),
                        PaddingRight = UDim.new(0, v31),
                        PaddingTop = UDim.new(0, 0),
                        PaddingBottom = UDim.new(0, v31)
                    }),
                    SocialCircle = not l_isDeleted_0 and l_Roact_0.createElement(v9, {
                        layoutOrder = 1,
                        profileUserId = l_profileUserId_0
                    })
                }),
                DescriptionFrame = #l_props_1.description > 0 and l_Roact_0.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    LayoutOrder = 2
                }, {
                    ListLayout = l_Roact_0.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Vertical,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        Padding = UDim.new(0, 0)
                    }),
                    PagePadding = l_Roact_0.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, v31),
                        PaddingRight = UDim.new(0, v31),
                        PaddingTop = UDim.new(0, 0),
                        PaddingBottom = UDim.new(0, v31)
                    }),
                    Description = l_Roact_0.createElement(l_ExpandableTextArea_0, {
                        LayoutOrder = 1,
                        Text = l_props_1.description,
                        compactNumberOfLines = 3,
                        padding = Vector2.new(0, 0)
                    })
                }) or nil,
                CurrentlyWearing = (not l_isDeleted_0 and l_props_1.isCurrentlyWearingAnything) and l_Roact_0.createElement(v17, {
                    profileUserId = l_props_1.profileUserId,
                    layoutOrder = 3
                }),
                ViewUserProfileFrame = if not (v27.props.supportsWebViews ~= false) or l_isDeleted_0 then nil else l_Roact_0.createElement("Frame", {
                    Size = UDim2.fromScale(1, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    BackgroundTransparency = 1,
                    LayoutOrder = 4
                }, {
                    PagePadding = l_Roact_0.createElement("UIPadding", {
                        PaddingLeft = UDim.new(0, v31),
                        PaddingRight = UDim.new(0, v31),
                        PaddingTop = UDim.new(0, 0),
                        PaddingBottom = UDim.new(0, 48 + v31)
                    }),
                    ViewUserProfile = l_Roact_0.createElement(v7)
                })
            })
        });
    end);
end;
v23.renderOnFailed = function(v33, v34)
    local l_props_2 = v33.props;
    return l_Roact_0.createElement(l_EmptyState_0, {
        position = UDim2.new(0.5, 0, 0.5, -48),
        onActivated = function()
            l_props_2.fetchProfilePageData();
        end,
        text = v34.failedMessage
    });
end;
v23.render = function(v36)
    local l_props_3 = v36.props;
    local l_profilePageDataStatus_0 = l_props_3.profilePageDataStatus;
    return l_Roact_0.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 0),
        Position = UDim2.new(0, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        ClipsDescendants = true
    }, {
        ProfileDetails = l_Roact_0.createElement("Frame", {
            Position = UDim2.new(0, 0, 0, 0),
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            BackgroundTransparency = 1
        }, {
            Background = l_Roact_0.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, l_props_3.height),
                Position = UDim2.new(0, 0, 0, 0),
                BackgroundTransparency = 1,
                ZIndex = 1
            }),
            LoadingState = l_withLocalization_0({
                failedMessage = v5.NoInternet
            })(function(v39)
                return l_Roact_0.createElement("Frame", {
                    Size = UDim2.fromScale(1, 1),
                    Position = UDim2.new(0, 0, 0, 0),
                    ZIndex = 2,
                    BackgroundTransparency = 1
                }, {
                    LoadingStateContainer = l_Roact_0.createElement(l_LoadingStateContainer_0, {
                        dataStatus = l_RetrievalStatus_0.fromRawValue(l_profilePageDataStatus_0),
                        renderOnFailed = function()
                            return v36:renderOnFailed(v39);
                        end,
                        renderOnLoading = function()
                            return v36:renderOnLoading();
                        end,
                        renderOnLoaded = function()
                            return v36:renderOnLoaded();
                        end
                    })
                });
            end)
        })
    });
end;
return v23;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_RoactRodux_0 = v1.RoactRodux;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_UniversalAppPolicy_0 = v1.UniversalAppPolicy;
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local v7 = require(l_Parent_0.ProfileContext);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v9 = require(script.Parent.ProfileCard);
local v10 = require(script.Parent.profileCardMapStateToProps);
local v11 = require(script.Parent.profileCardMapDispatchToProps);
local v12 = l_Roact_0.PureComponent:extend("ProfileCardContainer");
v12.init = function(v13)
    local l_props_0 = v13.props;
    v13.fetchProfilePageData = function()
        return l_props_0.fetchProfilePageData(l_props_0.profileUserId);
    end;
end;
v12.render = function(v15)
    local l_props_1 = v15.props;
    return l_Roact_0.createElement(v9, {
        fetchProfilePageData = v15.fetchProfilePageData,
        profileUserId = l_props_1.profileUserId,
        peekViewProps = l_props_1.peekViewProps,
        profilePageDataStatus = l_props_1.profilePageDataStatus,
        isDeleted = l_props_1.isDeleted,
        isCurrentlyWearingAnything = l_props_1.isCurrentlyWearingAnything,
        width = l_props_1.width,
        height = l_props_1.height,
        wideMode = l_props_1.wideMode,
        description = l_props_1.description,
        supportsWebViews = l_props_1.supportsWebViews,
        navigation = l_props_1.navigation
    });
end;
return l_compose_0(l_RoactRodux_0.connect(v10, v11), v7.connect(function(v17)
    return {
        profileUserId = v17.profileUserId,
        peekViewProps = v17.peekViewProps,
        wideMode = v17.wideMode,
        profileType = v17.profileType
    };
end), l_UniversalAppPolicy_0.connect(function(v18)
    return {
        supportsWebViews = v18.getWebViewSupport()
    };
end))(v12);


local v0 = require(script.Parent.Parent.Parent.Thunks.FetchProfilePageData);
return function(v1)
    return {
        fetchProfilePageData = function(v2)
            v1(v0(v2));
        end
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_RetrievalStatus_0 = v1.UIBlox.App.Loading.Enum.RetrievalStatus;
local l_SocialLibraries_0 = v1.SocialLibraries;
local _ = require(l_Parent_0.Reducers.Root);
local l_getDeepValue_0 = l_SocialLibraries_0.Dictionary.getDeepValue;
return function(v6, v7)
    local v8 = v7.profileUserId or "";
    local v9 = l_getDeepValue_0(v6, string.format("Profile.AdditionalUserFields.%s.isDeleted", v8));
    local v10 = l_getDeepValue_0(v6, string.format("Profile.CurrentlyWearing.%s", v8));
    local v11 = {
        profilePageDataStatus = v6.Profile.ProfilePageDataStatus[v8] or l_RetrievalStatus_0.NotStarted.rawValue(),
        isDeleted = v9 or false,
        description = l_getDeepValue_0(v6, string.format("Profile.AdditionalUserFields.%s.description", v8)) or ""
    };
    local v12;
    if v10 then
        v12 = true;
        if not (#v10 <= 0) then
            goto label0;
        end;
    end;
    v12 = false;
    ::label0::;
    v11.isCurrentlyWearingAnything = v12;
    return v11;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Dash_0 = v1.Dash;
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_ContextualMenu_0 = l_UIBlox_0.App.Menu.ContextualMenu;
local l_MenuDirection_0 = l_UIBlox_0.App.Menu.MenuDirection;
local l_withLocalization_0 = v1.withLocalization;
local v8 = require(l_Parent_0.Common.TextKeys);
local v9 = require(script.Parent.contextualMenuRows);
local v10 = require(l_Parent_0.Common.ContextualMenuRowsEnums);
local l_memoize_0 = v1.memoize;
local l_t_0 = v1.t;
local l_Otter_0 = v1.Otter;
local v14 = require(l_Parent_0.Common.ProfileTypes);
local l_RoactAppExperiment_0 = v1.RoactAppExperiment;
local l_AppUserLayers_0 = v1.AppUserLayers;
local l_UplevelAliasIXP_0 = v1.UserProfiles.Flags.UplevelAliasIXP;
local v18 = l_Roact_0.PureComponent:extend("ProfileContextualMenu");
local v19 = {
    motorCallback = l_Otter_0.instant,
    open = {
        targetValue = 1
    },
    close = {
        targetValue = 0
    }
};
v18.validateProps = l_t_0.strictInterface({
    friendStatus = l_t_0.enum(Enum.FriendStatus),
    isInExperience = l_t_0.boolean,
    screenSize = l_t_0.Vector2,
    onDismiss = l_t_0.callback,
    onClickWithToast = l_t_0.callback,
    isBlocked = l_t_0.optional(l_t_0.boolean),
    rowActions = v9.validateRowActions,
    disableWebViewSupport = l_t_0.optional(l_t_0.boolean),
    useLuafiedReportFlow = l_t_0.optional(l_t_0.boolean),
    profileType = v14.validateProfileType,
    navigation = l_t_0.optional(l_t_0.table),
    uplevelAliasEnabled = l_t_0.optional(l_t_0.boolean)
});
v18.init = function(v20)
    v20.newLocalized = {};
    v20.getButtons = l_memoize_0(function(v21, v22, v23, v24, v25, v26)
        local v27 = {
            friendStatus = v21,
            isInExperience = v22,
            isBlocked = v23,
            disableWebViewSupport = v26,
            profileType = v25
        };
        return l_Dash_0.map(l_Dash_0.filter(v9.contextualMenuSettings, function(v28)
            return v28.validator(v27);
        end), function(v29)
            local v30 = v20.newLocalized[v29.name];
            return l_Dash_0.join(v29.props, {
                text = v30.text,
                onActivated = v20.props.onClickWithToast({
                    actionCallback = v20.props.rowActions[v29.name](v29.showToast),
                    showToast = v29.showToast,
                    errorTitle = v24,
                    successTitle = v30.successMessage,
                    successIcon = v29.props.icon,
                    replaceScreen = v29.showToast
                })
            });
        end);
    end);
end;
v18.render = function(v31)
    return l_withLocalization_0({
        chatText = v8.Chat,
        unfriendText = v8.Unfriend,
        unfriendSuccess = v8.FriendRemoved,
        errorText = v8.SomethingIsWrong,
        reportText = v8.Report,
        ignoreFriendRequestText = v8.IgnoreFriendRequest,
        blockUserText = v8.Block,
        ignoreFriendRequestSuccess = v8.RequestIgnored,
        blockUserSuccess = v8.UserBlocked,
        setAliasText = if not v31.props.uplevelAliasEnabled then v8.SetAlias else v8.CustomizeName
    })(function(v32)
        local l_props_0 = v31.props;
        v31.newLocalized = {
            [v10.CHAT] = {
                text = v32.chatText,
                successMessage = ""
            },
            [v10.UNFRIEND] = {
                text = v32.unfriendText,
                successMessage = v32.unfriendSuccess
            },
            [v10.REPORT] = {
                text = v32.reportText,
                successMessage = ""
            },
            [v10.IGNORE_FRIEND_REQUEST] = {
                text = v32.ignoreFriendRequestText,
                successMessage = v32.ignoreFriendRequestSuccess
            },
            [v10.BLOCK] = {
                text = v32.blockUserText,
                successMessage = v32.blockUserSuccess
            },
            [v10.SET_ALIAS] = {
                text = v32.setAliasText,
                successMessage = ""
            }
        };
        return l_Roact_0.createElement(l_ContextualMenu_0, {
            buttonProps = v31.getButtons(l_props_0.friendStatus, l_props_0.isInExperience, l_props_0.isBlocked, v32.errorText, l_props_0.profileType, l_props_0.disableWebViewSupport),
            open = true,
            onDismiss = l_props_0.onDismiss,
            menuDirection = l_MenuDirection_0.Up,
            openPositionX = UDim.new(0, -135),
            openPositionY = UDim.new(1, -88),
            screenSize = l_props_0.screenSize,
            closeBackgroundVisible = false,
            motorOverrideOptions = v19
        });
    end);
end;
if l_UplevelAliasIXP_0.isSetupEnabled() then
    v18 = l_RoactAppExperiment_0.connectUserLayer({
        l_AppUserLayers_0.SocialFriendsLayer
    }, function(v34, _)
        return {
            uplevelAliasEnabled = l_UplevelAliasIXP_0.isExperimentEnabled(v34)
        };
    end)(v18);
end;
return v18;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_LuaAppsConstants_0 = v1.LuaAppsConstants;
local l_Roact_0 = v1.Roact;
local l_RoactRodux_0 = v1.RoactRodux;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_Dash_0 = v1.Dash;
local l_memoize_0 = v1.memoize;
local l_UniversalAppPolicy_0 = v1.UniversalAppPolicy;
local l_SetAlias_0 = v1.SetAlias;
local v10 = require(script.Parent.ProfileContextualMenu);
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local v12 = require(l_Parent_0.ProfileContext);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v14 = require(script.Parent.profileContextualMenuMapStateToProps);
local v15 = require(script.Parent.profileContextualMenuMapDispatchToProps);
local v16 = require(l_Parent_0.Common.ProfileScreens);
local v17 = require(l_Parent_0.Common.ContextualMenuRowsEnums);
local v18 = require(l_Parent_0.Analytics);
local _ = require(l_Parent_0.Common.ProfileTypes);
local l_Promise_0 = v1.Promise;
local v21 = l_Roact_0.PureComponent:extend("ProfileContextualMenuContainer");
local l_GetFFlagLuafiedReportEntryPoints_0 = v1.GetFFlagLuafiedReportEntryPoints;
v21.init = function(v23)
    local l_props_0 = v23.props;
    v23.state = {
        hide = false
    };
    v23.hideMenu = function()
        v23:setState({
            hide = true
        });
    end;
    v23.onDismiss = l_memoize_0(function(v25)
        if v25 then
            v23.hideMenu();
        end;
        l_props_0.onDismiss(v25);
    end);
    v23.rowActions = {
        [v17.REPORT] = l_memoize_0(function(v26)
            return function()
                v23.onDismiss(v26);
                l_props_0.analytics:contextualMenuClick(v17.REPORT);
                if not l_props_0.useLuafiedReportFlow then
                    l_props_0.navigateToLuaAppPages[v16.ReportUser](l_props_0.profileUserId);
                    return ;
                else
                    l_props_0.reportUser({
                        reportEntryPoint = l_LuaAppsConstants_0.ReportDialogEntryPoints.Profile,
                        profileUserId = l_props_0.profileUserId
                    });
                    return ;
                end;
            end;
        end),
        [v17.CHAT] = l_memoize_0(function(v27)
            return function()
                v23.onDismiss(v27);
                l_props_0.analytics:contextualMenuClick(v17.CHAT);
                l_props_0.navigateToLuaAppPages[v16.Chat](l_props_0.profileUserId);
            end;
        end),
        [v17.SET_ALIAS] = l_memoize_0(function(v28)
            return function()
                v23.onDismiss(v28);
                l_props_0.analytics:contextualMenuClick(v17.SET_ALIAS);
                l_props_0.navigation.navigate(v16.SetAliasModal, {
                    profileUserId = l_props_0.profileUserId,
                    origin = l_SetAlias_0.Analytics.EntryPoints.ContextualMenu
                });
            end;
        end),
        [v17.BLOCK] = l_memoize_0(function(v29)
            return function()
                v23.onDismiss(v29);
                l_props_0.analytics:contextualMenuClick(v17.BLOCK);
                return l_props_0.blockUser({
                    targetUserId = l_props_0.profileUserId,
                    currentUserId = l_props_0.localUserId
                });
            end;
        end),
        [v17.UNFRIEND] = l_memoize_0(function(v30)
            return function()
                v23.onDismiss(v30);
                l_props_0.analytics:contextualMenuClick(v17.UNFRIEND);
                return l_props_0.unFriendUser({
                    targetUserId = l_props_0.profileUserId,
                    currentUserId = l_props_0.localUserId
                });
            end;
        end),
        [v17.IGNORE_FRIEND_REQUEST] = l_memoize_0(function(v31)
            return function()
                v23.onDismiss(v31);
                l_props_0.analytics:contextualMenuClick(v17.IGNORE_FRIEND_REQUEST);
                if l_props_0.friendStatus == Enum.FriendStatus.FriendRequestReceived then
                    return l_props_0.ignoreFriendRequest({
                        targetUserId = l_props_0.profileUserId,
                        currentUserId = l_props_0.localUserId
                    }):finally(function(_)
                        l_props_0.resetProfileType();
                    end);
                else
                    return l_Promise_0.resolve(l_props_0.resetProfileType());
                end;
            end;
        end)
    };
end;
v21.render = function(v33)
    return not v33.state.hide and l_Roact_0.createElement(v10, l_Dash_0.join(v33.props, {
        rowActions = v33.rowActions,
        blockUser = l_Dash_0.None,
        unFriendUser = l_Dash_0.None,
        ignoreFriendRequest = l_Dash_0.None,
        reportUser = l_Dash_0.None,
        navigateToLuaAppPages = l_Dash_0.None,
        profileUserId = l_Dash_0.None,
        localUserId = l_Dash_0.None,
        analytics = l_Dash_0.None,
        resetProfileType = l_Dash_0.None
    })) or nil;
end;
return l_compose_0(v12.connect(function(v34)
    return {
        profileUserId = v34.profileUserId,
        localUserId = v34.localUserId,
        navigateToLuaAppPages = v34.navigateToLuaAppPages,
        profileType = v34.profileType,
        resetProfileType = v34.resetProfileType
    };
end), l_RoactRodux_0.connect(v14, v15), v18.connect(function(v35)
    return {
        analytics = v35
    };
end), l_UniversalAppPolicy_0.connect(function(v36)
    return {
        useLuafiedReportFlow = if not l_GetFFlagLuafiedReportEntryPoints_0() then nil else v36.getUseLuafiedReportFlow()
    };
end))(v21);


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Images_0 = v1.UIBlox.App.ImageSet.Images;
local l_Dash_0 = v1.Dash;
local v4 = require(l_Parent_0.Common.ProfileTypes);
local l_GetFFlagLuafiedReportEntryPoints_0 = v1.GetFFlagLuafiedReportEntryPoints;
local v6 = require(l_Parent_0.Common.ContextualMenuRowsEnums);
local function v10(v7)
    return not l_Dash_0.find(v7, function(_, v9)
        return not v6.isEnumValue(v9);
    end);
end;
local v13 = {
    {
        name = v6.CHAT,
        props = {
            icon = l_Images_0["icons/menu/chat_off"]
        },
        showToast = false,
        validator = function(v11)
            local v12 = false;
            if v11.friendStatus == Enum.FriendStatus.Friend then
                v12 = v11.isInExperience;
            end;
            return v12;
        end
    }
};
table.insert(v13, {
    name = v6.SET_ALIAS,
    props = {
        icon = l_Images_0["icons/actions/edit/edit"]
    },
    showToast = false,
    validator = function(v14)
        return v14.friendStatus == Enum.FriendStatus.Friend;
    end
});
table.insert(v13, {
    name = v6.IGNORE_FRIEND_REQUEST,
    props = {
        icon = l_Images_0["icons/actions/reject"]
    },
    showToast = true,
    validator = function(v15)
        local v16 = true;
        if v15.friendStatus ~= Enum.FriendStatus.FriendRequestReceived then
            v16 = v15.profileType == v4.OffNetworkFriendRequest;
        end;
        return v16;
    end
});
table.insert(v13, {
    name = v6.REPORT,
    props = {
        icon = l_Images_0["icons/actions/feedback"]
    },
    showToast = false,
    validator = function(v17)
        if not v17.disableWebViewSupport or l_GetFFlagLuafiedReportEntryPoints_0() then
            return true;
        else
            return false;
        end;
    end
});
table.insert(v13, {
    name = v6.BLOCK,
    props = {
        icon = l_Images_0["icons/actions/block"]
    },
    showToast = true,
    validator = function(v18)
        return not v18.isBlocked;
    end
});
table.insert(v13, {
    name = v6.UNFRIEND,
    props = {
        icon = l_Images_0["icons/actions/friends/friendRemove"]
    },
    showToast = true,
    validator = function(v19)
        return v19.friendStatus == Enum.FriendStatus.Friend;
    end
});
return {
    contextualMenuSettings = v13,
    validateRowActions = v10
};


local v0 = require(script.Parent.Parent.Parent.dependencies);
local l_NetworkingFriends_0 = v0.NetworkingFriends;
local l_NetworkingBlocking_0 = v0.NetworkingBlocking;
local l_OpenReportDialog_0 = v0.OpenReportDialog;
return function(v4)
    return {
        blockUser = function(v5)
            return v4(l_NetworkingBlocking_0.BlockUserById.API({
                userId = v5.targetUserId,
                currentUserId = v5.currentUserId
            }));
        end,
        unFriendUser = function(v6)
            return v4(l_NetworkingFriends_0.UnfriendTargetUserId.API(v6));
        end,
        ignoreFriendRequest = function(v7)
            return v4(l_NetworkingFriends_0.DeclineFriendRequestFromUserId.API(v7));
        end,
        reportUser = function(v8)
            return v4(l_OpenReportDialog_0(v8));
        end
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_getDeepValue_0 = require(l_Parent_0.dependencies).SocialLibraries.Dictionary.getDeepValue;
local _ = require(l_Parent_0.Reducers.Root);
local v3 = require(l_Parent_0.Utils.isUserInGame);
return function(v4, v5)
    return {
        friendStatus = l_getDeepValue_0(v4, string.format("Profile.FriendshipStatus.%s", v5.profileUserId)) or Enum.FriendStatus.NotFriend,
        isBlocked = l_getDeepValue_0(v4, string.format("Profile.IsBlockedByMe.%s", v5.profileUserId)) or false,
        screenSize = v4.ScreenSize,
        isInExperience = v3(l_getDeepValue_0(v4, string.format("Profile.Presence.byUserId.%s.userPresenceType", v5.profileUserId)), l_getDeepValue_0(v4, string.format("Profile.Presence.byUserId.%s.lastLocation", v5.profileUserId)) or "")
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local v4 = require(l_Parent_0.Utils.onClickWithToast);
local v5 = require(l_Parent_0.Components.ProfileContextualMenu);
local v6 = l_Roact_0.PureComponent:extend("ProfileContextualMenuOverlay");
v6.validateProps = l_t_0.strictInterface({
    navigation = l_t_0.any,
    menuElement = l_t_0.optional(l_t_0.table)
});
v6.defaultProps = {
    menuElement = v5
};
v6.init = function(v7)
    v7.onDismiss = function(v8)
        local l_props_0 = v7.props;
        l_props_0.navigation.getParam("onCloseContextualMenu")();
        if not v8 then
            l_props_0.navigation.goBack();
        end;
    end;
    v7.onClickWithToast = function(v10)
        return v4(v7.props.navigation, v10);
    end;
end;
v6.render = function(v11)
    return l_Roact_0.createElement(v11.props.menuElement, {
        onDismiss = v11.onDismiss,
        onClickWithToast = v11.onClickWithToast,
        navigation = v11.props.navigation
    });
end;
return v6;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local v2 = require(l_Parent_0.ProfileContext);
local l_compose_0 = v1.SocialLibraries.RoduxTools.compose;
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local l_RoactRodux_0 = v1.RoactRodux;
local l_NetworkingPresence_0 = v1.NetworkingPresence;
local l_t_0 = v1.t;
local l_Dash_0 = v1.Dash;
local l_Roact_0 = v1.Roact;
local l_NetworkingFriends_0 = v1.NetworkingFriends;
local v11 = l_Roact_0.Component:extend("ProfileEventReceiver");
local v12 = {
    FriendshipDestroyed = true,
    FriendshipCreated = true,
    FriendshipRequested = true
};
v11.validateProps = l_t_0.strictInterface({
    robloxEventReceiver = l_t_0.any,
    getPresenceFromUserId = l_t_0.callback,
    profileUserId = l_t_0.string,
    localUserId = l_t_0.string,
    getUpdatedFriendshipStatus = l_t_0.callback
});
v11.init = function(v13)
    local l_props_0 = v13.props;
    local l_robloxEventReceiver_0 = l_props_0.robloxEventReceiver;
    v13.tokens = {
        l_robloxEventReceiver_0:observeEvent("PresenceBulkNotifications", function(v16)
            if l_Dash_0.find(v16, function(v17)
                return tostring(v17.UserId) == l_props_0.profileUserId;
            end) then
                l_props_0.getPresenceFromUserId(l_props_0.profileUserId);
            end;
        end),
        l_robloxEventReceiver_0:observeEvent("FriendshipNotifications", function(v18)
            if v12[v18.Type] then
                local v19 = tostring(v18.EventArgs.UserId1);
                local v20 = tostring(v18.EventArgs.UserId2);
                local l_localUserId_0 = l_props_0.localUserId;
                local l_v19_0 = v19;
                if v19 == l_localUserId_0 then
                    l_v19_0 = v20;
                end;
                l_props_0.getUpdatedFriendshipStatus({
                    localUserId = l_localUserId_0,
                    targetUserId = l_v19_0
                });
            end;
        end)
    };
end;
v11.render = function(_)
    return nil;
end;
v11.willUnmount = function(v24)
    for _, v26 in pairs(v24.tokens) do
        v26:disconnect();
    end;
end;
return l_compose_0(l_RoactRodux_0.connect(nil, function(v27)
    return {
        getPresenceFromUserId = function(v28)
            v27(l_NetworkingPresence_0.GetPresencesFromUserIds.API({
                v28
            }));
        end,
        getUpdatedFriendshipStatus = function(v29)
            v27(l_NetworkingFriends_0.GetFriendshipStatus.API({
                currentUserId = v29.localUserId,
                targetUserId = v29.targetUserId
            }));
        end
    };
end), v2.connect(function(v30)
    return {
        profileUserId = v30.profileUserId,
        localUserId = v30.localUserId
    };
end))(v11);


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_t_0 = v1.t;
local l_PresenceType_0 = v1.RoduxPresence.Enums.PresenceType;
local l_PlayerContext_0 = l_UIBlox_0.App.Indicator.PlayerContext;
local v8 = require(l_Parent_0.Utils.ProfileContextualInfoUtils);
local v9 = require(l_Parent_0.Utils.isUserInGame);
local l_withLocalization_0 = v1.withLocalization;
local v11 = UDim2.fromOffset(12, 12);
local v12 = l_Roact_0.PureComponent:extend("ProfileFriendContextualInfo");
v12.validateProps = l_t_0.strictInterface({
    userPresenceType = l_PresenceType_0.isEnumValue,
    lastLocation = l_t_0.optional(l_t_0.string),
    layoutOrder = l_t_0.optional(l_t_0.number),
    onActivated = l_t_0.optional(l_t_0.callback),
    isUserDeleted = l_t_0.optional(l_t_0.boolean)
});
local v13 = {
    [l_PresenceType_0.Offline] = "Common.Presence.Label.Offline",
    [l_PresenceType_0.Online] = "Common.Presence.Label.Online",
    [l_PresenceType_0.InGame] = "Common.Presence.Label.Online",
    [l_PresenceType_0.InStudio] = "Common.Presence.Label.Online"
};
v12.render = function(v14)
    local l_props_0 = v14.props;
    local l_userPresenceType_0 = l_props_0.userPresenceType;
    local l_lastLocation_0 = l_props_0.lastLocation;
    return l_withStyle_0(function(v18)
        return l_withLocalization_0({
            presenceText = v13[l_userPresenceType_0],
            accountDeletedText = "Feature.Friends.Action.AccountDeleted"
        })(function(v19)
            local v20 = not not l_props_0.isUserDeleted and v19.accountDeletedText or v19.presenceText;
            local v21 = false;
            if l_userPresenceType_0 == l_PresenceType_0.Online then
                v21 = not l_props_0.isUserDeleted;
            end;
            return l_Roact_0.createElement("Frame", {
                Position = UDim2.new(0, 0, 0, 0),
                Size = UDim2.new(1, 0, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = l_props_0.layoutOrder
            }, {
                PlayerContext = l_Roact_0.createElement(l_PlayerContext_0, {
                    icon = v8.getPresenceIcon(l_userPresenceType_0),
                    iconSize = not not v21 and v11 or nil,
                    iconColor = not not v21 and v18.Theme.OnlineStatus.Color or nil,
                    iconTransparency = not not v21 and v18.Theme.OnlineStatus.Transparency or nil,
                    text = v8.getPresenceText(l_userPresenceType_0, l_lastLocation_0, v20),
                    fontStyle = not not v9(l_userPresenceType_0, l_lastLocation_0) and v18.Font.CaptionHeader or v18.Font.CaptionBody,
                    onActivated = not not v9(l_userPresenceType_0, l_lastLocation_0) and l_props_0.onActivated or nil
                })
            });
        end);
    end);
end;
return v12;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local l_PresenceType_0 = v1.RoduxPresence.Enums.PresenceType;
local v5 = require(l_Parent_0.ProfileContext);
local v6 = require(l_Parent_0.Common.ContextPropsTypes);
local v7 = require(l_Parent_0.Common.ProfileScreens);
local v8 = require(script.Parent.ProfileFriendContextualInfo);
local l_RoactRodux_0 = v1.RoactRodux;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local l_getDeepValue_0 = l_SocialLibraries_0.Dictionary.getDeepValue;
local v13 = require(l_Parent_0.Analytics);
local v14 = l_Roact_0.PureComponent:extend("ProfileFriendContextualInfoContainer");
v14.validateProps = l_t_0.strictInterface({
    layoutOrder = l_t_0.optional(l_t_0.number),
    profileUserId = l_t_0.string,
    userPresenceType = l_PresenceType_0.isEnumValue,
    lastLocation = l_t_0.optional(l_t_0.string),
    isUserDeleted = l_t_0.optional(l_t_0.boolean),
    universeId = l_t_0.optional(l_t_0.number),
    analytics = l_t_0.table,
    navigateToLuaAppPages = v6.validateNavigateToLuaAppPages,
    peekViewProps = v6.validatePeekViewProps
});
v14.init = function(v15)
    v15.openGameDetails = function()
        local l_props_0 = v15.props;
        local l_universeId_0 = l_props_0.universeId;
        if l_universeId_0 then
            l_props_0.analytics:buttonClick(v13.Enums.ButtonClickEvents.GameDetails);
            l_props_0.navigateToLuaAppPages[v7.GameDetailsPeekView](tostring(l_universeId_0), {
                mountAsFullView = true,
                showBackButton = true,
                onPeekViewClosed = l_props_0.peekViewProps.onPeekViewClosed
            });
        end;
    end;
end;
v14.render = function(v18)
    local l_props_1 = v18.props;
    return l_Roact_0.createElement(v8, {
        userPresenceType = l_props_1.userPresenceType,
        lastLocation = l_props_1.lastLocation,
        layoutOrder = l_props_1.layoutOrder,
        onActivated = v18.openGameDetails,
        isUserDeleted = l_props_1.isUserDeleted
    });
end;
local function v23(v20, v21)
    local v22 = v21.profileUserId or "";
    return {
        userPresenceType = l_getDeepValue_0(v20, string.format("Profile.Presence.byUserId.%s.userPresenceType", v22)) or l_PresenceType_0.Offline,
        lastLocation = l_getDeepValue_0(v20, string.format("Profile.Presence.byUserId.%s.lastLocation", v22)),
        isUserDeleted = l_getDeepValue_0(v20, string.format("Profile.AdditionalUserFields.%s.isDeleted", v22)) or false,
        universeId = l_getDeepValue_0(v20, string.format("Profile.Presence.byUserId.%s.universeId", v22))
    };
end;
return {
    Container = l_compose_0(l_RoactRodux_0.connect(v23, nil), v5.connect(function(v24)
        return {
            navigateToLuaAppPages = v24.navigateToLuaAppPages,
            peekViewProps = v24.peekViewProps
        };
    end), v13.connect(function(v25)
        return {
            analytics = v25
        };
    end))(v14),
    mapStateToProps = v23
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_RoactRodux_0 = v1.RoactRodux;
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v6 = require(l_Parent_0.ProfileContext);
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local v8 = require(script.Parent.profileJoinButtonMapDispatchToProps);
local v9 = require(script.Parent.profileJoinButtonMapStateToProps);
local v10 = require(script.Parent.ProfileJoinButton);
return l_compose_0(v6.connect(function(v11)
    return {
        profileUserId = v11 and v11.profileUserId,
        navigateToLuaAppPages = v11 and v11.navigateToLuaAppPages,
        navigationParams = v11.navigationParams
    };
end), l_RoactRodux_0.connect(v9, v8), require(l_Parent_0.Analytics).connect(function(v12)
    return {
        analytics = v12
    };
end))(function(v13)
    return l_Roact_0.createElement(v10, v13);
end);


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_t_0 = v1.t;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local v6 = require(l_Parent_0.Common.ContextPropsTypes);
local v7 = l_Roact_0.PureComponent:extend("ProfileModalView");
v7.validateProps = l_t_0.strictInterface({
    renderBottomBar = l_t_0.callback,
    renderContent = l_t_0.callback,
    renderTopBar = l_t_0.callback,
    viewWidth = l_t_0.number,
    peekViewProps = v6.validatePeekViewProps,
    bottomOffset = l_t_0.number,
    topBarHeight = l_t_0.number
});
v7.render = function(v8)
    local l_props_0 = v8.props;
    return l_withStyle_0(function(v10)
        return l_Roact_0.createElement("ImageButton", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = v10.Theme.Overlay.Transparency,
            BackgroundColor3 = v10.Theme.Overlay.Color,
            Active = true,
            AutoButtonColor = false
        }, {
            ProfileWindow = l_Roact_0.createElement("Frame", {
                AnchorPoint = Vector2.new(0.5, 0),
                Position = UDim2.new(0.5, 0, 0, 0),
                Size = UDim2.new(0, l_props_0.viewWidth, 1, 0),
                BackgroundTransparency = v10.Theme.BackgroundDefault.Transparency,
                BackgroundColor3 = v10.Theme.BackgroundDefault.Color,
                BorderSizePixel = 0
            }, {
                ProfileTopBar = l_props_0.renderTopBar(),
                PeekViewContainer = l_Roact_0.createElement("ScrollingFrame", {
                    ScrollingDirection = Enum.ScrollingDirection.Y,
                    BackgroundTransparency = 1,
                    Size = UDim2.new(1, 1, 1, -l_props_0.topBarHeight - 40),
                    Position = UDim2.new(0, 0, 0, l_props_0.topBarHeight),
                    ScrollBarThickness = 0,
                    CanvasSize = UDim2.new(1, 0, 0, 0),
                    AutomaticCanvasSize = Enum.AutomaticSize.Y
                }, {
                    Content = l_props_0.renderContent()
                }),
                ProfileBottomBar = l_props_0.renderBottomBar()
            })
        });
    end);
end;
return v7;


local v0 = require(script:FindFirstAncestor("Profile").dependencies);
local l_Roact_0 = v0.Roact;
local l_UIBlox_0 = v0.UIBlox;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_t_0 = v0.t;
local l_IconButton_0 = l_UIBlox_0.App.Button.IconButton;
local v6 = l_Roact_0.PureComponent:extend("ProfileMoreButton");
v6.BUTTON_ICON_IMAGE = "icons/menu/more_off";
v6.BUTTON_ICON_IMAGE_ON = "icons/menu/more_on";
v6.BUTTON_ICON_IMAGE_OFF = "icons/menu/more_off";
v6.BUTTON_QR_ICON = "icons/menu/scanqr";
v6.validateProps = l_t_0.strictInterface({
    layoutOrder = l_t_0.optional(l_t_0.integer),
    onActivated = l_t_0.callback,
    isDisabled = l_t_0.optional(l_t_0.boolean),
    isSelected = l_t_0.optional(l_t_0.boolean),
    isQRCode = l_t_0.optional(l_t_0.boolean)
});
v6.defaultProps = {
    layoutOrder = 0
};
v6.render = function(v7)
    local l_props_0 = v7.props;
    local v9 = if not l_props_0.isSelected then l_Images_0[v6.BUTTON_ICON_IMAGE_OFF] else l_Images_0[v6.BUTTON_ICON_IMAGE_ON];
    if l_props_0.isQRCode then
        v9 = l_Images_0[v6.BUTTON_QR_ICON];
    end;
    return l_Roact_0.createElement(l_IconButton_0, {
        isDisabled = l_props_0.isDisabled,
        size = UDim2.fromOffset(0, 0),
        icon = v9,
        layoutOrder = l_props_0.layoutOrder,
        onActivated = l_props_0.onActivated
    });
end;
return v6;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local l_t_0 = v1.t;
local l_PlayerContext_0 = l_UIBlox_0.App.Indicator.PlayerContext;
local l_withLocalization_0 = v1.withLocalization;
local v9 = require(l_Parent_0.Common.TextKeys);
local v10 = require(l_Parent_0.Common.ProfileTypes);
local l_RecommendationContextType_0 = v1.RoduxFriends.Enums.RecommendationContextType;
local l_FriendshipOriginSourceType_0 = v1.NetworkingFriendsEnums.FriendshipOriginSourceType;
local l_getMutualFriendsText_0 = v1.SocialCommon.Utils.getMutualFriendsText;
local _ = require(game:GetService("CorePackages").Packages.React);
local v15 = UDim2.fromOffset(12, 12);
local v16 = l_Roact_0.PureComponent:extend("ProfileNonFriendContextualInfo");
v16.validateProps = l_t_0.strictInterface({
    layoutOrder = l_t_0.optional(l_t_0.number),
    isUserDeleted = l_t_0.optional(l_t_0.boolean),
    amIFollowingUser = l_t_0.optional(l_t_0.boolean),
    isUserFollowingMe = l_t_0.optional(l_t_0.boolean),
    experienceName = l_t_0.optional(l_t_0.string),
    sourceUniverseId = l_t_0.optional(l_t_0.number),
    getExperiencesDetails = l_t_0.callback,
    profileType = v10.validateProfileType,
    isRecommendation = l_t_0.optional(l_t_0.boolean),
    recommendationContextType = l_t_0.optional(l_t_0.string),
    mutualFriendsCount = l_t_0.optional(l_t_0.number),
    friendshipOriginSourceType = l_t_0.optional(l_t_0.string),
    contextualInfoDisplay = l_t_0.optional(l_t_0.table)
});
v16.init = function(v17)
    v17.getRecommendationText = function(v18)
        if v17.props.recommendationContextType == l_RecommendationContextType_0.MutualFriends.rawValue() and v17.props.mutualFriendsCount > 0 then
            return l_getMutualFriendsText_0({
                mutualFriendsCount = v17.props.mutualFriendsCount,
                localized = {
                    mutualFriends = v18.mutualFriends,
                    singularMutualFriend = v18.singularMutualFriend
                }
            });
        elseif v17.props.recommendationContextType == l_RecommendationContextType_0.Frequents.rawValue() then
            return v18.playedTogether;
        else
            return nil;
        end;
    end;
    v17.getTextAndIcon = function(v19)
        local l_props_0 = v17.props;
        local l_experienceName_0 = l_props_0.experienceName;
        if not l_props_0.contextualInfoDisplay then
            if not l_props_0.isUserDeleted then
                if l_props_0.profileType == v10.OffNetworkFriendRequest then
                    return v19.invitedMeToRoblox, nil;
                elseif l_props_0.friendshipOriginSourceType == l_FriendshipOriginSourceType_0.QrCode.rawValue() then
                    return v19.fromQRCode, nil;
                elseif l_experienceName_0 and l_experienceName_0 ~= "" then
                    return v19.friendRequestSentFrom, nil;
                elseif not l_props_0.amIFollowingUser then
                    if not l_props_0.isUserFollowingMe then
                        if not l_props_0.isRecommendation then
                            return nil, nil;
                        elseif not (not (l_props_0.recommendationContextType == l_RecommendationContextType_0.MutualFriends.rawValue()) or not l_props_0.mutualFriendsCount) and l_props_0.mutualFriendsCount > 0 then
                            return v17.getRecommendationText(v19), l_Images_0["icons/status/player/friend"];
                        else
                            return v17.getRecommendationText(v19), nil;
                        end;
                    else
                        return v19.userFollowingMe, l_Images_0["icons/status/player/following"];
                    end;
                else
                    return v19.iAmFollowingUser, l_Images_0["icons/status/player/following"];
                end;
            else
                return v19.accountDeletedText, nil;
            end;
        else
            return l_props_0.contextualInfoDisplay.text, l_props_0.contextualInfoDisplay.icon;
        end;
    end;
end;
v16.didMount = function(v22)
    local l_props_1 = v22.props;
    l_props_1.getExperiencesDetails(l_props_1.sourceUniverseId);
end;
v16.render = function(v24)
    local l_props_2 = v24.props;
    return l_withStyle_0(function(v26)
        return l_withLocalization_0({
            accountDeletedText = v9.AccountDeleted,
            youAreFollowing = v9.YouAreFollowing,
            followsYou = v9.FollowsYou,
            friendRequestSentFrom = {
                v9.SentFromWithContext;
                gameName = l_props_2.experienceName
            },
            mutualFriends = v9.MutualFriends,
            singularMutualFriend = v9.SingularMutualFriend,
            playedTogether = v9.PlayedTogether,
            invitedYouToRoblox = v9.FriendInvite,
            fromQRCode = v9.FromQRCode
        })(function(v27)
            local v28 = nil;
            local v29 = nil;
            local v30, v31 = v24.getTextAndIcon({
                iAmFollowingUser = v27.youAreFollowing,
                userFollowingMe = v27.followsYou,
                friendRequestSentFrom = v27.friendRequestSentFrom,
                accountDeletedText = v27.accountDeletedText,
                invitedMeToRoblox = v27.invitedYouToRoblox,
                mutualFriends = v27.mutualFriends,
                singularMutualFriend = v27.singularMutualFriend,
                playedTogether = v27.playedTogether,
                fromQRCode = v27.fromQRCode
            });
            v28 = v30;
            v29 = v31;
            if v28 then
                return l_Roact_0.createElement("Frame", {
                    Position = UDim2.new(0, 0, 0, 0),
                    Size = UDim2.new(1, 0, 0, 0),
                    AutomaticSize = Enum.AutomaticSize.Y,
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    LayoutOrder = l_props_2.layoutOrder
                }, {
                    PlayerContext = l_Roact_0.createElement(l_PlayerContext_0, {
                        icon = v29,
                        iconSize = not not v29 and v15 or nil,
                        text = v28,
                        fontStyle = v26.Font.CaptionBody
                    })
                });
            else
                return nil;
            end;
        end);
    end);
end;
return v16;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_t_0 = v1.t;
local l_RoactRodux_0 = v1.RoactRodux;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local l_NetworkingGames_0 = v1.NetworkingGames;
local l_getDeepValue_0 = l_SocialLibraries_0.Dictionary.getDeepValue;
local v9 = require(l_Parent_0.ProfileContext);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v11 = require(l_Parent_0.Common.ProfileTypes);
local v12 = require(script.Parent.ProfileNonFriendContextualInfo);
local v13 = l_Roact_0.PureComponent:extend("ProfileNonFriendContextualInfoContainer");
v13.validateProps = l_t_0.strictInterface({
    layoutOrder = l_t_0.optional(l_t_0.number),
    profileUserId = l_t_0.string,
    isUserDeleted = l_t_0.optional(l_t_0.boolean),
    amIFollowingUser = l_t_0.optional(l_t_0.boolean),
    isUserFollowingMe = l_t_0.optional(l_t_0.boolean),
    experienceName = l_t_0.optional(l_t_0.string),
    sourceUniverseId = l_t_0.optional(l_t_0.number),
    getExperiencesDetails = l_t_0.callback,
    profileType = v11.validateProfileType,
    isRecommendation = l_t_0.optional(l_t_0.boolean),
    recommendationContextType = l_t_0.optional(l_t_0.string),
    mutualFriendsCount = l_t_0.optional(l_t_0.number),
    friendshipOriginSourceType = l_t_0.optional(l_t_0.string),
    contextualInfoDisplay = l_t_0.optional(l_t_0.table)
});
v13.render = function(v14)
    local l_props_0 = v14.props;
    return l_Roact_0.createElement(v12, {
        layoutOrder = l_props_0.layoutOrder,
        isUserDeleted = l_props_0.isUserDeleted,
        amIFollowingUser = l_props_0.amIFollowingUser,
        isUserFollowingMe = l_props_0.isUserFollowingMe,
        experienceName = l_props_0.experienceName,
        sourceUniverseId = l_props_0.sourceUniverseId,
        getExperiencesDetails = l_props_0.getExperiencesDetails,
        profileType = l_props_0.profileType,
        isRecommendation = l_props_0.isRecommendation,
        recommendationContextType = l_props_0.recommendationContextType,
        mutualFriendsCount = l_props_0.mutualFriendsCount,
        friendshipOriginSourceType = l_props_0.friendshipOriginSourceType,
        contextualInfoDisplay = l_props_0.contextualInfoDisplay
    });
end;
local function v24(v16, v17)
    local v18 = v17.profileUserId or "";
    local v19 = l_getDeepValue_0(v16, "Profile.FollowingStatus") or {};
    local v20 = (l_getDeepValue_0(v16, "Profile.Friends.requests.sourceUniverseIds") or {})[v18];
    local v21 = l_getDeepValue_0(v16, string.format("Profile.Games.byGameId.%s.name", (tostring(v20))));
    local v22 = nil;
    local v23 = nil;
    if not v19[v18] then
        v22 = nil;
        v23 = nil;
    else
        v22 = v19[v18].isFollowing;
        v23 = v19[v18].isFollowed;
    end;
    return {
        sourceUniverseId = v20,
        experienceName = v21,
        isUserFollowingMe = v23,
        isUserDeleted = l_getDeepValue_0(v16, string.format("Profile.AdditionalUserFields.%s.isDeleted", v18)),
        amIFollowingUser = v22,
        friendshipOriginSourceType = l_getDeepValue_0(v16, string.format("Profile.Friends.requests.originSourceType.%s", v18))
    };
end;
local function v27(v25)
    return {
        getExperiencesDetails = function(v26)
            if v26 ~= nil and v26 ~= 0 then
                return v25(l_NetworkingGames_0.GetExperiencesDetails.API({
                    (tostring(v26))
                }));
            else
                return ;
            end;
        end
    };
end;
return {
    Container = l_compose_0(l_RoactRodux_0.connect(v24, v27), v9.connect(function(v28)
        return {
            profileType = v28.profileType,
            isRecommendation = v28.navigationParams and v28.navigationParams.isRecommendation,
            recommendationContextType = v28.navigationParams and v28.navigationParams.recommendationContextType,
            mutualFriendsCount = v28.navigationParams and v28.navigationParams.mutualFriendsCount,
            contextualInfoDisplay = v28.navigationParams and v28.navigationParams.contextualInfoDisplay
        };
    end))(v13),
    mapStateToProps = v24,
    mapDispatchToProps = v27
};


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_UIBlox_0 = v1.UIBlox;
local l_t_0 = v1.t;
local l_PeekView_0 = v1.PeekView;
local l_PeekViewState_0 = v1.PeekViewState;
local l_withStyle_0 = l_UIBlox_0.Style.withStyle;
local v8 = require(l_Parent_0.Common.ContextPropsTypes);
local _ = require(script.Parent.profilePeekViewMapStateToProps);
local v10 = l_Roact_0.PureComponent:extend("ProfilePeekView");
v10.validateProps = l_t_0.strictInterface({
    bottomOffset = l_t_0.number,
    viewWidth = l_t_0.number,
    peekViewProps = v8.validatePeekViewProps,
    renderBottomBar = l_t_0.callback,
    renderContent = l_t_0.callback,
    renderTopBar = l_t_0.callback,
    topBarHeight = l_t_0.number
});
v10.defaultProps = {
    peekViewProps = {}
};
v10.init = function(v11)
    v11.state = {
        topBarOpacity = 0
    };
    v11.briefToFullTransitionPercent = function(v12)
        v11:setState({
            topBarOpacity = v12
        });
    end;
    v11.viewStateChanged = function(v13, _)
        local l_onPeekViewClosed_0 = v11.props.peekViewProps.onPeekViewClosed;
        if not (not (v13 == l_PeekViewState_0.Closed) or not l_onPeekViewClosed_0) then
            l_onPeekViewClosed_0();
        end;
    end;
end;
v10.render = function(v16)
    return l_withStyle_0(function(v17)
        return v16:renderWithProviders(v17);
    end);
end;
v10.renderWithProviders = function(v18, v19)
    local l_props_0 = v18.props;
    local l_viewWidth_0 = l_props_0.viewWidth;
    local v22 = UDim2.new(0, l_props_0.viewWidth, 1, 0);
    local l_peekViewProps_0 = l_props_0.peekViewProps;
    local l_topBarHeight_0 = l_props_0.topBarHeight;
    local l_topBarOpacity_0 = v18.state.topBarOpacity;
    local v26 = l_topBarOpacity_0 > 0.95;
    local v27 = false;
    if l_topBarOpacity_0 > 0 then
        v27 = not v26;
    end;
    return l_Roact_0.createElement("Frame", {
        Position = UDim2.fromOffset(0, 0),
        Size = v22,
        BackgroundTransparency = 1,
        BorderSizePixel = 0
    }, {
        PeekViewTopBar = v26 and l_props_0.renderTopBar(),
        PeekViewTopBarEffectHolder = v27 and l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, l_topBarHeight_0),
            Position = UDim2.new(0, 0, 0, 0),
            BackgroundColor3 = v19.Theme.BackgroundDefault.Color,
            BorderSizePixel = 0,
            BackgroundTransparency = 1 - l_topBarOpacity_0
        }),
        PeekViewContainer = l_Roact_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, -l_topBarHeight_0 + 6),
            Position = UDim2.new(0, 0, 0, l_topBarHeight_0 - 6),
            BackgroundTransparency = 1,
            ClipsDescendants = true
        }, {
            PeekView = l_Roact_0.createElement(l_PeekView_0, {
                briefViewContentHeight = UDim.new(0, l_viewWidth_0 + 48),
                bottomDockedContainerHeight = 58,
                bottomDockedContainerContent = {
                    PeekViewBottomBar = l_props_0.renderBottomBar()
                },
                mountAsFullView = l_peekViewProps_0.mountAsFullView,
                mountAnimation = l_peekViewProps_0.mountAnimation,
                viewStateChanged = v18.viewStateChanged,
                briefToFullTransitionPercent = v18.briefToFullTransitionPercent
            }, {
                UIListLayout = l_Roact_0.createElement("UIListLayout", {
                    Padding = UDim.new(0, 0),
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    VerticalAlignment = Enum.VerticalAlignment.Top
                }),
                Content = l_props_0.renderContent()
            })
        })
    });
end;
return v10;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_RoactRodux_0 = v1.RoactRodux;
local l_Dash_0 = v1.Dash;
local l_compose_0 = v1.SocialLibraries.RoduxTools.compose;
local v6 = require(l_Parent_0.ProfileContext);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v8 = require(l_Parent_0.Utils.onClickWithToast);
local v9 = require(script.Parent.ProfilePeekViewUIWrapper);
local v10 = require(script.Parent.profilePeekViewMapStateToProps);
local v11 = require(script.Parent.profilePeekViewMapDispatchToProps);
local v12 = l_Roact_0.PureComponent:extend("ProfilePeekViewContainer");
v12.init = function(v13)
    local l_props_0 = v13.props;
    v13.onClickWithToast = function(v15)
        return v8(l_props_0.navigation, v15);
    end;
end;
v12.render = function(v16)
    return l_Roact_0.createElement(v9, l_Dash_0.join(v16.props, {
        onClickWithToast = v16.onClickWithToast
    }));
end;
return l_compose_0(v6.connect(function(v17)
    return {
        profileType = v17.profileType,
        profileUserId = v17.profileUserId,
        peekViewProps = v17.peekViewProps,
        contactProps = v17.contactProps,
        wideMode = v17.wideMode
    };
end), l_RoactRodux_0.connect(v10, v11))(v12);


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_memoize_0 = v1.memoize;
local l_PeekViewWithTopBar_0 = v1.PeekViewWithTopBar;
local l_AppUserLayers_0 = v1.AppUserLayers;
local l_RoactAppExperiment_0 = v1.RoactAppExperiment;
local v7 = require(l_Parent_0.Components.ProfileTopBar);
local v8 = require(l_Parent_0.Components.ProfileCard);
local v9 = require(l_Parent_0.Components.ContactProfileCard);
local v10 = require(l_Parent_0.Components.ProfileActionBar);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v12 = require(l_Parent_0.Common.Constants);
local v13 = require(l_Parent_0.Common.ProfileTypes);
local v14 = require(l_Parent_0.Components.ProfileModalView);
local l_getSafeAreaSize_0 = v1.getSafeAreaSize;
local v16 = require(script.Parent.ProfilePeekView);
local _ = require(script.Parent.profilePeekViewMapStateToProps);
local l_GetFFlagPeekViewScrimEnabledIXP_0 = v1.GetFFlagPeekViewScrimEnabledIXP;
local l_GetFFlagPeekViewScrimEnabled_0 = v1.GetFFlagPeekViewScrimEnabled;
local v20 = l_Roact_0.PureComponent:extend("ProfilePeekViewUIWrapper");
v20.init = function(v21)
    local l_props_0 = v21.props;
    v21.getInnerPaddingSize = l_memoize_0(function(v23)
        if v23 < 600 then
            return 20;
        else
            return 40;
        end;
    end);
    v21.renderContent = l_memoize_0(function(v24, v25)
        if l_props_0.profileType == v13.FromContacts then
            return function()
                return l_Roact_0.createElement(v9, {
                    profileUserId = l_props_0.profileUserId,
                    navigation = l_props_0.navigation,
                    onClickWithToast = l_props_0.onClickWithToast,
                    width = v24,
                    height = v25,
                    avatarImageUrl = if not l_props_0.contactProps then nil else l_props_0.contactProps.avatarImageUrl
                });
            end;
        else
            return function()
                return l_Roact_0.createElement(v8, {
                    profileUserId = l_props_0.profileUserId,
                    navigation = l_props_0.navigation,
                    onClickWithToast = l_props_0.onClickWithToast,
                    width = v24,
                    height = v25
                });
            end;
        end;
    end);
    v21.renderBottomBar = l_memoize_0(function(v26)
        return function()
            return l_Roact_0.createElement(v10, {
                navigation = l_props_0.navigation,
                innerPaddingSize = v26,
                onClickWithToast = l_props_0.onClickWithToast
            });
        end;
    end);
    v21.renderTopBar = function()
        return l_Roact_0.createElement(v7, {
            showCloseIcon = not l_props_0.peekViewProps.showBackButton,
            navigateBack = l_props_0.peekViewProps.onPeekViewGoBack
        });
    end;
end;
v20.render = function(v27)
    local l_props_1 = v27.props;
    local l_globalGuiInset_0 = l_props_1.globalGuiInset;
    local v30 = l_props_1.statusBarHeight + v12.NavBarHeight;
    local v31 = l_getSafeAreaSize_0(l_props_1.screenSize, l_globalGuiInset_0);
    local l_Offset_0 = v31.Y.Offset;
    local v33 = math.min(v31.X.Offset, 640);
    local v34 = v27.getInnerPaddingSize(v33);
    local v35 = v27.renderContent(v33, (l_Offset_0 - v30) - 40);
    local v36 = v27.renderBottomBar(v34);
    if not l_GetFFlagPeekViewScrimEnabled_0() and not l_props_1.scrimEnabled then
        return l_Roact_0.createElement(not not l_props_1.wideMode and v14 or v16, {
            bottomOffset = l_globalGuiInset_0.bottom,
            peekViewProps = l_props_1.peekViewProps,
            renderBottomBar = v36,
            renderContent = v35,
            renderTopBar = v27.renderTopBar,
            topBarHeight = v30,
            viewWidth = v33
        });
    elseif not l_props_1.wideMode then
        return l_Roact_0.createElement(l_PeekViewWithTopBar_0, {
            topBarHeight = v30,
            viewWidth = UDim.new(0, v33),
            bottomDockedContainerHeight = 58,
            fullViewContentHeight = UDim.new(1, -v30),
            briefViewContentHeight = UDim.new(0, v33 + 48),
            onViewStateChanged = v27.viewStateChanged,
            onClosed = l_props_1.peekViewProps.onPeekViewClosed,
            mountAsFullView = l_props_1.peekViewProps.mountAsFullView,
            mountAnimation = l_props_1.peekViewProps.mountAnimation,
            bottomBarSlot = v36(),
            contentSlot = v35(),
            topBarSlot = v27.renderTopBar()
        });
    else
        return l_Roact_0.createElement(v14, {
            bottomOffset = l_globalGuiInset_0.bottom,
            peekViewProps = l_props_1.peekViewProps,
            renderBottomBar = v36,
            renderContent = v35,
            renderTopBar = v27.renderTopBar,
            topBarHeight = v30,
            viewWidth = v33
        });
    end;
end;
if l_GetFFlagPeekViewScrimEnabledIXP_0() then
    v20 = l_RoactAppExperiment_0.connectUserLayer({
        l_AppUserLayers_0.PlatformExcellenceQualityImprovementApp
    }, function(v37, _)
        local v39 = v37[l_AppUserLayers_0.PlatformExcellenceQualityImprovementApp];
        return {
            scrimEnabled = v39 and v39.peekViewScrimEnabled
        };
    end)(v20);
end;
return v20;


local l_Parent_0 = script.Parent.Parent.Parent;
local _ = require(l_Parent_0.Reducers.Root);
local _ = require(l_Parent_0.Common.GuiInset);
return function(v3)
    return {
        statusBarHeight = v3.TopBar.statusBarHeight,
        screenSize = v3.ScreenSize,
        globalGuiInset = v3.GlobalGuiInset
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local v3 = require(l_Parent_0.ProfileContext);
local v4 = require(l_Parent_0.Navigator);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v6 = require(l_Parent_0.Common.ProfileTypes);
local v7 = require(l_Parent_0.Components.ProfileEventReceiver);
local l_Logger_0 = v1.Logger;
local v9 = require(l_Parent_0.Analytics);
local v10 = l_Roact_0.PureComponent:extend("ProfilePeekViewEntryPoint");
v10.defaultProps = {
    profileType = v6.Default
};
v10.init = function(v11)
    local l_props_0 = v11.props;
    local v13 = l_props_0.profileType or v6.Default;
    if not (l_props_0.profileUserId ~= l_props_0.localUserId) or l_props_0.friendStatus == Enum.FriendStatus.Friend then
        v13 = v6.Default;
    end;
    v11.state = {
        profileType = v13
    };
    v11.resetProfileType = function()
        v11:setState({
            profileType = v6.Default
        });
    end;
    v11.analytics = l_props_0.getAnalytics(l_props_0.localUserId, l_props_0.profileUserId);
end;
v10.didUpdate = function(v14, v15)
    if v14.props.friendStatus == Enum.FriendStatus.Friend and v15.friendStatus ~= Enum.FriendStatus.Friend then
        v14.resetProfileType();
    end;
end;
v10.didMount = function(v16)
    local l_props_1 = v16.props;
    v16.analytics:pageLoaded();
    if l_props_1.profileType == v6.FromContacts then
        l_props_1.getContactEntities({
            l_props_1.contactProps.contactId
        });
        return ;
    else
        l_props_1.fetchProfilePageData():andThen(function(v18)
            v16.analytics:pageLoadedWithData({
                friendStatus = v18.friendStatus,
                playerPresence = v18.playerPresence,
                isRecommendation = l_props_1.navigationParams.isRecommendation,
                isHomePageCarousel = l_props_1.navigationParams.isHomePageCarousel,
                absolutePosition = l_props_1.navigationParams.absolutePosition,
                recommendationContextType = l_props_1.navigationParams.recommendationContextType,
                recommendationRank = l_props_1.navigationParams.recommendationRank,
                source = l_props_1.navigationParams.source,
                profileType = l_props_1.profileType,
                shareLinkId = l_props_1.navigationParams.shareLinkId
            });
        end);
        return ;
    end;
end;
v10.willUnmount = function(v19)
    l_Logger_0:info("ProfilePeekView unmounted");
    v19.props.resetProfilePageDataStatus();
end;
v10.render = function(v20)
    local l_props_2 = v20.props;
    return l_Roact_0.createElement(v9.Context.Provider, {
        value = v20.analytics
    }, {
        l_Roact_0.createElement(v3.Provider, {
            value = {
                profileType = v20.state.profileType,
                resetProfileType = v20.resetProfileType,
                profileUserId = l_props_2.profileUserId,
                navigateToLuaAppPages = l_props_2.navigateToLuaAppPages,
                peekViewProps = l_props_2.peekViewProps,
                abbreviateCount = l_props_2.abbreviateCount,
                localUserId = l_props_2.localUserId,
                catalogAnalytics = l_props_2.catalogAnalytics,
                wideMode = l_props_2.wideMode,
                navigationParams = l_props_2.navigationParams,
                contactProps = l_props_2.contactProps
            }
        }, {
            navigation = l_Roact_0.createElement(v4, {
                navigation = l_props_2.navigation
            }),
            eventReceiver = l_Roact_0.createElement(v7, {
                robloxEventReceiver = l_props_2.robloxEventReceiver
            }),
            androidBackButtonNavigationHandler = l_props_2.renderAndroidBackButtonNavigationHandler(l_props_2.navigation)
        })
    });
end;
v10.router = v4.router;
return v10;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_Roact_0 = v1.Roact;
local l_RoactRodux_0 = v1.RoactRodux;
local l_SocialLibraries_0 = v1.SocialLibraries;
local l_Dash_0 = v1.Dash;
local l_memoize_0 = v1.memoize;
local l_compose_0 = l_SocialLibraries_0.RoduxTools.compose;
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local _ = require(l_Parent_0.Common.ProfileTypes);
local v10 = require(l_Parent_0.Analytics);
local v11 = require(l_Parent_0.Navigator);
local v12 = require(script.Parent.ProfilePeekViewEntryPoint);
local v13 = require(script.Parent.profilePeekViewEntryPointMapStateToProps);
local v14 = require(script.Parent.profilePeekViewEntryPointMapDispatchToProps);
local v15 = l_Roact_0.PureComponent:extend("ProfilePeekViewEntryPointContainer");
v15.init = function(v16)
    local l_props_0 = v16.props;
    v16.fetchProfilePageData = function()
        return l_props_0.fetchProfilePageData(l_props_0.profileUserId);
    end;
    v16.resetProfilePageDataStatus = function()
        return l_props_0.resetProfilePageDataStatus(l_props_0.profileUserId);
    end;
    v16.getAnalytics = l_memoize_0(function(v18, v19)
        local l_props_1 = v16.props;
        return v10.Class.new({
            profileUserId = v19,
            localUserId = v18,
            eventIngestService = l_props_1.eventIngestService,
            sessionService = l_props_1.sessionService,
            sessionType = l_props_1.sessionType,
            analyticsProps = l_props_1.analyticsProps
        });
    end);
end;
v15.render = function(v21)
    return l_Roact_0.createElement(v12, l_Dash_0.join(v21.props, {
        fetchProfilePageData = v21.fetchProfilePageData,
        resetProfilePageDataStatus = v21.resetProfilePageDataStatus,
        getAnalytics = v21.getAnalytics,
        eventIngestService = l_Dash_0.None,
        sessionType = l_Dash_0.None,
        sessionService = l_Dash_0.None
    }));
end;
v15 = l_compose_0(l_RoactRodux_0.connect(v13, v14))(v15);
v15.router = v11.router;
return v15;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_NetworkingContacts_0 = v1.NetworkingContacts;
local v3 = require(l_Parent_0.Thunks.FetchProfilePageData);
local l_RetrievalStatus_0 = v1.UIBlox.App.Loading.Enum.RetrievalStatus;
local v5 = require(l_Parent_0.Reducers.Actions.SetProfilePageDataStatus);
return function(v6)
    return {
        fetchProfilePageData = function(v7)
            return v6(v3(v7));
        end,
        resetProfilePageDataStatus = function(v8)
            v6(v5(v8, l_RetrievalStatus_0.NotStarted.rawValue()));
        end,
        getContactEntities = function(v9)
            return v6(l_NetworkingContacts_0.GetContactEntitiesByContactId.API(v9));
        end
    };
end;


local l_getDeepValue_0 = require(script.Parent.Parent.Parent.dependencies).SocialLibraries.Dictionary.getDeepValue;
return function(v1, v2)
    return {
        friendStatus = l_getDeepValue_0(v1, string.format("Profile.FriendshipStatus.%s", v2.profileUserId)) or Enum.FriendStatus.Unknown
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local v2 = require(script.Parent.ButtonStates);
local l_UIBlox_0 = v1.UIBlox;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local v7 = require(l_Parent_0.Components.ProfileJoinButton);
local v8 = require(l_Parent_0.Common.TextKeys);
local l_GetFFlagHideContextualButtonBasedOnStateForVR_0 = v1.GetFFlagHideContextualButtonBasedOnStateForVR;
local l_IsVRAppBuild_0 = v1.IsVRAppBuild;
return {
    [v2.EditProfile] = {
        textKey = v8.EditProfile,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = false,
        successIcon = nil,
        successTextKey = "",
        isDisabled = l_GetFFlagHideContextualButtonBasedOnStateForVR_0() and l_IsVRAppBuild_0()
    },
    [v2.OpenEditProfilePage] = {
        textKey = v8.EditProfile,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = false,
        successIcon = nil,
        successTextKey = "",
        isDisabled = l_GetFFlagHideContextualButtonBasedOnStateForVR_0() and l_IsVRAppBuild_0()
    },
    [v2.ShareProfileQRCode] = {
        textKey = v8.ToQRCode,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        icon = l_Images_0["icons/menu/scanqr"],
        showToast = false,
        successIcon = nil,
        successTextKey = "",
        isDisabled = l_GetFFlagHideContextualButtonBasedOnStateForVR_0() and l_IsVRAppBuild_0()
    },
    [v2.JoinExperience] = {
        textKey = v8.Join,
        button = {
            component = v7
        },
        showToast = false,
        successIcon = nil,
        successTextKey = ""
    },
    [v2.Chat] = {
        textKey = v8.Chat,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = false,
        successIcon = nil,
        successTextKey = ""
    },
    [v2.Unfriend] = {
        textKey = v8.Unfriend,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = true,
        successTextKey = v8.FriendRemoved,
        successIcon = l_Images_0["icons/actions/friends/friendRemove"]
    },
    [v2.Unblock] = {
        textKey = v8.Unblock,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = false,
        successTextKey = "",
        successIcon = l_Images_0["icons/actions/block"]
    },
    [v2.AddFriend] = {
        textKey = v8.AddFriend,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = true,
        successTextKey = v8.FriendRequestSent,
        successIcon = l_Images_0["icons/actions/friends/friendAdd"]
    },
    [v2.AcceptFriendRequest] = {
        textKey = v8.AcceptFriend,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = true,
        successTextKey = v8.FriendAdded,
        successIcon = l_Images_0["icons/actions/friends/friendAdd"]
    },
    [v2.PendingFriendRequest] = {
        textKey = v8.PendingRequest,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.Secondary
        },
        showToast = true,
        successTextKey = v8.FriendRequestCancelled,
        successIcon = l_Images_0["icons/actions/friends/friendRemove"],
        isDisabled = true
    },
    [v2.CannotAddFriend] = {
        textKey = v8.AddFriend,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = false,
        successIcon = nil,
        successTextKey = "",
        isDisabled = true
    },
    [v2.AcceptOffNetworkFriendRequest] = {
        textKey = v8.AcceptFriend,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        },
        showToast = true,
        successTextKey = v8.FriendAdded,
        successIcon = l_Images_0["icons/actions/friends/friendAdd"]
    },
    [v2.AddFriendFromContacts] = {
        textKey = v8.AddFriend,
        showToast = true,
        successTextKey = v8.FriendRequestSent
    },
    [v2.AddFriendFromContactsSent] = {
        textKey = v8.PendingRequest,
        button = {
            component = l_Button_0,
            type = l_ButtonType_0.Secondary
        },
        showToast = false,
        successTextKey = v8.FriendRequestSent,
        isDisabled = true
    }
};


return {
    EditProfile = "EditProfile",
    JoinExperience = "JoinExperience",
    Chat = "Chat",
    OpenEditProfilePage = "OpenEditProfilePage",
    Unfriend = "Unfriend",
    Unblock = "Unblock",
    AddFriend = "AddFriend",
    AcceptFriendRequest = "AcceptFriendRequest",
    PendingFriendRequest = "PendingFriendRequest",
    CannotAddFriend = "CannotAddFriend",
    AcceptOffNetworkFriendRequest = "AcceptOffNetworkFriendRequest",
    ShareProfileQRCode = "ShareProfileQRCode",
    AddFriendFromContacts = "AddFriendFromContacts",
    AddFriendFromContactsSent = "AddFriendFromContactsSent"
};


local l_Parent_0 = script.Parent.Parent.Parent;
local l_UserInputService_0 = game:GetService("UserInputService");
local v2 = require(l_Parent_0.dependencies);
local l_UIBlox_0 = v2.UIBlox;
local l_React_0 = v2.React;
local l_Dash_0 = v2.Dash;
local v6 = require(l_Parent_0.Common.ProfileScreens);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local v8 = require(l_Parent_0.Common.ProfileTypes);
local l_useLocalization_0 = v2.useLocalization;
local v10 = require(script.Parent.ButtonStates);
local v11 = require(script.Parent.ButtonStateProps);
local v12 = require(script.Parent.getButtonActiveStateEnum);
local l_dependencyArray_0 = v2.dependencyArray;
local _ = require(script.Parent.profilePrimaryContextualButtonMapDispatchToProps);
local _ = require(script.Parent.profilePrimaryContextualButtonMapStateToProps);
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local v18 = require(l_Parent_0.Common.TextKeys);
local l_convertUserPresenceTypeToString_0 = v2.SocialCommon.Utils.convertUserPresenceTypeToString;
local l_FriendshipOriginSourceType_0 = v2.NetworkingFriendsEnums.FriendshipOriginSourceType;
local l_Contexts_0 = v2.SocialLuaAnalytics.Analytics.Enums.Contexts;
local v22 = require(l_Parent_0.Analytics.EntryPoints);
local l_FFlagFixContactRecsFriendRequestLogging_0 = v2.FFlagFixContactRecsFriendRequestLogging;
return function(v24)
    local v25 = l_React_0.useCallback(function()
        v24.analytics:primaryCTAClick(v10.OpenEditProfilePage);
        return v24.openEditProfilePage();
    end, l_dependencyArray_0(v24.openEditProfilePage));
    local v26 = l_React_0.useCallback(function()
        v24.analytics:primaryCTAClick(v10.ShareProfileQRCode);
        return v24.navigateToLuaAppPages[v6.ProfileQRCodePage]({
            source = l_Contexts_0.ProfileCard,
            distanceFromTop = l_UserInputService_0.StatusBarSize.Y
        });
    end, l_dependencyArray_0(v24.analytics, v24.navigateToLuaAppPages));
    local v27 = l_React_0.useCallback(function()
        v24.analytics:primaryCTAClick(v10.Chat, {
            source = v24.navigationParams.source,
            isHomePageCarousel = v24.navigationParams.isHomePageCarousel,
            absolutePosition = v24.navigationParams.absolutePosition,
            presence = l_convertUserPresenceTypeToString_0(v24.userPresenceType)
        });
        v24.navigateToLuaAppPages[v6.Chat](v24.profileUserId);
    end, l_dependencyArray_0(v24.analytics, v24.navigateToLuaAppPages, v24.profileUserId));
    local v28 = l_React_0.useCallback(function()
        if not v24.navigationParams.isRecommendation then
            v24.analytics:primaryCTAClick(v10.Unfriend);
            return v24.unfriendUser(v24.localUserId, v24.profileUserId);
        else
            v24.analytics:primaryCTAClick(v10.Unfriend, v24.navigationParams);
            return v24.unfriendUser(v24.localUserId, v24.profileUserId);
        end;
    end, l_dependencyArray_0(v24.analytics, v24.navigateToLuaAppPages, v24.navigationParams, v24.unfriendUser));
    local v29 = l_React_0.useCallback(function()
        v24.analytics:primaryCTAClick(v10.Unblock);
        return v24.unblockUser({
            targetUserId = v24.profileUserId,
            currentUserId = v24.localUserId
        });
    end, l_dependencyArray_0(v24.analytics, v24.unblockUser));
    local v32 = l_React_0.useCallback(function()
        local v30 = {
            source = v24.navigationParams.source,
            isHomePageCarousel = v24.navigationParams.isHomePageCarousel,
            absolutePosition = v24.navigationParams.absolutePosition,
            shareLinkId = v24.navigationParams.shareLinkId,
            profileType = v24.profileType
        };
        if v24.navigationParams.isRecommendation then
            v30 = l_Dash_0.join(v30, {
                isRecommendation = v24.navigationParams.isRecommendation,
                recommendationContextType = v24.navigationParams.recommendationContextType,
                recommendationSessionId = v24.navigationParams.recommendationSessionId,
                recommendationRank = v24.navigationParams.recommendationRank
            });
        end;
        if v24.navigationParams.contextualInfoType then
            v30 = l_Dash_0.join(v30, {
                contextualInfoType = v24.navigationParams.contextualInfoType
            });
        end;
        v24.analytics:primaryCTAClick(v10.AddFriend, v30);
        local v31 = if not v24.navigationParams.isRecommendation then if v24.navigationParams.source == v22.PlayerSearch.rawValue() then l_FriendshipOriginSourceType_0.PlayerSearch.rawValue() else nil else l_FriendshipOriginSourceType_0.FriendRecommendations.rawValue();
        if v24.profileType == v8.ProfileShare then
            v31 = l_FriendshipOriginSourceType_0.QrCode.rawValue();
        end;
        return v24.sendFriendshipRequest(v24.localUserId, v24.profileUserId, v31);
    end, l_dependencyArray_0(v24.navigationParams, v24.profileType, v24.localUserId, v24.profileUserId, v24.sendFriendshipRequest));
    local v34 = l_React_0.useCallback(function()
        local v33 = {
            source = v24.navigationParams.source,
            isHomePageCarousel = v24.navigationParams.isHomePageCarousel,
            absolutePosition = v24.navigationParams.absolutePosition,
            profileType = v24.profileType,
            shareLinkId = v24.navigationParams.shareLinkId
        };
        if v24.navigationParams.isRecommendation then
            v33 = l_Dash_0.join(v33, {
                isRecommendation = v24.navigationParams.isRecommendation,
                recommendationContextType = v24.navigationParams.recommendationContextType,
                recommendationSessionId = v24.navigationParams.recommendationSessionId,
                recommendationRank = v24.navigationParams.recommendationRank
            });
        end;
        if v24.navigationParams.contextualInfoType then
            v33 = l_Dash_0.join(v33, {
                contextualInfoType = v24.navigationParams.contextualInfoType
            });
        end;
        v24.analytics:primaryCTAClick(v10.AcceptFriendRequest, v33);
        return v24.acceptFriendshipRequest(v24.localUserId, v24.profileUserId);
    end, l_dependencyArray_0(v24.navigationParams, v24.profileType, v24.localUserId, v24.profileUserId, v24.acceptFriendshipRequest));
    local v35 = l_React_0.useCallback(function()
        v24.analytics:primaryCTAClick(v10.AcceptOffNetworkFriendRequest, {
            offNetworkFriendRequestLinkId = v24.navigationParams.shareLinkId
        });
        return v24.acceptOffNetworkFriendshipRequest({
            localUserId = v24.localUserId,
            profileUserId = v24.profileUserId,
            token = v24.navigationParams.offNetworkFriendRequestToken
        }):andThen(v24.resetProfileType);
    end, l_dependencyArray_0(v24.analytics, v24.navigationParams, v24.localUserId, v24.profileUserId, v24.resetProfileType, v24.acceptOffNetworkFriendshipRequest));
    local v36 = l_React_0.useCallback(function()
        if (not l_FFlagFixContactRecsFriendRequestLogging_0 or not v24.contactProps) or not v24.navigationParams then
            v24.analytics:primaryCTAClick(v10.AddFriendFromContacts);
        else
            v24.analytics:primaryCTAClick(v10.AddFriendFromContacts, {
                contactId = v24.contactProps.contactId,
                isRecommendation = v24.navigationParams.isRecommendation,
                recommendationContextType = v24.navigationParams.recommendationContextType,
                recommendationSessionId = v24.navigationParams.recommendationSessionId,
                recommendationRank = v24.navigationParams.recommendationRank
            });
        end;
        return v24.sendContactFriendshipRequest({
            currentUserId = v24.localUserId,
            contactId = v24.contactProps.contactId
        });
    end, l_dependencyArray_0(v24.analytics, v24.localUserId, v24.contactProps, v24.sendContactFriendshipRequest));
    local v37 = v12({
        isLocalUser = v24.isLocalUser,
        isDeleted = v24.isDeleted,
        isUserBlockedByMe = v24.isUserBlockedByMe,
        friendshipStatus = v24.friendshipStatus,
        isUserInGame = v24.isUserInGame,
        canRequestFriendshipWith = v24.canRequestFriendshipWith,
        editProfileIXPEnabled = v24.editProfileIXPEnabled,
        profileType = v24.profileType,
        hasSentRequestToContact = v24.hasSentRequestToContact
    });
    local v38 = l_React_0.useMemo(function()
        return ({
            [v10.JoinExperience] = {
                openPurchaseExperienceModal = v24.openPurchaseExperienceModal,
                openUnableToJoinExperienceModal = v24.openUnableToJoinExperienceModal
            }
        })[v37] or {};
    end, l_dependencyArray_0(v24.openPurchaseExperienceModal, v24.openUnableToJoinExperienceModal, v37));
    local v39 = {
        [v10.Chat] = v27,
        [v10.OpenEditProfilePage] = v25,
        [v10.ShareProfileQRCode] = v26,
        [v10.Unfriend] = v28,
        [v10.Unblock] = v29,
        [v10.AddFriend] = v32,
        [v10.AcceptFriendRequest] = v34,
        [v10.AcceptOffNetworkFriendRequest] = v35,
        [v10.AddFriendFromContacts] = v36
    };
    local v40 = v11[v37];
    local v41 = v39[v37];
    local v42 = l_useLocalization_0({
        buttonText = if #v40.textKey > 0 then v40.textKey else nil,
        successText = if #v40.successTextKey > 0 then v40.successTextKey else nil,
        errorText = v18.SomethingIsWrong
    });
    local v43 = l_React_0.useMemo(function()
        if not v41 or not v24.onClickWithToast then
            return l_Dash_0.noop;
        else
            return (v24.onClickWithToast({
                showToast = v40.showToast,
                actionCallback = v41,
                successIcon = v40.successIcon,
                successTitle = v42.successText,
                errorTitle = v42.errorText
            }));
        end;
    end, l_dependencyArray_0(v41, v40.showToast, v40.successIcon, v42.buttonText, v42.successText, v24.onClickWithToast));
    if v24.isDeleted and v24.friendshipStatus ~= Enum.FriendStatus.Friend then
        return nil;
    else
        local v44 = v40.button or {
            component = l_Button_0,
            type = l_ButtonType_0.PrimarySystem
        };
        return l_React_0.createElement(v44.component, l_Dash_0.join({
            buttonType = v44.type,
            size = v24.size,
            layoutOrder = v24.layoutOrder,
            text = v42.buttonText,
            isDisabled = v40.isDisabled,
            icon = v40.icon,
            onActivated = v43
        }, v38));
    end;
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local v1 = require(l_Parent_0.dependencies);
local l_React_0 = v1.React;
local v3 = require(l_Parent_0.ProfileContext);
local _ = require(l_Parent_0.Common.ContextPropsTypes);
local l_RoactRodux_0 = v1.RoactRodux;
local l_compose_0 = v1.SocialLibraries.RoduxTools.compose;
local v7 = require(l_Parent_0.Analytics);
local v8 = require(script.Parent.profilePrimaryContextualButtonMapDispatchToProps);
local v9 = require(script.Parent.profilePrimaryContextualButtonMapStateToProps);
local v10 = require(l_Parent_0.Utils.isLocalUser);
local v11 = require(script.Parent.ProfilePrimaryContextualButton);
return l_compose_0(v3.connect(function(v12)
    return {
        isLocalUser = v10(v12),
        profileUserId = v12.profileUserId,
        localUserId = v12.localUserId,
        navigateToLuaAppPages = v12.navigateToLuaAppPages,
        navigationParams = v12.navigationParams,
        profileType = v12.profileType,
        contactProps = v12.contactProps,
        resetProfileType = v12.resetProfileType
    };
end), l_RoactRodux_0.connect(v9, v8), v7.connect(function(v13)
    return {
        analytics = v13
    };
end))(function(v14)
    return l_React_0.createElement(v11, v14);
end);


local l_CorePackages_0 = game:GetService("CorePackages");
local v1 = require(script.Parent.Parent.Parent.Common.ProfileTypes);
local l_getFFlagEditProfilePageEnabled_0 = require(l_CorePackages_0.Workspace.Packages.EditProfile).Flags.getFFlagEditProfilePageEnabled;
local v3 = require(script.Parent.ButtonStates);
return function(v4)
    local v5 = v4.friendshipStatus == Enum.FriendStatus.Friend;
    local v6 = v4.profileType == v1.FromContacts;
    local function _()
        if not v4.isUserInGame then
            return v3.Chat;
        else
            return v3.JoinExperience;
        end;
    end;
    local function _()
        if v4.profileType == v1.OffNetworkFriendRequest then
            return v3.AcceptOffNetworkFriendRequest;
        elseif v4.friendshipStatus == Enum.FriendStatus.FriendRequestSent then
            return v3.PendingFriendRequest;
        elseif v4.friendshipStatus == Enum.FriendStatus.FriendRequestReceived then
            return v3.AcceptFriendRequest;
        elseif not v4.canRequestFriendshipWith then
            return v3.CannotAddFriend;
        else
            return v3.AddFriend;
        end;
    end;
    return ((function()
        if not v4.isLocalUser then
            if not v6 then
                if not v5 or v4.isDeleted then
                    if not v5 or not v4.isDeleted then
                        if not v4.isUserBlockedByMe then
                            if v4.profileType == v1.OffNetworkFriendRequest then
                                return v3.AcceptOffNetworkFriendRequest;
                            elseif v4.friendshipStatus == Enum.FriendStatus.FriendRequestSent then
                                return v3.PendingFriendRequest;
                            elseif v4.friendshipStatus == Enum.FriendStatus.FriendRequestReceived then
                                return v3.AcceptFriendRequest;
                            elseif not v4.canRequestFriendshipWith then
                                return v3.CannotAddFriend;
                            else
                                return v3.AddFriend;
                            end;
                        else
                            return v3.Unblock;
                        end;
                    else
                        return v3.Unfriend;
                    end;
                elseif not v4.isUserInGame then
                    return v3.Chat;
                else
                    return v3.JoinExperience;
                end;
            elseif not v4.hasSentRequestToContact then
                return v3.AddFriendFromContacts;
            else
                return v3.AddFriendFromContactsSent;
            end;
        elseif not v4.editProfileIXPEnabled and not l_getFFlagEditProfilePageEnabled_0() then
            return v3.ShareProfileQRCode;
        else
            return v3.OpenEditProfilePage;
        end;
    end)());
end;


local v0 = require(script.Parent.Parent.Parent.dependencies);
local l_NetworkingFriends_0 = v0.NetworkingFriends;
local l_NetworkingBlocking_0 = v0.NetworkingBlocking;
local l_RoduxContacts_0 = v0.RoduxContacts;
return function(v4)
    return {
        unfriendUser = function(v5, v6)
            return v4(l_NetworkingFriends_0.UnfriendTargetUserId.API({
                targetUserId = v6,
                currentUserId = v5
            }));
        end,
        sendFriendshipRequest = function(v7, v8, v9)
            return v4(l_NetworkingFriends_0.RequestFriendshipFromUserId.API({
                targetUserId = v8,
                currentUserId = v7,
                friendshipOriginSourceType = v9
            }));
        end,
        acceptFriendshipRequest = function(v10, v11)
            return v4(l_NetworkingFriends_0.AcceptFriendRequestFromUserId.API({
                targetUserId = v11,
                currentUserId = v10
            }));
        end,
        acceptOffNetworkFriendshipRequest = function(v12)
            return v4(l_NetworkingFriends_0.AcceptFriendRequestWithToken.API({
                targetUserId = v12.profileUserId,
                currentUserId = v12.localUserId,
                friendingToken = v12.token
            }));
        end,
        unblockUser = function(v13)
            return v4(l_NetworkingBlocking_0.UnblockUserById.API({
                userId = v13.targetUserId,
                currentUserId = v13.currentUserId
            })):andThen(function()
                return v4(l_NetworkingFriends_0.GetExtendedFriendshipStatus.API({
                    targetUserId = v13.targetUserId
                }));
            end);
        end,
        sendContactFriendshipRequest = function(v14)
            v4(l_RoduxContacts_0.Actions.RequestSent({
                id = v14.contactId
            }));
            return v4(l_NetworkingFriends_0.RequestFriendshipFromContactId.API(v14));
        end
    };
end;


local l_Parent_0 = script.Parent.Parent.Parent;
local l_CorePackages_0 = game:GetService("CorePackages");
local v2 = require(l_Parent_0.dependencies);
local l_getDeepValue_0 = v2.SocialLibraries.Dictionary.getDeepValue;
local l_PresenceType_0 = v2.RoduxPresence.Enums.PresenceType;
local v5 = require(l_Parent_0.Utils.isUserInGame);
local l_FFlagContactRecs_0 = require(l_CorePackages_0.Workspace.Packages.SharedFlags).FFlagContactRecs;
local l_getFFlagContactImporterRevealSentState_0 = require(l_CorePackages_0.Workspace.Packages.ContactImporter).Flags.getFFlagContactImporterRevealSentState;
return function(v8, v9)
    local v10 = tostring(v9.profileUserId) or "";
    local v11 = l_getDeepValue_0(v8, string.format("Profile.FriendshipStatus.%s", v10));
    local v12 = l_getDeepValue_0(v8, string.format("FriendsLanding.Friends.friendshipStatus.%s", v10));
    if l_FFlagContactRecs_0 then
        v11 = v11 or v12;
    end;
    local v13 = l_getDeepValue_0(v8, string.format("Profile.AdditionalUserFields.%s.isDeleted", v10));
    local v14 = l_getDeepValue_0(v8, string.format("Profile.IsBlockedByMe.%s", v10));
    local v15 = l_getDeepValue_0(v8, string.format("Profile.Presence.byUserId.%s.lastLocation", v10));
    local v16 = l_getDeepValue_0(v8, string.format("Profile.Presence.byUserId.%s.userPresenceType", v10)) or l_PresenceType_0.Offline;
    local v17 = l_getDeepValue_0(v8, string.format("Profile.CanRequestFriendshipWith.%s", v10)) or false;
    local v18 = nil;
    if l_getFFlagContactImporterRevealSentState_0() then
        v18 = l_getDeepValue_0(v8, string.format("Profile.Contacts.hasSentRequest.%s", l_getDeepValue_0(v9, "contactProps.contactId") or "")) or false;
        if l_FFlagContactRecs_0 then
            local v19 = true;
            if v11 ~= Enum.FriendStatus.FriendRequestSent then
                v19 = v18;
            end;
            v18 = v19;
        end;
    end;
    return {
        friendshipStatus = v11 or Enum.FriendStatus.Unknown,
        isDeleted = v13 or false,
        isUserBlockedByMe = v14 or false,
        isUserInGame = v5(v16, v15),
        canRequestFriendshipWith = v17,
        hasSentRequestToContact = if not l_getFFlagContactImporterRevealSentState_0() then nil else v18,
        userPresenceType = v16
    };
end;