local l_script_FirstAncestor_0 = script:FindFirstAncestor("SocialTab");
local v1 = require(l_script_FirstAncestor_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_PresenceType_0 = v1.RoduxPresence.Enums.PresenceType;
local l_Mock_0 = v1.Mock;
local l_t_0 = v1.t;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ShimmerPanel_0 = l_UIBlox_0.App.Loading.ShimmerPanel;
local v10 = require(l_script_FirstAncestor_0.Components.StyledImageSetLabel);
local v11 = require(l_script_FirstAncestor_0.User);
local v12 = require(l_script_FirstAncestor_0.Components.StyledTextLabel);
local v13 = require(l_script_FirstAncestor_0.Flags.getSocialTabUserProfileApiEnabled);
local v14 = require(l_script_FirstAncestor_0.utils.calculateTextSize);
local v15 = require(l_script_FirstAncestor_0.Flags.isSocialTabAutoSizedCarouselAndTileEnabled2);
local function _(v16)
    return not not v16 and v16:gsub("^Playing%s*", "") or "";
end;
local v18 = l_Roact_0.PureComponent:extend("UserTile");
v18.defaultProps = {
    enableDisplayNamePolicy = false,
    height = 120,
    layoutOrder = 0,
    onActivated = function()
    end,
    thumbnailSize = 96,
    absolutePosition = 1
};
v18.validateProps = l_t_0.interface({
    enableDisplayNamePolicy = l_t_0.optional(l_t_0.boolean),
    height = l_t_0.optional(l_t_0.number),
    layoutOrder = l_t_0.optional(l_t_0.number),
    onActivated = l_t_0.optional(l_t_0.union(l_t_0.callback, l_Mock_0.MagicMock.is)),
    thumbnailSize = l_t_0.optional(l_t_0.number),
    user = v11.validateUser,
    absolutePosition = l_t_0.optional(l_t_0.number),
    shouldShimmerName = l_t_0.optional(l_t_0.boolean),
    combinedName = l_t_0.optional(l_t_0.string)
});
v18.init = function(v19)
    v19.userTileRef = l_Roact_0.createRef();
    v19.onActivated = function()
        local l_user_0 = v19.props.user;
        if not (not l_user_0 or not v19.userTileRef.current) then
            v19.props.onActivated({
                user = l_user_0,
                positionIndex = v19.props.layoutOrder,
                absolutePosition = v19.props.absolutePosition,
                anchorSpaceSize = v19.userTileRef.current.AbsoluteSize,
                anchorSpacePosition = v19.userTileRef.current.AbsolutePosition,
                source = "SocialTab"
            });
        end;
    end;
    v19.calculateTextBounds = v14();
end;
v18.render = function(v21)
    local l_user_1 = v21.props.user;
    local v23 = (not v13() and v21.props.enableDisplayNamePolicy) and l_user_1.displayName or l_user_1.username;
    if not (not v13() or not v21.props.combinedName) then
        v23 = v21.props.combinedName;
    end;
    local v24 = l_user_1.userPresenceType ~= l_PresenceType_0.Offline;
    local l_lastLocation_0 = l_user_1.lastLocation;
    local v26 = not not l_lastLocation_0 and l_lastLocation_0:gsub("^Playing%s*", "") or "";
    if l_user_1.userPresenceType ~= l_PresenceType_0.InGame then
        l_lastLocation_0 = false;
        if not (l_user_1.userPresenceType == l_PresenceType_0.InStudio) then
            goto label0;
        end;
    end;
    l_lastLocation_0 = v26;
    ::label0::;
    return l_withStyle_0(function(v27)
        local l_CaptionHeader_0 = v27.Font.CaptionHeader;
        local v29 = l_CaptionHeader_0.RelativeSize * v27.Font.BaseSize;
        local l_CaptionSubHeader_0 = v27.Font.CaptionSubHeader;
        local v31 = v21.calculateTextBounds(v26 .. "...", l_CaptionSubHeader_0, v27.Font.BaseSize);
        local v32 = v21.calculateTextBounds(v23, l_CaptionHeader_0, v27.Font.BaseSize);
        return l_Roact_0.createElement("TextButton", {
            AutomaticSize = not not v15() and Enum.AutomaticSize.Y or Enum.AutomaticSize.None,
            Size = UDim2.new(0, v21.props.thumbnailSize, 0, v21.props.height + v31.Y),
            BackgroundTransparency = 1,
            Text = "",
            LayoutOrder = v21.props.layoutOrder,
            [l_Roact_0.Ref] = v21.userTileRef,
            [l_Roact_0.Event.Activated] = v21.onActivated
        }, {
            Layout = l_Roact_0.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Top,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 8)
            }),
            Thumbnail = l_Roact_0.createElement(v10, {
                BackgroundStyle = v27.Theme.PlaceHolder,
                Image = v21.props.user.thumbnail,
                LayoutOrder = 1,
                Size = UDim2.new(0, v21.props.thumbnailSize, 0, v21.props.thumbnailSize)
            }, {
                UICorner = l_Roact_0.createElement("UICorner", {
                    CornerRadius = UDim.new(1, 0)
                })
            }),
            UserInfo = l_Roact_0.createElement("Frame", {
                AutomaticSize = not not v15() and Enum.AutomaticSize.Y or Enum.AutomaticSize.None,
                Size = UDim2.new(1, 0, 0, v21.props.height - v21.props.thumbnailSize),
                BackgroundTransparency = 1,
                LayoutOrder = 2
            }, {
                Layout = l_Roact_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    HorizontalAlignment = Enum.HorizontalAlignment.Center,
                    VerticalAlignment = Enum.VerticalAlignment.Top,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, 4)
                }),
                UsernameFrame = l_Roact_0.createElement("Frame", {
                    Size = UDim2.new(1, 0, 0, v29),
                    BackgroundTransparency = 1,
                    LayoutOrder = 1
                }, {
                    Layout = l_Roact_0.createElement("UIListLayout", {
                        FillDirection = Enum.FillDirection.Horizontal,
                        HorizontalAlignment = Enum.HorizontalAlignment.Center,
                        VerticalAlignment = Enum.VerticalAlignment.Center,
                        SortOrder = Enum.SortOrder.LayoutOrder,
                        Padding = UDim.new(0, 4)
                    }),
                    PresenceIcon = not not v24 and l_Roact_0.createElement(v10, {
                        AnchorPoint = Vector2.new(0.5, 0.5),
                        Image = l_Images_0["component_assets/circle_25"],
                        ImageStyle = v27.Theme.OnlineStatus,
                        LayoutOrder = 1,
                        Position = UDim2.fromScale(0.5, 0.5),
                        ScaleType = Enum.ScaleType.Slice,
                        Size = UDim2.new(0, 12, 0, 12),
                        SliceCenter = Rect.new(12, 12, 13, 13)
                    }) or nil,
                    Username = if v21.props.shouldShimmerName then nil else l_Roact_0.createElement(v12, {
                        FontStyle = l_CaptionHeader_0,
                        LayoutOrder = 2,
                        Size = UDim2.new(0, math.min((v21.props.thumbnailSize - 12) - 4, v32.X), 0, v32.Y),
                        TextStyle = v27.Theme.TextEmphasis,
                        Text = v23,
                        TextTruncate = Enum.TextTruncate.AtEnd,
                        TextXAlignment = Enum.TextXAlignment.Left
                    }),
                    ShimmerName = if not v21.props.shouldShimmerName then nil else l_Roact_0.createElement(l_ShimmerPanel_0, {
                        Size = UDim2.fromScale(0.8, 0.8),
                        LayoutOrder = 2
                    })
                }),
                InGameOrStudioTitle = l_Roact_0.createElement(v12, {
                    FontStyle = l_CaptionSubHeader_0,
                    LayoutOrder = 2,
                    Size = UDim2.new(1, 0, 0, v31.Y),
                    TextStyle = v27.Theme.TextMuted,
                    Text = not not l_lastLocation_0 and v26 or "",
                    TextTruncate = Enum.TextTruncate.AtEnd,
                    TextXAlignment = Enum.TextXAlignment.Center
                })
            })
        });
    end);
end;
return v18;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("SocialTab");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.UserProfiles);
local v4 = require(l_Parent_0.Cryo);
local v5 = require(script.Parent.UserTile);
local v6 = require(l_script_FirstAncestor_0.Flags.getSocialTabUserProfileApiEnabled);
return function(v7)
    local v8 = nil;
    local v9 = nil;
    local v10 = nil;
    if v6() then
        v8 = v3.Hooks.useUserProfilesFetch({
            userIds = {
                v7.user.id
            },
            query = v3.Queries.userProfilesCombinedNameAndUsernameByUserIds
        });
        v9 = (v8.loading or v8.error) and true or false;
        v10 = if not v8.data then nil else v3.Selectors.getCombinedNameFromId(v8.data, v7.user.id);
    end;
    return v2.createElement(v5, v4.Dictionary.join(v7, {
        combinedName = v10,
        shouldShimmerName = v9
    }));
end;


local l_PresenceType_0 = require(script:FindFirstAncestor("SocialTab").dependencies).RoduxPresence.Enums.PresenceType;
return {
    [l_PresenceType_0.Offline] = nil,
    [l_PresenceType_0.Online] = "component_assets/circle_16",
    [l_PresenceType_0.InGame] = "icons/menu/games_small",
    [l_PresenceType_0.InStudio] = "icons/logo/studiologo_small"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("SocialTab");
local v1 = require(l_script_FirstAncestor_0.Logger);
local v2 = require(l_script_FirstAncestor_0.Storybook.temp.StyleSwapper);
local v3 = require(l_script_FirstAncestor_0.devDependencies).Lumberyak.Logger.new();
v3:addSink({
    maxLevel = v3.Levels.fromString("info"),
    log = function(_, v5, _)
        if not _G.__TESTEZ_RUNNING_TEST__ then
            print(v5);
        end;
    end
});
v1:setParent(v3);
return {
    name = "UserCarousel",
    storyRoot = l_script_FirstAncestor_0.UserCarousel.Components,
    middleware = v2()
};


local l_Roact_0 = require(script:FindFirstAncestor("SocialTab").dependencies).Roact;
local v1 = require(script.Components.UserCarouselContainer);
return {
    render = function(v2)
        return l_Roact_0.createElement(v1, v2);
    end
};


local l_Parent_0 = script.Parent;
local l_Parent_1 = l_Parent_0.Parent;
local v2 = require(l_Parent_1.LuaSocialLibrariesDeps);
local v3 = require(l_Parent_1.Lumberyak);
local v4 = v3.Logger.new(nil, "SocialTab");
local l_LocalizationService_0 = game:GetService("LocalizationService");
local l_GetFFlagHideConnectPageWebViewItemsForVR_0 = require(l_Parent_1.SharedFlags).GetFFlagHideConnectPageWebViewItemsForVR;
local l_GetFStringNotificationsStreamNotificationUXLayer_0 = require(l_Parent_1.SharedFlags).GetFStringNotificationsStreamNotificationUXLayer;
local l_GetFFlagLuaAppNewStreamNotificationsEnabled_0 = require(l_Parent_1.SharedFlags).GetFFlagLuaAppNewStreamNotificationsEnabled;
local v9 = require(l_Parent_1.StreamNotifications);
local v10 = game:DefineFastInt("SocialTabHttpRetryCount", 3);
local l_httpRequest_0 = v2.httpRequest;
local v12 = v4:new("SocialTab Networking");
local v18 = l_httpRequest_0.config({
    requestFunction = function(v13, v14, v15)
        v12:info("Fetching: {}", string.format("[ requestMethod = %q, url = %q ]", v14, v13));
        return l_httpRequest_0.requestFunctions.HttpRbxApi(v13, v14, v15);
    end,
    postRequestFunction = function(v16, v17)
        v12:debug("Returned: {}", string.format("[ requestMethod = %q, url = %q, statusCode = %s, body = %s ]", v17.requestMethod, v17.url, v16.StatusCode, v16.Body));
    end,
    maxRetryCount = v10
});
local v19 = require(l_Parent_0.Flags.getFFlagSocialTabReplaceRefreshConversations);
local v20 = v2.RoduxNetworking.config({
    keyPath = "SocialTab.NetworkStatus",
    networkImpl = v18
});
return {
    LocalizationService = l_LocalizationService_0,
    Promise = require(l_Parent_1.Promise),
    llama = v2.llama,
    FitFrame = require(l_Parent_1.FitFrame),
    Otter = require(l_Parent_1.Otter),
    Roact = require(l_Parent_1.Roact),
    React = require(l_Parent_1.React),
    Rodux = require(l_Parent_1.Rodux),
    Cryo = require(l_Parent_1.Cryo),
    RetrievalStatus = require(l_Parent_1.Http).Enum.RetrievalStatus,
    RoactNavigation = require(l_Parent_1.RoactNavigation),
    RoactAppExperiment = require(l_Parent_1.RoactAppExperiment),
    RoactRodux = require(l_Parent_1.RoactRodux),
    ExternalEventConnection = require(l_Parent_1.RoactUtils).ExternalEventConnection,
    Logger = v4,
    t = require(l_Parent_1.t),
    Text = require(l_Parent_1.AppCommonLib).Text,
    UIBlox = require(l_Parent_1.UIBlox),
    withLocalization = require(l_Parent_1.Localization).withLocalization,
    useDispatch = require(l_Parent_1.RoactUtils).Hooks.RoactRodux.useDispatch,
    useLocalization = require(l_Parent_1.Localization).Hooks.useLocalization,
    useSelector = require(l_Parent_1.RoactUtils).Hooks.RoactRodux.useSelector,
    memoize = require(l_Parent_1.AppCommonLib).memoize,
    enumerate = require(l_Parent_1.enumerate),
    LocalizationProvider = require(l_Parent_1.Localization).LocalizationProvider,
    Url = require(l_Parent_1.Http).Url,
    VerifiedBadges = require(l_Parent_1.VerifiedBadges),
    DiscoverabilityModal = require(l_Parent_1.DiscoverabilityModal),
    ShowContactImporterParams = require(l_Parent_1.ContactImporter).ShowContactImporterParams,
    SocialCommon = require(l_Parent_1.SocialCommon),
    UniversalAppPolicy = require(l_Parent_1.UniversalAppPolicy).UniversalAppPolicy,
    UiModeStyleProvider = require(l_Parent_1.Style).UiModeStyleProvider,
    Mock = v2.Mock,
    tutils = require(l_Parent_1.tutils),
    AnalyticsService = require(l_Parent_1.Analytics).Analytics.new(game:GetService("RbxAnalyticsService")),
    NetworkingPresence = v2.NetworkingPresence.config({
        roduxNetworking = v20
    }),
    NetworkingFriends = v2.NetworkingFriends.config({
        roduxNetworking = v20
    }),
    NetworkingUsers = v2.NetworkingUsers.config({
        roduxNetworking = v20
    }),
    NetworkingGames = v2.NetworkingGames.config({
        roduxNetworking = v20
    }) or nil,
    Players = game:GetService("Players"),
    RoduxNetworking = v20,
    RoduxUsers = v2.RoduxUsers.config({
        keyPath = "SocialTab.Users"
    }),
    RoduxFriends = v2.RoduxFriends.config({
        keyPath = "SocialTab.Friends"
    }),
    RoduxPresence = v2.RoduxPresence.config({
        keyPath = "SocialTab.Presence"
    }),
    RoduxGames = v2.RoduxGames.config({
        keyPath = "SocialTab.Games"
    }),
    NetworkingChat = not not v19() and v2.NetworkingChat.config({
        roduxNetworking = v20
    }) or nil,
    CollisionMatchers = v2.CollisionMatchers,
    Lumberyak = v3,
    RunService = game:GetService("RunService"),
    validatePropsWithForwardRef = require(l_Parent_1.RoactUtils).validatePropsWithForwardRef,
    InvisibleMode = require(l_Parent_1.InvisibleMode),
    SocialLibraries = v2.SocialLibraries.config({}),
    GetFFlagHideConnectPageWebViewItemsForVR = l_GetFFlagHideConnectPageWebViewItemsForVR_0,
    SelfViewProfileDiscoverabilityUpsellIXP = require(l_Parent_1.DiscoverabilityModal).Flags.SelfViewProfileDiscoverabilityUpsellIXP,
    UserLib = require(l_Parent_1.UserLib),
    getStandardSizeAvatarHeadShotRbxthumb = require(l_Parent_1.UserLib).Utils.getStandardSizeAvatarHeadShotRbxthumb,
    AppChat = require(l_Parent_1.AppChat),
    GetFStringNotificationsStreamNotificationUXLayer = l_GetFStringNotificationsStreamNotificationUXLayer_0,
    GetFFlagLuaAppNewStreamNotificationsEnabled = l_GetFFlagLuaAppNewStreamNotificationsEnabled_0,
    StreamNotifications = v9,
    AppPage = require(l_Parent_1.RobloxAppEnums).AppPage
};


local l_Parent_0 = script.Parent.Parent;
return {
    ConvertUniverseIdToString = require(l_Parent_0.SharedFlags).ConvertUniverseIdToString,
    AppCommonLib = require(l_Parent_0.AppCommonLib),
    Lumberyak = require(l_Parent_0.Lumberyak),
    JestGlobals = require(l_Parent_0.Dev.JestGlobals),
    TestUtils = require(l_Parent_0.Dev.TestUtils),
    UnitTestHelpers = require(l_Parent_0.Dev.UnitTestHelpers),
    RhodiumHelpers = require(l_Parent_0.Dev.RhodiumHelpers),
    ReactRoblox = require(l_Parent_0.Dev.ReactRoblox)
};


return {
    Components = require(script.Components),
    Context = require(script.SocialTabContext),
    installReducer = require(script.installReducer),
    Requests = require(script.Requests),
    AndroidBackButtonConnection = require(script.AndroidBackButtonConnection),
    EnumScreens = require(script.EnumScreens),
    Flags = require(script.Flags),
    utils = require(script.utils),
    ["jest.config"] = script["jest.config"]
};


local v0 = require(script:FindFirstAncestor("SocialTab").dependencies);
local l_llama_0 = v0.llama;
local l_RoduxFriends_0 = v0.RoduxFriends;
local function v4(v3)
    return l_RoduxFriends_0.Actions.FriendshipCreated(v3.id, "localUserId");
end;
local v10 = {
    AddUser = function(v5)
        if not v5.user.isFriend then
            return {
                v5
            };
        else
            return {
                v4(v5.user)
            };
        end;
    end,
    AddUsers = function(v6)
        return l_llama_0.Dictionary.values(l_llama_0.Dictionary.map(v6.users, function(v7, _)
            if not v7.isFriend then
                return nil;
            else
                return v4(v7);
            end;
        end));
    end,
    SetFriendRequestsCount = function(v9)
        return {
            l_RoduxFriends_0.Actions.RequestReceivedCountUpdated(v9.count)
        };
    end
};
local v11 = l_RoduxFriends_0.installReducer();
return function(v12, v13)
    v12 = v12 or {
        countsByUserId = {},
        byUserId = {},
        requests = {
            receivedCount = 0
        }
    };
    local v14 = {
        v13
    };
    local v15 = v10[v13.type];
    if v15 then
        v14 = v15(v13);
    end;
    return l_llama_0.List.reduce(v14, v11, v12);
end;


local v0 = require(script:FindFirstAncestor("SocialTab").dependencies);
local l_Rodux_0 = v0.Rodux;
local l_llama_0 = v0.llama;
return l_Rodux_0.createReducer({}, {
    SetUserMembershipType = function(v3, v4)
        return l_llama_0.Dictionary.set(v3, v4.userId, v4.membershipType ~= Enum.MembershipType.None);
    end
});


local v0 = require(script:FindFirstAncestor("SocialTab").dependencies);
local l_llama_0 = v0.llama;
local l_RoduxPresence_0 = v0.RoduxPresence;
local v3 = {
    "OFFLINE",
    "ONLINE",
    "IN_GAME",
    "IN_STUDIO"
};
local function v5(v4)
    return l_RoduxPresence_0.Actions.ReceivedUserPresence((l_RoduxPresence_0.Models.Presence.new(l_llama_0.Dictionary.join(v4, {
        presence = l_llama_0.None,
        userPresenceType = (table.find(v3, v4.presence) or 1) - 1,
        gameInstanceId = l_llama_0.None,
        gameId = v4.gameInstanceId,
        lastOnline = not not DateTime.now() and DateTime.fromUnixTimestamp(v4.lastOnline or 0):ToIsoDate() or "1970-01-01T00:00:00Z"
    }))));
end;
local v7 = {
    ReceivedUserPresence = function(v6)
        if not v6.payload then
            return {
                v5(v6)
            };
        else
            return v6;
        end;
    end
};
local v8 = l_RoduxPresence_0.installReducer();
return function(v9, v10)
    v9 = v9 or {
        byUserId = {},
        byGameId = {},
        byGameInstanceId = {},
        byPlaceId = {}
    };
    local v11 = {
        v10
    };
    local v12 = v7[v10.type];
    if v12 then
        v11 = v12(v10);
    end;
    return l_llama_0.List.reduce(v11, v8, v9);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("SocialTab");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local l_NetworkingChat_0 = v1.NetworkingChat;
local v3 = require(l_script_FirstAncestor_0.utils.getUsersFromConversations);
local v4 = require(l_script_FirstAncestor_0.Flags.getFFlagSocialTabReplaceRefreshConversations);
local l_llama_0 = v1.llama;
local l_RoduxUsers_0 = v1.RoduxUsers;
local function v8(v7)
    return l_RoduxUsers_0.Actions.UserUpdated({
        id = v7.id,
        username = v7.name,
        displayName = v7.displayName,
        friendRank = v7.friendRank,
        hasVerifiedBadge = v7.hasVerifiedBadge
    });
end;
local v11 = {
    AddUser = function(v9)
        return {
            v8(v9.user)
        };
    end,
    AddUsers = function(v10)
        return l_llama_0.Dictionary.values(l_llama_0.Dictionary.map(v10.users, v8));
    end,
    [not not v4() and l_NetworkingChat_0.GetUserConversations.Succeeded.name or ""] = not not v4() and v3 or nil
};
local v12 = l_RoduxUsers_0.installReducer();
return function(v13, v14)
    v13 = v13 or {
        byUserId = {}
    };
    local v15 = {
        v14
    };
    local v16 = v11[v14.type];
    if v16 then
        v15 = if not v4() then v16(v14) else v16(v14, v13);
    end;
    return l_llama_0.List.reduce(v15, v12, v13);
end;


local v0 = require(script:FindFirstAncestor("SocialTab").dependencies);
local l_Rodux_0 = v0.Rodux;
local l_RoduxNetworking_0 = v0.RoduxNetworking;
local l_ShowContactImporterParams_0 = v0.ShowContactImporterParams;
local l_SelfViewProfileDiscoverabilityUpsellIXP_0 = v0.SelfViewProfileDiscoverabilityUpsellIXP;
return function()
    return l_Rodux_0.combineReducers({
        Users = require(script.Users),
        Friends = require(script.Friends),
        Presence = require(script.Presence),
        PremiumByUserId = require(script.PremiumByUserId),
        ShowContactImporterParams = if not l_SelfViewProfileDiscoverabilityUpsellIXP_0.SetupEnabled() then nil else l_ShowContactImporterParams_0,
        NetworkStatus = l_RoduxNetworking_0.installReducer(),
        UnreadConversationCount = require(script.UnreadConversationCount)
    });
end;


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "SocialTab",
    testMatch = {
        "**/*.test"
    },
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local v0 = require(script:FindFirstAncestor("SocialTab").dependencies);
local l_t_0 = v0.t;
local l_Text_0 = v0.Text;
local l_memoize_0 = v0.memoize;
local v4 = l_t_0.interface({
    text = l_t_0.string,
    font = l_t_0.interface({
        Font = l_t_0.Font,
        RelativeSize = l_t_0.number
    }),
    baseSize = l_t_0.number
});
return function()
    return l_memoize_0(function(v5, v6, v7)
        assert(v4({
            text = v5,
            font = v6,
            baseSize = v7
        }));
        return l_Text_0.GetTextBounds(v5, v6.Font, v6.RelativeSize * v7, Vector2.new(10000, 10000));
    end);
end;


return {
    getUsersFromConversations = require(script.getUsersFromConversations)
};


return {
    projects = {
        require(script.Parent.Parent.SocialTab)["jest.config"]
    }
};


local v0 = require(script:FindFirstAncestor("SocialTestHelpers").dependencies);
local l_Localization_0 = v0.RobloxAppLocales.Localization;
local l_LocalizationProvider_0 = v0.LocalizationProvider;
local l_Roact_0 = v0.Roact;
local v4 = l_Localization_0.new("en-us");
return function(v5, v6)
    if not ((not v6 or not v6.controls) or not v6.controls.langauge) then
        v4:SetLocale(v6.controls.language);
    end;
    return l_Roact_0.createElement(l_LocalizationProvider_0, {
        localization = v4
    }, {
        TestElement1 = l_Roact_0.createElement(v5, v6)
    });
end;


local v0 = {};
v0.__index = v0;
v0.new = function()
    local v1 = {
        linePrefix = "",
        lines = {}
    };
    setmetatable(v1, v0);
    return v1;
end;
v0.addLine = function(v2, v3)
    table.insert(v2.lines, v2.linePrefix .. (v3 or ""));
end;
v0.indent = function(v4)
    v4.linePrefix = v4.linePrefix .. "   ";
end;
v0.unindent = function(v5)
    v5.linePrefix = v5.linePrefix:sub(1 + ("   "):len());
end;
v0.__tostring = function(v6)
    return table.concat(v6.lines, "\n") .. "\n";
end;
return v0;


return function(v0)
    return function(v1)
        return function(v2)
            v0(v2);
            return v1(v2);
        end;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("SocialTestHelpers");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_RoactNavigation_0 = v2.RoactNavigation;
local l_RoactRodux_0 = v2.RoactRodux;
local l_Rodux_0 = v2.Rodux;
local l_UIBlox_0 = v2.UIBlox;
local l_LocalizationProvider_0 = v2.LocalizationProvider;
local l_Mock_0 = v2.Mock;
local l_mockNavigation_0 = v2.UnitTestHelpers.mockNavigation;
local l_ApolloProvider_0 = v2.ApolloClient.ApolloProvider;
local l_mockApolloClient_0 = v2.GraphQLServer.ApolloClientTestUtils.mockApolloClient;
local l_DesignTokenProvider_0 = require(l_Parent_0.Style).DesignTokenProvider;
local v14 = l_Mock_0.MagicMock.new({
    name = "Localization"
});
v14.Format = function(_, v16, _)
    return v16;
end;
local function v19(v18)
    return l_Rodux_0.Store.new(function()
        return v18;
    end, {}, {
        l_Rodux_0.thunkMiddleware
    });
end;
local v20 = l_Rodux_0.Store.new(function()
    return {};
end, {}, {
    l_Rodux_0.thunkMiddleware
});
return function(v21, v22)
    local v23 = l_Roact_0.createFragment({
        storeProvider = l_Roact_0.createElement(l_RoactRodux_0.StoreProvider, {
            store = if not v22.state then v22.store or v20 else v19(v22.state)
        }, {
            styleProvider = l_Roact_0.createElement(l_UIBlox_0.App.Style.AppStyleProvider, {
                style = {
                    themeName = "Dark",
                    fontName = "Gotham"
                }
            }, {
                localizationProvider = l_Roact_0.createElement(l_LocalizationProvider_0, {
                    localization = v14
                }, {
                    apolloClient = l_Roact_0.createElement(l_ApolloProvider_0, {
                        client = v22.apolloClient or l_mockApolloClient_0({})
                    }, {
                        designTokenProvider = l_Roact_0.createElement(l_DesignTokenProvider_0, {
                            tokenMappers = {}
                        }, {
                            myElement = if not v22.navigation then l_mockNavigation_0(l_Roact_0.createElement(v21, v22.props)) else l_Roact_0.createElement(l_RoactNavigation_0.Provider, {
                                value = v22.navigation
                            }, l_Roact_0.createElement(v21, v22.props))
                        })
                    })
                })
            })
        })
    });
    if v22.mockProvider then
        v23 = v22.mockProvider(v23);
    end;
    return v23;
end;


local v0 = require(script.Parent.IndentedLineBuffer);
local function v1(v2, v3)
    if v2 == nil then
        v3:addLine("[nil Instance]");
        return ;
    elseif v2.Name == nil then
        v3:addLine("[Invalid Instance]");
        return ;
    else
        v3:addLine(v2.Name);
        v3:indent();
        for _, v5 in ipairs(v2:GetChildren()) do
            v1(v5, v3);
        end;
        v3:unindent();
        return ;
    end;
end;
return function(v6)
    local v7 = v0.new();
    v1(v6, v7);
    return (tostring(v7));
end;


local l_Parent_0 = script:FindFirstAncestor("SocialTestHelpers").Parent;
local l_expect_0 = require(l_Parent_0.JestGlobals).expect;
local v2 = require(l_Parent_0.RhodiumHelpers);
return function(v3)
    return function(v4, v5)
        local v6 = v2.findFirstElement(v4, v3);
        if not v5.assertElementExists then
            l_expect_0(v6).toBeNil();
            return nil;
        else
            l_expect_0(v6).never.toBeNil();
            return v6;
        end;
    end;
end;


local l_UIBlox_0 = require(script:FindFirstAncestor("SocialTestHelpers").dependencies).UIBlox;
return function(v1)
    local v2 = l_UIBlox_0.App.ImageSet.Images[v1];
    return {
        Image = v2.Image,
        ImageRectSize = v2.ImageRectSize,
        ImageRectOffset = v2.ImageRectOffset
    };
end;


return {
    createTreeWithProviders = require(script.createTreeWithProviders),
    findImageSet = require(script.findImageSet),
    MockAppStorageService = require(script.MockAppStorageService),
    renderHookWithProviders = require(script.renderHookWithProviders),
    runWhileMounted = require(script.runWhileMounted),
    findElementWithAssert = require(script.findElementWithAssert),
    wrapInApolloProvider = require(script.wrapInApolloProvider),
    createRoduxSpyMiddleware = require(script.createRoduxSpyMiddleware)
};


local v0 = require(script:FindFirstAncestor("SocialTestHelpers").dependencies);
local l_ReactRoblox_0 = v0.ReactRoblox;
local l_act_0 = l_ReactRoblox_0.act;
local l_Dash_0 = v0.Dash;
local v4 = require(script.Parent.createTreeWithProviders);
return function(v5, v6)
    local v7 = nil;
    local function v9(v8)
        v7 = {
            v5(v8)
        };
        return nil;
    end;
    local function v13(v10, v11)
        local v12 = l_Dash_0.join(v6 or {}, v11 or {});
        v12.props = l_Dash_0.join(v12.props or {}, v10 or {});
        return (v4(v9, v12));
    end;
    local v14 = l_ReactRoblox_0.createRoot((Instance.new("Frame")));
    l_act_0(function()
        v14:render((v13({})));
    end);
    return {
        result = if not v7 then nil else v7[1],
        getResult = function()
            if not v7 then
                return nil;
            else
                return v7[1];
            end;
        end,
        getResults = function()
            return unpack(v7);
        end,
        rerender = function(v15, v16)
            l_act_0(function()
                v14:render((v13(v15, v16)));
            end);
        end,
        cleanup = function()
            v14:unmount();
        end
    };
end;


local l_Roact_0 = require(script:FindFirstAncestor("SocialTestHelpers").dependencies).Roact;
return function(v1, v2)
    local l_ScreenGui_0 = Instance.new("ScreenGui");
    l_ScreenGui_0.Parent = game:GetService("CoreGui");
    local v4 = l_Roact_0.mount(v1, l_ScreenGui_0);
    v2(l_ScreenGui_0);
    l_Roact_0.unmount(v4);
end;


local l_Parent_0 = script:FindFirstAncestor("SocialTestHelpers").Parent;
local v1 = require(l_Parent_0.React);
local l_ApolloProvider_0 = require(l_Parent_0.ApolloClient).ApolloProvider;
local l_mockApolloClient_0 = require(l_Parent_0.GraphQLServer).ApolloClientTestUtils.mockApolloClient;
return function(v4, v5)
    return v1.createElement(l_ApolloProvider_0, {
        client = v5 or l_mockApolloClient_0({})
    }, v4);
end;


local l_Parent_0 = script.Parent.Parent;
return {
    Mock = require(l_Parent_0.LuaSocialLibrariesDeps).Mock,
    UIBlox = require(l_Parent_0.UIBlox),
    UnitTestHelpers = require(l_Parent_0.UnitTestHelpers),
    Roact = require(l_Parent_0.Roact),
    Dash = require(l_Parent_0.Dash),
    Rodux = require(l_Parent_0.Rodux),
    RoactRodux = require(l_Parent_0.RoactRodux),
    RoactNavigation = require(l_Parent_0.RoactNavigation),
    ReactRoblox = require(l_Parent_0.ReactRoblox),
    LocalizationProvider = require(l_Parent_0.Localization).LocalizationProvider,
    RobloxAppLocales = require(l_Parent_0.RobloxAppLocales),
    GraphQLServer = require(l_Parent_0.GraphQLServer),
    ApolloClient = require(l_Parent_0.ApolloClient)
};


return {
    StoryHelpers = require(script.StoryHelpers),
    TestHelpers = require(script.TestHelpers)
};


local l_Parent_0 = script.Parent.Parent;
return {
    projects = {
        require(l_Parent_0.FriendsCarousel)["jest.config"],
        require(l_Parent_0.FriendsMenu)["jest.config"],
        require(l_Parent_0.PYMKCarousel)["jest.config"],
        require(l_Parent_0.Squads)["jest.config"]
    }
};


return {
    AssetSoundEffect = "AssetSoundEffect",
    ChannelSelectorSoundEffect = "ChannelSelectorSoundEffect",
    ChorusSoundEffect = "ChorusSoundEffect",
    CompressorSoundEffect = "CompressorSoundEffect",
    CustomSoundEffect = "CustomSoundEffect",
    DistortionSoundEffect = "DistortionSoundEffect",
    EchoSoundEffect = "EchoSoundEffect",
    EqualizerSoundEffect = "EqualizerSoundEffect",
    FlangeSoundEffect = "FlangeSoundEffect",
    PitchShiftSoundEffect = "PitchShiftSoundEffect",
    ReverbSoundEffect = "ReverbSoundEffect",
    TremoloSoundEffect = "TremoloSoundEffect"
};


local _ = require(script.Parent.SoundEffects);
return {
    Iris = {
        Name = "Iris",
        Volume = 0.5,
        SoundEffects = {}
    },
    AppBackground = {
        Name = "AppBackground",
        Volume = 0.5,
        SoundEffects = {}
    }
};


local l_CoreGui_0 = game:GetService("CoreGui");
local l_RunService_0 = game:GetService("RunService");
local l_RobloxGui_0 = l_CoreGui_0.RobloxGui;
local l_Parent_0 = script.Parent.Parent;
local v4 = require(l_Parent_0.Cryo);
local v5 = require(l_Parent_0.Lumberyak).Logger.new(nil, "SoundManager");
local v6 = require(script.Parent.Sounds);
local v7 = require(script.Parent.SoundEffects);
local v8 = require(script.Parent.SoundGroups);
local l_GetFFlagSoundManagerVolumeFix_0 = require(l_Parent_0.SharedFlags).GetFFlagSoundManagerVolumeFix;
local v10 = {};
v10.__index = v10;
local v11 = {
    Looped = false,
    PlaybackSpeed = 1,
    Volume = 1,
    FadeInTime = nil,
    FadeOutTime = nil,
    SoundEffects = nil
};
local function _(v12, v13, v14, v15)
    if v13 < 0 then
        error(v15 .. " cannot have a negative fadeIn/fadeOut time.");
    end;
    local v16 = (v14 - v12.Volume) / v13;
    local v17 = nil;
    v17 = l_RunService_0.Heartbeat:Connect(function(v18)
        local v19 = v12.Volume + v16 * v18;
        if v19 <= 0 then
            v12.Volume = 0;
            v12:Stop();
            v17:Disconnect();
            return ;
        elseif v14 <= v19 then
            v12.Volume = v14;
            v17:Disconnect();
            return ;
        else
            v12.Volume = v19;
            return ;
        end;
    end);
end;
v10._createSoundEffect = function(_, v22, v23, v24, v25)
    if not v7[v22] then
        error(v22 .. " does not exist in list of SoundEffects");
    end;
    local v26 = Instance.new(v22);
    for v27, v28 in pairs(v24) do
        v26[v27] = v28;
    end;
    v26.Parent = v25;
    v26.Name = v23;
end;
if l_GetFFlagSoundManagerVolumeFix_0() then
    v10.PlaySound = function(v29, v30, v31, v32)
        local l_SoundManager_Sounds_0 = l_RobloxGui_0:FindFirstChild("SoundManager_Sounds");
        if not l_SoundManager_Sounds_0 then
            error("SoundManager's Sounds folder is missing. SoundManager has not been initialized.");
        end;
        local v34 = v6[v30];
        if v34 then
            local v35 = v4.Dictionary.join(v11, v34.DefaultPlaybackProperties or {}, v31 or {});
            local l_l_SoundManager_Sounds_0_FirstChild_0 = l_SoundManager_Sounds_0:FindFirstChild(v34.Name);
            if not l_l_SoundManager_Sounds_0_FirstChild_0 then
                l_l_SoundManager_Sounds_0_FirstChild_0 = Instance.new("Sound");
                l_l_SoundManager_Sounds_0_FirstChild_0.Parent = l_SoundManager_Sounds_0;
                l_l_SoundManager_Sounds_0_FirstChild_0.SoundId = v34.SoundId;
                l_l_SoundManager_Sounds_0_FirstChild_0.Name = v34.Name;
            end;
            for _, v38 in pairs(l_l_SoundManager_Sounds_0_FirstChild_0:GetChildren()) do
                v38:Destroy();
            end;
            if v32 then
                l_l_SoundManager_Sounds_0_FirstChild_0.SoundGroup = l_RobloxGui_0:FindFirstChild("SoundManager_SoundGroups"):FindFirstChild(v32.Name);
            end;
            for v39, v40 in pairs(v35) do
                if (v39 ~= "FadeInTime" and v39 ~= "FadeOutTime") and v39 ~= "Effects" then
                    l_l_SoundManager_Sounds_0_FirstChild_0[v39] = v40;
                end;
            end;
            local l_ipairs_0 = ipairs;
            local v42 = v35.SoundEffects or {};
            for _, v44 in l_ipairs_0(v42) do
                v29:_createSoundEffect(v44.Type, v44.Name, v44.Properties, l_l_SoundManager_Sounds_0_FirstChild_0);
            end;
            if v35.FadeInTime then
                l_l_SoundManager_Sounds_0_FirstChild_0.Volume = 0;
                l_ipairs_0 = l_l_SoundManager_Sounds_0_FirstChild_0;
                v42 = v35.FadeInTime;
                local l_Volume_0 = v35.Volume;
                if v42 < 0 then
                    error(v30 .. " cannot have a negative fadeIn/fadeOut time.");
                end;
                local v46 = (l_Volume_0 - l_ipairs_0.Volume) / v42;
                local v47 = nil;
                do
                    local l_v47_0 = v47;
                    l_v47_0 = l_RunService_0.Heartbeat:Connect(function(v49)
                        local v50 = l_ipairs_0.Volume + v46 * v49;
                        if v50 <= 0 then
                            l_ipairs_0.Volume = 0;
                            l_ipairs_0:Stop();
                            l_v47_0:Disconnect();
                            return ;
                        elseif l_Volume_0 <= v50 then
                            l_ipairs_0.Volume = l_Volume_0;
                            l_v47_0:Disconnect();
                            return ;
                        else
                            l_ipairs_0.Volume = v50;
                            return ;
                        end;
                    end);
                end;
            end;
            l_l_SoundManager_Sounds_0_FirstChild_0:Play();
            return ;
        else
            error(v30 .. " does not exist in library of Sounds");
            return ;
        end;
    end;
else
    v10.PlaySound = function(v51, v52, v53, v54, v55, v56)
        local l_SoundManager_Sounds_1 = l_RobloxGui_0:FindFirstChild("SoundManager_Sounds");
        if not l_SoundManager_Sounds_1 then
            error("SoundManager's Sounds folder is missing. SoundManager has not been initialized.");
        end;
        local v58 = v6[v52];
        if v58 then
            local v59 = v4.Dictionary.join(v11, v53 or {});
            local l_l_SoundManager_Sounds_1_FirstChild_0 = l_SoundManager_Sounds_1:FindFirstChild(v58.Name);
            if not l_l_SoundManager_Sounds_1_FirstChild_0 then
                l_l_SoundManager_Sounds_1_FirstChild_0 = Instance.new("Sound");
                l_l_SoundManager_Sounds_1_FirstChild_0.Parent = l_SoundManager_Sounds_1;
                l_l_SoundManager_Sounds_1_FirstChild_0.SoundId = v58.SoundId;
                l_l_SoundManager_Sounds_1_FirstChild_0.Name = v58.Name;
            end;
            for _, v62 in pairs(l_l_SoundManager_Sounds_1_FirstChild_0:GetChildren()) do
                v62:Destroy();
            end;
            if v54 then
                l_l_SoundManager_Sounds_1_FirstChild_0.SoundGroup = l_RobloxGui_0:FindFirstChild("SoundManager_SoundGroups"):FindFirstChild(v54.Name);
            end;
            for v63, v64 in pairs(v59) do
                l_l_SoundManager_Sounds_1_FirstChild_0[v63] = v64;
            end;
            local l_ipairs_1 = ipairs;
            local v66 = v55 or {};
            for _, v68 in l_ipairs_1(v66) do
                v51:_createSoundEffect(v68.Type, v68.Name, v68.Properties, l_l_SoundManager_Sounds_1_FirstChild_0);
            end;
            if v56 then
                l_l_SoundManager_Sounds_1_FirstChild_0.Volume = 0;
                l_ipairs_1 = l_l_SoundManager_Sounds_1_FirstChild_0;
                v66 = v59.Volume;
                if v56 < 0 then
                    error(v52 .. " cannot have a negative fadeIn/fadeOut time.");
                end;
                local v69 = (v66 - l_ipairs_1.Volume) / v56;
                local v70 = nil;
                do
                    local l_v70_0 = v70;
                    l_v70_0 = l_RunService_0.Heartbeat:Connect(function(v72)
                        local v73 = l_ipairs_1.Volume + v69 * v72;
                        if v73 <= 0 then
                            l_ipairs_1.Volume = 0;
                            l_ipairs_1:Stop();
                            l_v70_0:Disconnect();
                            return ;
                        elseif v66 <= v73 then
                            l_ipairs_1.Volume = v66;
                            l_v70_0:Disconnect();
                            return ;
                        else
                            l_ipairs_1.Volume = v73;
                            return ;
                        end;
                    end);
                end;
            end;
            l_l_SoundManager_Sounds_1_FirstChild_0:Play();
            return ;
        else
            error(v52 .. " does not exist in list of Sounds");
            return ;
        end;
    end;
end;
v10.StopSound = function(_, v75, v76)
    local l_SoundManager_Sounds_2 = l_RobloxGui_0:FindFirstChild("SoundManager_Sounds");
    if not l_SoundManager_Sounds_2 then
        error("SoundManager's Sounds folder is missing. SoundManager has not been initialized.");
    end;
    local v78 = v6[v75];
    if v78 then
        local l_l_SoundManager_Sounds_2_FirstChild_0 = l_SoundManager_Sounds_2:FindFirstChild(v78.Name);
        if l_l_SoundManager_Sounds_2_FirstChild_0 then
            local v80 = nil;
            if not l_GetFFlagSoundManagerVolumeFix_0() then
                v80 = v76;
            else
                local l_DefaultPlaybackProperties_0 = v78.DefaultPlaybackProperties;
                v80 = if not l_DefaultPlaybackProperties_0 then nil else l_DefaultPlaybackProperties_0.FadeOutTime;
            end;
            if not v80 then
                l_l_SoundManager_Sounds_2_FirstChild_0:Stop();
                return ;
            else
                local l_v80_0 = v80;
                if l_v80_0 < 0 then
                    error(v75 .. " cannot have a negative fadeIn/fadeOut time.");
                end;
                local v83 = (0 - l_l_SoundManager_Sounds_2_FirstChild_0.Volume) / l_v80_0;
                local v84 = nil;
                local v85 = 0;
                v84 = l_RunService_0.Heartbeat:Connect(function(v86)
                    local v87 = l_l_SoundManager_Sounds_2_FirstChild_0.Volume + v83 * v86;
                    if v87 <= 0 then
                        l_l_SoundManager_Sounds_2_FirstChild_0.Volume = 0;
                        l_l_SoundManager_Sounds_2_FirstChild_0:Stop();
                        v84:Disconnect();
                        return ;
                    elseif v85 <= v87 then
                        l_l_SoundManager_Sounds_2_FirstChild_0.Volume = v85;
                        v84:Disconnect();
                        return ;
                    else
                        l_l_SoundManager_Sounds_2_FirstChild_0.Volume = v87;
                        return ;
                    end;
                end);
                return ;
            end;
        else
            error(v75 .. " does not exist");
            return ;
        end;
    else
        error(v75 .. " does not exist in list of Sounds");
        return ;
    end;
end;
v10.CreateSoundGroup = function(v88, v89)
    local v90 = v8[v89];
    if v90 then
        local l_SoundManager_SoundGroups_0 = l_RobloxGui_0:FindFirstChild("SoundManager_SoundGroups");
        if l_SoundManager_SoundGroups_0 then
            if not l_SoundManager_SoundGroups_0:FindFirstChild(v89) then
                local l_SoundGroup_0 = Instance.new("SoundGroup");
                l_SoundGroup_0.Name = v90.Name;
                l_SoundGroup_0.Parent = l_SoundManager_SoundGroups_0;
                l_SoundGroup_0.Volume = v90.Volume;
                for _, v94 in ipairs(v90.SoundEffects) do
                    v88:_createSoundEffect(v94.Type, v94.Name, v94.Properties, l_SoundGroup_0);
                end;
                return ;
            else
                warn("SoundGroup already exists");
                return ;
            end;
        else
            error("SoundManager's SoundGroups folder is missing. SoundManager has not been initialized.");
            return ;
        end;
    else
        error("SoundGroup does not exist in list of SoundGroups");
        return ;
    end;
end;
v10.SoundGroupAddSoundEffect = function(v95, v96, v97)
    if v8[v96] then
        local l_SoundManager_SoundGroups_1 = l_RobloxGui_0:FindFirstChild("SoundManager_SoundGroups");
        if l_SoundManager_SoundGroups_1 then
            local l_l_SoundManager_SoundGroups_1_FirstChild_0 = l_SoundManager_SoundGroups_1:FindFirstChild(v96);
            if l_l_SoundManager_SoundGroups_1_FirstChild_0 then
                if not l_l_SoundManager_SoundGroups_1_FirstChild_0:FindFirstChild(v97.Name) then
                    v95:_createSoundEffect(v97.Type, v97.Name, v97.Properties, l_l_SoundManager_SoundGroups_1_FirstChild_0);
                    return ;
                else
                    error("SoundEffect with name " .. v97.Name .. " already exists for sound group " .. v96);
                    return ;
                end;
            else
                error("SoundGroup Instance not created");
                return ;
            end;
        else
            error("SoundManager's SoundGroups folder is missing. SoundManager has not been initialized.");
            return ;
        end;
    else
        error("SoundGroup does not exist in list of SoundGroups");
        return ;
    end;
end;
v10.SoundGroupRemoveSoundEffect = function(_, v101, v102)
    local v103 = v8[v101];
    if v103 then
        local l_SoundManager_SoundGroups_2 = l_RobloxGui_0:FindFirstChild("SoundManager_SoundGroups");
        if l_SoundManager_SoundGroups_2 then
            local l_l_SoundManager_SoundGroups_2_FirstChild_0 = l_SoundManager_SoundGroups_2:FindFirstChild(v101);
            if l_l_SoundManager_SoundGroups_2_FirstChild_0 then
                local l_l_l_SoundManager_SoundGroups_2_FirstChild_0_FirstChild_0 = l_l_SoundManager_SoundGroups_2_FirstChild_0:FindFirstChild(v102);
                if not l_l_l_SoundManager_SoundGroups_2_FirstChild_0_FirstChild_0 then
                    error(v102 .. " not found in " .. v103.Name);
                end;
                l_l_l_SoundManager_SoundGroups_2_FirstChild_0_FirstChild_0:Destroy();
                return ;
            else
                error("SoundGroup Instance not created");
                return ;
            end;
        else
            error("SoundManager's SoundGroups folder is missing. SoundManager has not been initialized.");
            return ;
        end;
    else
        error("SoundGroup does not exist in list of SoundGroups");
        return ;
    end;
end;
v10.init = function()
    local v107 = setmetatable({}, v10);
    if l_RobloxGui_0:FindFirstChild("SoundManager_Sounds") then
        v5:warning("SoundManager already initialized");
        return v107;
    else
        local l_Folder_0 = Instance.new("Folder");
        l_Folder_0.Name = "SoundManager_Sounds";
        l_Folder_0.Parent = l_RobloxGui_0;
        local l_Folder_1 = Instance.new("Folder");
        l_Folder_1.Name = "SoundManager_SoundGroups";
        l_Folder_1.Parent = l_RobloxGui_0;
        return v107;
    end;
end;
return v10;


local _ = require(script.Parent.SoundEffects);
local _ = require(script.Parent.SoundGroups);
return {
    CallAccept = {
        Name = "CallAccept",
        SoundId = "rbxassetid://14891715516"
    },
    CallDecline = {
        Name = "CallDecline",
        SoundId = "rbxassetid://14891713083"
    },
    HangUp = {
        Name = "HangUp",
        SoundId = "rbxassetid://14891706508"
    },
    Hover = {
        Name = "Hover",
        SoundId = "rbxassetid://14891703967"
    },
    Ringtone = {
        Name = "Ringtone",
        SoundId = "rbxassetid://14891720242"
    },
    Select = {
        Name = "Select",
        SoundId = "rbxassetid://14891717694"
    },
    Swipe = {
        Name = "Swipe",
        SoundId = "rbxassetid://14951578106"
    },
    VRAppLobbySound = {
        Name = "VRAppLobbySound",
        SoundId = "rbxassetid://15227666815",
        DefaultPlaybackProperties = {
            FadeOutTime = 3
        }
    },
    AppSelect = {
        Name = "AppSelect",
        SoundId = "rbxassetid://17208396156",
        DefaultPlaybackProperties = {
            Volume = math.clamp(game:DefineFastInt("AppSelectVolumePercentage", 12), 0, 100) / 100
        }
    },
    AppHover1 = {
        Name = "AppHover1",
        SoundId = "rbxassetid://17208348006",
        DefaultPlaybackProperties = {
            Volume = math.clamp(game:DefineFastInt("AppHover1VolumePercentage", 7), 0, 100) / 100
        }
    },
    NotificationHigh = {
        Name = "NotificationHigh",
        SoundId = "rbxassetid://17208361335",
        DefaultPlaybackProperties = {
            Volume = math.clamp(game:DefineFastInt("AppNotificationHighVolumePercentage", 15), 0, 100) / 100
        }
    },
    Purchase = {
        Name = "Purchase",
        SoundId = "rbxassetid://17208380755",
        DefaultPlaybackProperties = {
            Volume = math.clamp(game:DefineFastInt("PurchaseVolumePercentage", 15), 0, 100) / 100
        }
    }
};


return {
    Sounds = require(script.Sounds),
    SoundEffects = require(script.SoundEffects),
    SoundGroups = require(script.SoundGroups),
    SoundManager = require(script.SoundManager)
};


local l_Parent_0 = script:FindFirstAncestor("SplashScreenManager").Parent;
local l_RunService_0 = game:GetService("RunService");
l_RunService_0 = require(l_Parent_0.MockableProxyServices).RunService;
local v2 = nil;
local function _()
    v2 = Instance.new("ColorCorrectionEffect");
    if v2 then
        v2.Parent = game:GetService("Lighting");
        v2.TintColor = Color3.new(0, 0, 0);
        v2.Enabled = true;
    end;
end;
local function _()
    if v2 then
        v2:Destroy();
        v2 = nil;
    end;
end;
local v5 = false;
local v6 = true;
local v7 = false;
local v8 = {};
local _ = function()
    for _, v10 in v8, nil, nil do
        v10(v6);
    end;
end;
return {
    initialize = function(v12, v13, v14)
        if not (v7 or v5) then
            v6 = false;
            v2 = Instance.new("ColorCorrectionEffect");
            if v2 then
                v2.Parent = game:GetService("Lighting");
                v2.TintColor = Color3.new(0, 0, 0);
                v2.Enabled = true;
            end;
            for _, v16 in v8, nil, nil do
                v16(v6);
            end;
            local v17 = {};
            local v18 = 0;
            local v19 = 1 / v12;
            local v20 = v14 or v12;
            local v21 = tick();
            local v22 = 0;
            local v23 = nil;
            do
                local l_v18_0, l_v22_0, l_v23_0 = v18, v22, v23;
                local function _()
                    if l_v23_0 then
                        l_v23_0:Disconnect();
                    end;
                    if v2 then
                        v2:Destroy();
                        v2 = nil;
                    end;
                    v6 = true;
                    v7 = false;
                end;
                l_v23_0 = l_RunService_0.RenderStepped:Connect(function(v28)
                    l_v22_0 = tick() - v21;
                    table.insert(v17, v28);
                    l_v18_0 = l_v18_0 + v28;
                    if v20 < #v17 then
                        local v29 = table.remove(v17, 1);
                        if v29 ~= nil then
                            l_v18_0 = l_v18_0 - v29;
                        end;
                    end;
                    local v30 = l_v18_0 / #v17;
                    if not (not v13 or v13 >= l_v22_0) or v20 <= #v17 and math.floor(v30 * 100) <= math.floor(v19 * 100) then
                        v6 = true;
                        for _, v32 in v8, nil, nil do
                            v32(v6);
                        end;
                        if l_v23_0 then
                            l_v23_0:Disconnect();
                        end;
                        if v2 then
                            v2:Destroy();
                            v2 = nil;
                        end;
                        v6 = true;
                        v7 = false;
                    end;
                end);
                v7 = true;
            end;
        end;
    end,
    addStatusChangeListener = function(v33)
        table.insert(v8, v33);
        return v33;
    end,
    removeStatusChangeListener = function(v34)
        for v35, v36 in v8, nil, nil do
            if v36 == v34 then
                table.remove(v8, v35);
            end;
        end;
    end,
    isFPSAtTarget = function()
        return v6;
    end,
    __setTestMode = function()
        v5 = true;
    end
};


return {
    ["jest.config"] = script["jest.config"],
    SplashScreenManager = require(script.SplashScreenManager),
    useIsFPSAtTarget = require(script.useIsFPSAtTarget)
};


local v0 = require(script.Parent.Parent.Dev.JestConfigs);
return {
    displayName = "SplashScreenManager",
    setupFilesAfterEnv = {
        v0.setupFiles.LogHandler,
        v0.setupFiles.UIBloxInitializer,
        v0.setupFiles.createPromiseRejectionHandler()
    }
};


local v0 = require(game:GetService("CorePackages").Packages.React);
local v1 = require(script.Parent.SplashScreenManager);
return function()
    local v2, v3 = v0.useState(v1.isFPSAtTarget());
    local v5 = v0.useCallback(function(v4)
        v3(v4);
    end, {
        v3
    });
    v0.useEffect(function()
        v1.addStatusChangeListener(v5);
        return function()
            v1.removeStatusChangeListener(v5);
        end;
    end, {});
    return v2;
end;


return {
    AVATAR_SIZE = 32,
    RODUX_KEY = "Squad",
    SQUAD_MAX_CAPACITY = 20,
    SHARE_ICON = "icons/actions/share",
    BLOCKED_ICON_IMAGE = "icons/status/unavailable",
    CHAT_ICON = "icons/menu/chat_off",
    PICK_AN_EXPERIENCE_ICON = "icons/menu/games_on",
    INVITE_FRIENDS_ICON = "icons/actions/friends/friendInvite",
    SQUAD_INVITE_FRIENDS_TOP_BAR_ICON_SIZE = 28,
    SQUAD_LOBBY_AVATAR_SIZE = 96,
    SQUAD_LOBBY_IN_GAME_BORDER_SIZE = 2,
    SQUAD_LOBBY_USER_CARD_SIZE = Vector2.new(96, 144),
    SQUAD_LOBBY_ACTION_BAR_HEIGHT = 64,
    SQUAD_LOBBY_TITLE_BAR_HEIGHT = 56,
    SQUAD_INVITE_PARENT_COMPONENT = "SquadLobby"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Squads");
local v1 = require(l_script_FirstAncestor_0.Common.getColorFromUserId);
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Dash_0 = v2.Dash;
local l_UIBlox_0 = v2.UIBlox;
local l_dependencyArray_0 = v2.Hooks.dependencyArray;
local l_llama_0 = v2.llama;
local l_getStandardSizeAvatarHeadShotRbxthumb_0 = v2.getStandardSizeAvatarHeadShotRbxthumb;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v10 = require(l_script_FirstAncestor_0.Parent.React);
local v11 = {
    borderColor = Color3.fromRGB(0, 0, 0),
    borderWidth = 0,
    horizontalAlignment = Enum.HorizontalAlignment.Left,
    facePileWidth = UDim.new(1, 0),
    layoutOrder = 0,
    reverse = false
};
return function(v12)
    local v13 = l_Dash_0.join(v11, v12 or {});
    local v14 = v10.useRef(nil);
    local v15, v16 = v10.useState(0);
    local v17 = l_useStyle_0();
    local l_Theme_0 = v17.Theme;
    local l_Font_0 = v17.Font;
    v10.useEffect(function()
        v16(if not not v14 and v14.current then v14.current.AbsoluteSize.X else 0);
    end);
    return v10.createElement("Frame", {
        ref = v14,
        Size = UDim2.new(v13.facePileWidth.Scale, v13.facePileWidth.Offset, 0, v13.avatarSize),
        BackgroundTransparency = 1,
        LayoutOrder = v13.layoutOrder,
        [v10.Change.AbsoluteSize] = v10.useCallback(function(v20)
            v16(v20.AbsoluteSize.X);
        end, l_dependencyArray_0(v16))
    }, (v10.useMemo(function()
        local l_users_0 = v13.users;
        local l_avatarSize_0 = v13.avatarSize;
        local l_overlapOffset_0 = v13.overlapOffset;
        local l_borderWidth_0 = v13.borderWidth;
        local l_borderColor_0 = v13.borderColor;
        local v26 = if not v13.faceCount then #l_users_0 else v13.faceCount;
        local l_horizontalAlignment_0 = v13.horizontalAlignment;
        local l_reverse_0 = v13.reverse;
        if not ((((v15 >= l_avatarSize_0 and l_avatarSize_0 >= l_overlapOffset_0) and v15 > 0) and l_avatarSize_0 > 0) and v26 > 0) or v26 < #l_users_0 then
            return nil;
        else
            local v29 = 0;
            v29 = if l_avatarSize_0 == l_overlapOffset_0 then v26 else math.floor((v15 - l_avatarSize_0) / (l_avatarSize_0 - l_overlapOffset_0)) + 1;
            local v30 = {};
            for v31 = 1, v26 do
                if v29 >= v31 then
                    local v32 = "AvatarCell" .. v31;
                    local v33 = UDim2.fromOffset(l_avatarSize_0 - l_borderWidth_0 * 2, l_avatarSize_0 - l_borderWidth_0 * 2);
                    local _ = nil;
                    v30[v32] = v10.createElement("Frame", {
                        Size = UDim2.fromOffset(l_avatarSize_0, l_avatarSize_0),
                        BackgroundTransparency = 0,
                        BackgroundColor3 = l_borderColor_0,
                        LayoutOrder = v31,
                        ZIndex = if not l_reverse_0 then v31 else (v26 - v31) + 1
                    }, {
                        UICorner = v10.createElement("UICorner", {
                            CornerRadius = UDim.new(1, 0)
                        }),
                        UserAvatar = if v31 == v29 and v29 < v26 then v10.createElement("TextLabel", {
                            Font = l_Font_0.CaptionHeader.Font,
                            TextColor3 = l_Theme_0.TextEmphasis.Color,
                            TextTransparency = l_Theme_0.TextEmphasis.Transparency,
                            Text = "+" .. math.min((v26 - v29) + 1, 99),
                            Size = v33,
                            TextSize = l_Font_0.BaseSize * l_Font_0.CaptionHeader.RelativeSize,
                            Position = UDim2.fromScale(0.5, 0.5),
                            AnchorPoint = Vector2.new(0.5, 0.5),
                            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color
                        }, {
                            UICorner = v10.createElement("UICorner", {
                                CornerRadius = UDim.new(1, 0)
                            })
                        }) else if v31 <= #l_users_0 then v10.createElement(l_ImageSetLabel_0, {
                            Image = l_getStandardSizeAvatarHeadShotRbxthumb_0(l_users_0[v31]),
                            Size = v33,
                            Position = UDim2.fromScale(0.5, 0.5),
                            AnchorPoint = Vector2.new(0.5, 0.5),
                            BackgroundColor3 = v1((tonumber(l_users_0[v31])))
                        }, {
                            UICorner = v10.createElement("UICorner", {
                                CornerRadius = UDim.new(1, 0)
                            })
                        }) else v10.createElement("Frame", {
                            Size = v33,
                            Position = UDim2.fromScale(0.5, 0.5),
                            AnchorPoint = Vector2.new(0.5, 0.5),
                            BackgroundColor3 = l_Theme_0.TextSecondary
                        }, {
                            UICorner = v10.createElement("UICorner", {
                                CornerRadius = UDim.new(1, 0)
                            })
                        })
                    });
                else
                    break;
                end;
            end;
            return l_llama_0.Dictionary.join(v30, {
                layout = v10.createElement("UIListLayout", {
                    HorizontalAlignment = l_horizontalAlignment_0,
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    FillDirection = Enum.FillDirection.Horizontal,
                    SortOrder = Enum.SortOrder.LayoutOrder,
                    Padding = UDim.new(0, -l_overlapOffset_0)
                })
            });
        end;
    end, l_dependencyArray_0(v15, v13.users, v13.avatarSize, v13.overlapOffset, v13.borderWidth, v13.borderColor, v13.faceCount, v13.horizontalAlignment, v13.reverse))));
end;


local l_TextService_0 = game:GetService("TextService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("Squads");
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_RoactFitComponents_0 = v2.RoactFitComponents;
local l_UIBlox_0 = v2.UIBlox;
local l_t_0 = v2.t;
local l_withLocalization_0 = v2.withLocalization;
local v8 = require(l_script_FirstAncestor_0.Common.Constants);
local v9 = require(l_script_FirstAncestor_0.Components.FacePile);
local v10 = require(l_script_FirstAncestor_0.Components.ProgressBar);
local l_FitFrameVertical_0 = l_RoactFitComponents_0.FitFrameVertical;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_InteractiveAlert_0 = l_UIBlox_0.App.Dialog.Alert.InteractiveAlert;
local l_LoadableImage_0 = l_UIBlox_0.App.Loading.LoadableImage;
local l_withStyle_0 = l_UIBlox_0.Core.Style.withStyle;
local v16 = l_Roact_0.Component:extend("JoinExperienceModal");
local _ = require(script.Parent.joinExperienceMapStateToProps);
v16.defaultProps = {
    closeModal = function()
    end
};
v16.validateProps = l_t_0.interface({
    closeModal = l_t_0.callback,
    users = l_t_0.table,
    experienceName = l_t_0.string,
    experienceServerSize = l_t_0.number,
    screenSize = l_t_0.Vector2
});
v16.render = function(v18)
    local l_props_0 = v18.props;
    return l_withLocalization_0({
        titleText = "CommonUI.Messages.Label.Alert",
        bodyText = {
            "Feature.Squads.Description.JoinExperiencePrompt";
            experienceName = l_props_0.experienceName
        },
        acceptButtonText = "CommonUI.Controls.Action.Accept",
        declineButtonText = "CommonUI.Controls.Action.Decline"
    })(function(v20)
        return l_withStyle_0(function(v21)
            local l_Theme_0 = v21.Theme;
            local l_Font_0 = v21.Font;
            local v24 = #l_props_0.users .. "/" .. (l_props_0.experienceServerSize or 0);
            local v25 = l_Font_0.BaseSize * l_Font_0.Header2.RelativeSize;
            local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v24, v25, l_Font_0.Header2.Font, Vector2.new(math.huge, 32));
            return l_Roact_0.createElement(l_InteractiveAlert_0, {
                screenSize = l_props_0.screenSize,
                title = v20.titleText,
                bodyText = v20.bodyText,
                middleContent = function()
                    return l_Roact_0.createElement(l_FitFrameVertical_0, {
                        BackgroundColor3 = Color3.fromRGB(17, 17, 17),
                        BorderSizePixel = 0,
                        FillDirection = Enum.FillDirection.Vertical,
                        width = UDim.new(1, 0)
                    }, {
                        l_Roact_0.createElement("Frame", {
                            BorderSizePixel = 0,
                            Size = UDim2.new(1, 0, 0.5625, 0),
                            SizeConstraint = Enum.SizeConstraint.RelativeXX
                        }, {
                            ExperienceImage = l_Roact_0.createElement(l_LoadableImage_0, {
                                ZIndex = 1,
                                Image = l_props_0.experienceImageId,
                                Size = UDim2.fromScale(1, 1),
                                showFailedStateWhenLoadingFailed = true,
                                useShimmerAnimationWhileLoading = true
                            }),
                            BottomBar = l_Roact_0.createElement("Frame", {
                                BackgroundTransparency = 1,
                                BorderSizePixel = 0,
                                Position = UDim2.new(0, 0, 1, -40),
                                Size = UDim2.new(1, 0, 0, 32),
                                ZIndex = 2
                            }, {
                                Padding = l_Roact_0.createElement("UIPadding", {
                                    PaddingLeft = UDim.new(0, 12),
                                    PaddingRight = UDim.new(0, 12)
                                }),
                                Layout = l_Roact_0.createElement("UIListLayout", {
                                    FillDirection = Enum.FillDirection.Horizontal,
                                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                                    VerticalAlignment = Enum.VerticalAlignment.Bottom
                                }),
                                FacePile = l_Roact_0.createElement(v9, {
                                    avatarSize = v8.AVATAR_SIZE,
                                    borderColor = Color3.fromRGB(11, 11, 11),
                                    borderWidth = 2,
                                    faceCount = l_props_0.experienceServerSize,
                                    facePileWidth = UDim.new(1, -l_l_TextService_0_TextSize_0.X - 16),
                                    overlapOffset = 4,
                                    users = l_props_0.users
                                }),
                                ServerLimitTextContainer = l_Roact_0.createElement("Frame", {
                                    BackgroundTransparency = 1,
                                    BorderSizePixel = 0,
                                    Size = UDim2.new(0, l_l_TextService_0_TextSize_0.X + 16, 1, 0)
                                }, {
                                    Layout = l_Roact_0.createElement("UIListLayout", {
                                        HorizontalAlignment = Enum.HorizontalAlignment.Right,
                                        VerticalAlignment = Enum.VerticalAlignment.Center
                                    }),
                                    ServerLimitText = l_Roact_0.createElement("TextLabel", {
                                        BackgroundTransparency = 1,
                                        BorderSizePixel = 0,
                                        Font = l_Font_0.Header2.Font,
                                        Text = v24,
                                        TextColor3 = l_Theme_0.TextDefault.Color,
                                        TextSize = v25,
                                        Size = UDim2.new(0, l_l_TextService_0_TextSize_0.X, 1, 0)
                                    })
                                })
                            })
                        });
                        ProgressBar = l_Roact_0.createElement(v10, {
                            targetElapsedTime = 15
                        })
                    });
                end,
                buttonStackInfo = {
                    buttons = {
                        {
                            buttonType = nil,
                            props = {
                                text = v20.declineButtonText,
                                onActivated = function()
                                    l_props_0.closeModal(false);
                                end
                            }
                        },
                        {
                            buttonType = l_ButtonType_0.PrimarySystem,
                            props = {
                                text = v20.acceptButtonText,
                                onActivated = function()
                                    l_props_0.closeModal(true);
                                end
                            }
                        }
                    }
                }
            });
        end);
    end);
end;
return v16;


local v0 = require(script:FindFirstAncestor("Squads").dependencies);
local l_Roact_0 = v0.Roact;
local l_RoactNavigation_0 = v0.RoactNavigation;
local l_RoactRodux_0 = v0.RoactRodux;
local l_Dash_0 = v0.Dash;
local l_NetworkingGames_0 = v0.NetworkingGames;
local l_t_0 = v0.t;
local v7 = require(script.Parent.JoinExperienceModal);
local v8 = require(script.Parent.joinExperienceMapStateToProps);
local v9 = l_Roact_0.Component:extend("JoinExperienceModalContainer");
v9.validateProps = l_t_0.interface({
    closeModal = l_t_0.callback,
    universeId = l_t_0.string,
    users = l_t_0.table,
    experienceName = l_t_0.string,
    experienceServerSize = l_t_0.number,
    screenSize = l_t_0.Vector2,
    getExperiencesDetails = l_t_0.callback,
    getExperienceMedia = l_t_0.callback,
    navigation = l_t_0.table
});
v9.init = function(v10)
    v10.closeModal = function(v11)
        local l_props_0 = v10.props;
        l_props_0.closeModal(v11);
        l_props_0.navigation.pop();
    end;
end;
v9.didMount = function(v13)
    if #v13.props.universeId > 0 then
        v13.props.getExperiencesDetails(v13.props.universeId);
        v13.props.getExperienceMedia(v13.props.universeId);
    end;
end;
v9.render = function(v14)
    return l_Roact_0.createElement(v7, l_Dash_0.join(v14.props, {
        closeModal = v14.closeModal
    }));
end;
return l_RoactNavigation_0.withNavigation((l_RoactRodux_0.connect(v8, function(v15)
    return {
        getExperiencesDetails = function(v16)
            return v15(l_NetworkingGames_0.GetExperiencesDetails.API({
                v16
            }));
        end,
        getExperienceMedia = function(v17)
            return v15(l_NetworkingGames_0.GetExperienceMedia.API(v17));
        end
    };
end)(v9)));


local v0 = require(script:FindFirstAncestor("Squads").dependencies);
local l_SocialLibraries_0 = v0.SocialLibraries;
local l_Url_0 = v0.Url;
local l_getDeepValue_0 = l_SocialLibraries_0.Dictionary.getDeepValue;
return function(v4, v5)
    local l_universeId_0 = v5.universeId;
    local v7 = l_getDeepValue_0(v4, string.format("Squad.Games.byGameId.%s.name", l_universeId_0));
    local v8 = l_getDeepValue_0(v4, string.format("Squad.Games.byGameId.%s.rootPlaceId", l_universeId_0));
    local v9 = l_getDeepValue_0(v4, string.format("Squad.Games.byGameId.%s.maxPlayers", l_universeId_0));
    local v10 = l_getDeepValue_0(v4, string.format("Squad.Games.mediaByGameId.%s", l_universeId_0));
    local v11 = nil;
    if v10 ~= nil then
        for _, v13 in ipairs(v10) do
            if v13.assetTypeId == 1 then
                v11 = "http://www.roblox.com/asset/?id=" .. tostring(v13.imageId);
                break;
            end;
        end;
        if v11 == nil then
            v11 = l_Url_0:getPlaceDefaultThumbnailUrl(v8, 640, 360);
        end;
    end;
    return {
        experienceName = v7,
        experienceImageId = v11,
        experienceServerSize = v9,
        screenSize = v4.ScreenSize
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Squads");
local v1 = require(l_script_FirstAncestor_0.Components.FacePile);
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_React_0 = v2.React;
local l_UIBlox_0 = v2.UIBlox;
local l_StyledTextLabel_0 = l_UIBlox_0.App.Text.StyledTextLabel;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local v7 = Color3.fromRGB(60, 100, 250);
local v8 = Color3.fromRGB(17, 19, 22);
local function v9()
end;
return function(v10)
    local v11 = l_useStyle_0();
    local v12 = 24 * math.min(6, #v10.users) - 10 * (math.min(6, #v10.users) - 1);
    return l_React_0.createElement("ImageButton", {
        Size = UDim2.new(1, 0, 0, 54),
        BackgroundColor3 = v7,
        BackgroundTransparency = 0,
        BorderSizePixel = 0,
        [l_React_0.Event.Activated] = v9
    }, {
        UIListLayout = l_React_0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            HorizontalAlignment = Enum.HorizontalAlignment.Left,
            Padding = UDim.new(0, 12),
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        UIPadding = l_React_0.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 12),
            PaddingRight = UDim.new(0, 12)
        }),
        Icon = l_React_0.createElement("ImageLabel", {
            Size = UDim2.fromOffset(32, 32),
            BackgroundTransparency = 1,
            Image = "rbxasset://textures/ui/LuaApp/graphic/player.png",
            ImageColor3 = Color3.fromRGB(255, 255, 255),
            LayoutOrder = 1
        }),
        Body = l_React_0.createElement("Frame", {
            Size = UDim2.new(1, -56 - v12, 1, 0),
            BackgroundTransparency = 1,
            LayoutOrder = 2
        }, {
            UIListLayout = l_React_0.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Left,
                Padding = UDim.new(0, 4),
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            TitleText = l_React_0.createElement(l_StyledTextLabel_0, {
                automaticSize = Enum.AutomaticSize.Y,
                colorStyle = v11.Theme.TextEmphasis,
                fluidSizing = false,
                fontStyle = v11.Font.CaptionHeader,
                layoutOrder = 1,
                lineHeight = 1,
                size = UDim2.fromScale(1, 0),
                text = not v10.isCurrentParty and "Live Party" or "You are in a party",
                textWrapped = false,
                textTruncate = Enum.TextTruncate.AtEnd,
                textXAlignment = Enum.TextXAlignment.Left
            }),
            ActionText = l_React_0.createElement(l_StyledTextLabel_0, {
                automaticSize = Enum.AutomaticSize.Y,
                colorStyle = v11.Theme.TextEmphasis,
                fluidSizing = false,
                fontStyle = v11.Font.Footer,
                layoutOrder = 2,
                lineHeight = 1,
                size = UDim2.fromScale(1, 0),
                text = not v10.isCurrentParty and "Tap to join" or "Return to party",
                textTruncate = Enum.TextTruncate.AtEnd,
                textWrapped = false,
                textXAlignment = Enum.TextXAlignment.Left
            })
        }),
        LivePartyFacePile = l_React_0.createElement(v1, {
            avatarSize = 24,
            borderColor = v8,
            borderWidth = 2,
            faceCount = #v10.users,
            facePileWidth = UDim.new(0, v12),
            layoutOrder = 3,
            overlapOffset = 10,
            reverse = true,
            users = v10.users
        })
    });
end;


local v0 = require(script:FindFirstAncestor("Squads").dependencies);
local l_Roact_0 = v0.Roact;
local l_RunService_0 = v0.RunService;
local l_UIBlox_0 = v0.UIBlox;
local l_t_0 = v0.t;
local v5 = l_Roact_0.Component:extend("ProgressBar");
v5.validateProps = l_t_0.interface({
    targetElapsedTime = l_t_0.number
});
v5.init = function(v6)
    v6.progressBarReference = l_Roact_0.createRef();
    v6.totalElapsedTime = 0;
end;
v5.didMount = function(v7)
    v7.connection = l_RunService_0.RenderStepped:Connect(function(v8)
        v7.totalElapsedTime = math.min(v7.totalElapsedTime + v8, v7.props.targetElapsedTime);
        if v7.progressBarReference.current ~= nil then
            v7.progressBarReference.current.Size = UDim2.new(v7.totalElapsedTime / v7.props.targetElapsedTime, 0, 0, 4);
        end;
    end);
end;
v5.render = function(v9)
    return l_Roact_0.createElement("Frame", {
        BackgroundColor3 = l_UIBlox_0.App.Style.Colors.White,
        BackgroundTransparency = 0,
        BorderSizePixel = 0,
        [l_Roact_0.Ref] = v9.progressBarReference
    }, {
        UICorner = l_Roact_0.createElement("UICorner", {
            CornerRadius = UDim.new(0, 2)
        })
    });
end;
v5.willUnmount = function(v10)
    v10.connection:Disconnect();
    v10.connection = nil;
end;
return v5;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Squads");
local v1 = require(l_script_FirstAncestor_0.dependencies);
local v2 = require(l_script_FirstAncestor_0.Common.Constants);
local v3 = require(l_script_FirstAncestor_0.EnumScreens);
local l_AppChatNetworking_0 = v1.AppChatNetworking;
local l_AppHeaderBar_0 = v1.AppHeaderBar;
local l_FriendsMenu_0 = v1.FriendsMenu;
local l_React_0 = v1.React;
local l_dependencyArray_0 = v1.Hooks.dependencyArray;
local l_SharedFlags_0 = v1.SharedFlags;
local l_UIBlox_0 = v1.UIBlox;
local l_useDispatch_0 = v1.Hooks.useDispatch;
local l_useLocalization_0 = v1.Hooks.useLocalization;
local l_useNavigation_0 = v1.useNavigation;
local l_FriendsMenuFriendsList_0 = l_FriendsMenu_0.FriendsMenuFriendsList;
local l_FriendsMenuContextWrapper_0 = l_FriendsMenu_0.FriendsMenuContextWrapper;
local l_FriendsMenuSearch_0 = l_FriendsMenu_0.FriendsMenuSearch;
local l_FriendMenuType_0 = l_FriendsMenu_0.FriendMenuType;
local l_SelectedUsersScroller_0 = l_FriendsMenu_0.SelectedUsersScroller;
local l_GetFFlagEnableFriendMenuMultiSelect_0 = l_SharedFlags_0.GetFFlagEnableFriendMenuMultiSelect;
local l_GetFFlagUIBloxUseNewHeaderBar_0 = l_SharedFlags_0.UIBlox.GetFFlagUIBloxUseNewHeaderBar;
local l_HeaderBar_0 = l_UIBlox_0.App.Bar.HeaderBar;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local v23 = require(script.Parent.SquadInviteFriendsButton);
local function v24()
end;
return function()
    local v25 = l_useLocalization_0({
        inviteToSquadLabel = "Feature.Squads.Label.InviteToSquad"
    });
    local v26 = l_useDispatch_0();
    local v27 = l_useNavigation_0();
    local v28 = v27.getParam("conversationId");
    local l_Theme_0 = l_useStyle_0().Theme;
    local v30, v31 = l_React_0.useState(0);
    return l_React_0.createElement(l_FriendsMenuContextWrapper_0, {
        inviteSingleFriend = v24,
        inviteMultiFriends = l_React_0.useCallback(function(v32, v33)
            v26(l_AppChatNetworking_0.rodux.AddUserToConversation.API(v33, v32)):andThen(function()
                v27.navigate(v3.SquadLobby, {
                    conversationId = v33
                });
            end);
        end, {}),
        isLoadingCustomParams = false
    }, {
        ContainerFrame = l_React_0.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, -52),
            BackgroundTransparency = l_Theme_0.BackgroundDefault.Transparency,
            BackgroundColor3 = l_Theme_0.BackgroundDefault.Color,
            BorderSizePixel = 0
        }, {
            VerticalLayout = l_React_0.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                Padding = UDim.new(0, 16),
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            HeaderBar = l_React_0.createElement(l_HeaderBar_0, {
                barHeight = v2.SQUAD_LOBBY_TITLE_BAR_HEIGHT,
                renderLeft = (if not l_GetFFlagUIBloxUseNewHeaderBar_0() then l_HeaderBar_0.renderLeft.backButton else l_AppHeaderBar_0.makeBackButton)((l_React_0.useCallback(function()
                    v27.pop();
                end, l_dependencyArray_0(v27)))),
                renderRight = v24,
                title = v25.inviteToSquadLabel
            }),
            SearchSelectFrame = l_React_0.createElement("Frame", {
                Size = UDim2.fromScale(1, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                LayoutOrder = 0,
                [l_React_0.Change.AbsoluteSize] = l_React_0.useCallback(function(v34)
                    v31(v34.AbsoluteSize.Y);
                end, l_dependencyArray_0(v31))
            }, {
                Padding = l_React_0.createElement("UIPadding", {
                    PaddingRight = UDim.new(0, 24),
                    PaddingLeft = UDim.new(0, 24)
                }),
                VerticalLayout = l_React_0.createElement("UIListLayout", {
                    FillDirection = Enum.FillDirection.Vertical,
                    Padding = UDim.new(0, 16),
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                FriendsMenuSearch = l_React_0.createElement(l_FriendsMenuSearch_0, {
                    layoutOrder = 0,
                    size = UDim2.new(1, 0, 0, 36),
                    focusElement = false
                }),
                SelectedUsersScroller = l_React_0.createElement(l_SelectedUsersScroller_0, {
                    layoutOrder = 1
                })
            }),
            FriendsList = l_React_0.createElement(l_FriendsMenuFriendsList_0, {
                size = UDim2.new(1, 0, 1, (-v2.SQUAD_LOBBY_TITLE_BAR_HEIGHT - v30) - 32),
                layoutOrder = 1,
                parentComponentName = v2.SQUAD_INVITE_PARENT_COMPONENT,
                menuType = if not l_GetFFlagEnableFriendMenuMultiSelect_0() then nil else l_FriendMenuType_0.MultiSelect
            })
        }),
        FriendsListButtonFrame = l_React_0.createElement("Frame", {
            AnchorPoint = Vector2.new(0, 1),
            Position = UDim2.fromScale(0, 1),
            Size = UDim2.new(1, 0, 0, 52),
            BackgroundTransparency = l_Theme_0.BackgroundContrast.Transparency,
            BackgroundColor3 = l_Theme_0.BackgroundContrast.Color,
            BorderSizePixel = 0
        }, {
            Padding = l_React_0.createElement("UIPadding", {
                PaddingRight = UDim.new(0, 12),
                PaddingLeft = UDim.new(0, 12),
                PaddingBottom = UDim.new(0, 8),
                PaddingTop = UDim.new(0, 8)
            }),
            Button = l_React_0.createElement(v23, {
                conversationId = v28
            })
        })
    });
end;


local v0 = require(script:FindFirstAncestor("Squads").dependencies);
local l_Cryo_0 = v0.Cryo;
local l_dependencyArray_0 = v0.Hooks.dependencyArray;
local l_FriendsMenu_0 = v0.FriendsMenu;
local l_React_0 = v0.React;
local l_UIBlox_0 = v0.UIBlox;
local l_useLocalization_0 = v0.Hooks.useLocalization;
local l_Button_0 = l_UIBlox_0.App.Button.Button;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_InviteCallbackContext_0 = l_FriendsMenu_0.InviteCallbackContext;
local l_SelectedUsersContext_0 = l_FriendsMenu_0.SelectedUsersContext;
return function(v11)
    local l_conversationId_0 = v11.conversationId;
    local v13 = l_React_0.useContext(l_SelectedUsersContext_0);
    local v14 = l_React_0.useContext(l_InviteCallbackContext_0);
    return l_React_0.createElement(l_Button_0, {
        onActivated = l_React_0.useCallback(function()
            v14.inviteMultiFriends(l_Cryo_0.Dictionary.keys(v13.selectedFriends), l_conversationId_0);
        end, l_dependencyArray_0(l_conversationId_0, v14.inviteMultiFriends, v13.selectedFriends)),
        buttonType = l_ButtonType_0.PrimarySystem,
        size = UDim2.new(1, 0, 0, 36),
        text = l_useLocalization_0({
            addFriendsText = "Feature.Chat.Label.AddFriends"
        }).addFriendsText
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Squads");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_Roact_0 = v2.Roact;
local l_React_0 = v2.React;
local l_useLocalization_0 = v2.Hooks.useLocalization;
local l_UIBlox_0 = v2.UIBlox;
local l_ExternalContentSharingProtocol_0 = v2.ExternalContentSharingProtocol;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local v11 = require(l_script_FirstAncestor_0.Common.Constants);
local l_isSubjectToDesktopPolicies_0 = require(l_Parent_0.SharedFlags).isSubjectToDesktopPolicies;
local v13 = Vector2.new(28, 28);
return function(v14)
    local v15, v16 = l_React_0.useState(false);
    local v17, v18 = l_React_0.useState(false);
    local v19 = l_useStyle_0();
    local v20 = l_useLocalization_0({
        shareSquadLinkText = "Feature.Squads.Label.ShareInviteLinkWithFriends",
        copiedText = "Feature.SocialShare.Label.Copied"
    });
    return l_Roact_0.createElement("ImageButton", {
        Size = UDim2.new(1, 0, 0, 62),
        Active = not v15 and not v17,
        AutoButtonColor = not v15 and not v17,
        BackgroundColor3 = v19.Theme.BackgroundUIDefault.Color,
        BackgroundTransparency = (v15 or v17) and 0.5 or 0,
        LayoutOrder = v14.layoutOrder,
        [l_Roact_0.Event.Activated] = function()
            v16(true);
            if l_ExternalContentSharingProtocol_0 then
                l_ExternalContentSharingProtocol_0:shareUrl({
                    url = v14.shareLinkUrl,
                    context = ""
                });
                if l_isSubjectToDesktopPolicies_0() then
                    v18(true);
                    delay(1, function()
                        v18(false);
                    end);
                end;
            end;
            v16(false);
        end
    }, {
        UIPadding = l_Roact_0.createElement("UIPadding", {
            PaddingTop = UDim.new(0, 12),
            PaddingRight = UDim.new(0, 12),
            PaddingBottom = UDim.new(0, 12),
            PaddingLeft = UDim.new(0, 12)
        }),
        UIStroke = l_Roact_0.createElement("UIStroke", {
            Color = v19.Theme.Divider.Color,
            Thickness = 1,
            Transparency = 0.8
        }),
        UICorner = l_Roact_0.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        Layout = l_Roact_0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            Padding = UDim.new(0, 12),
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        ShareIcon = l_Roact_0.createElement(l_ImageSetLabel_0, {
            Size = UDim2.fromOffset(v13.X, v13.Y),
            BackgroundTransparency = 1,
            Image = l_Images_0[v11.SHARE_ICON],
            ImageTransparency = (v15 or v17) and 0.5 or 0,
            LayoutOrder = 0
        }),
        TextContainer = l_Roact_0.createElement("Frame", {
            Size = UDim2.fromScale(1, 1),
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }, {
            TextContainerLayout = l_Roact_0.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                Padding = UDim.new(0, 4),
                SortOrder = Enum.SortOrder.LayoutOrder,
                VerticalAlignment = Enum.VerticalAlignment.Center
            }),
            CopiedText = if not v17 then nil else l_Roact_0.createElement("TextLabel", {
                Size = UDim2.new(1, -v13.X - 12, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                Font = v19.Font.Header2.Font,
                Text = v20.copiedText,
                TextColor3 = v19.Theme.TextEmphasis.Color,
                TextSize = 16,
                TextTransparency = 0.5,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            Title = if v17 then nil else l_Roact_0.createElement("TextLabel", {
                Size = UDim2.new(1, -v13.X - 12, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                Font = v19.Font.Header2.Font,
                LayoutOrder = 0,
                Text = v20.shareSquadLinkText,
                TextColor3 = v19.Theme.TextEmphasis.Color,
                TextSize = 16,
                TextTransparency = (v15 or v17) and 0.5 or 0,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left
            }),
            Link = if v17 then nil else l_Roact_0.createElement("TextLabel", {
                Size = UDim2.new(1, -v13.X - 12, 0, 0),
                AutomaticSize = Enum.AutomaticSize.Y,
                BackgroundTransparency = 1,
                Font = v19.Font.CaptionBody.Font,
                LayoutOrder = 1,
                Text = v14.shareLinkUrl,
                TextColor3 = v19.Theme.TextDefault.Color,
                TextSize = 12,
                TextTransparency = (v15 or v17) and 0.5 or 0,
                TextTruncate = Enum.TextTruncate.AtEnd,
                TextXAlignment = Enum.TextXAlignment.Left
            })
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("Squads");
local v1 = require(l_script_FirstAncestor_0.Components.FacePile);
local v2 = require(l_script_FirstAncestor_0.dependencies);
local l_NetworkingSquads_0 = v2.NetworkingSquads;
local l_CentralOverlayType_0 = v2.RobloxAppEnums.CentralOverlayType;
local l_React_0 = v2.React;
local l_SetCentralOverlay_0 = v2.CentralOverlay.Actions.SetCentralOverlay;
local l_UIBlox_0 = v2.UIBlox;
local l_dependencyArray_0 = v2.Hooks.dependencyArray;
local l_useDispatch_0 = v2.Hooks.useDispatch;
local l_useLocalization_0 = v2.Hooks.useLocalization;
local l_useSelector_0 = v2.Hooks.useSelector;
local l_Images_0 = l_UIBlox_0.App.ImageSet.Images;
local l_ImageSetLabel_0 = l_UIBlox_0.Core.ImageSet.ImageSetLabel;
local l_useStyle_0 = l_UIBlox_0.Core.Style.useStyle;
return function(v15)
    local v16 = l_useLocalization_0({
        joinButtonText = "Feature.Squads.Action.Join"
    });
    local v17 = l_useDispatch_0();
    local v18 = l_useStyle_0();
    local v20 = l_useSelector_0((l_React_0.useCallback(function(v19)
        if not v19.Squad or not v19.Squad.Squad then
            return nil;
        else
            return v19.Squad.Squad.currentSquad;
        end;
    end, {})));
    local v21 = l_React_0.useMemo(function()
        return v20 and v20.channelId == v15.conversationId;
    end, l_dependencyArray_0(v20, v15.conversationId));
    local v24 = l_React_0.useMemo(function()
        if not v20 then
            return {};
        else
            local v22 = {};
            for v23 = 1, math.min(#v20.members, 2) do
                table.insert(v22, (tostring(v20.members[v23].userId)));
            end;
            return v22;
        end;
    end, {
        v20
    });
    return l_React_0.createElement("TextButton", {
        AutomaticSize = Enum.AutomaticSize.X,
        Size = UDim2.fromOffset(0, 32),
        BackgroundColor3 = if not v21 then Color3.fromRGB(208, 217, 251) else Color3.fromRGB(247, 247, 248),
        BackgroundTransparency = not v21 and 0.92 or 0,
        Text = "",
        [l_React_0.Event.Activated] = l_React_0.useCallback(function()
            if v21 or not v20 then
                v15.onActivated();
                return ;
            else
                v17(l_SetCentralOverlay_0(l_CentralOverlayType_0.SquadLeavePrompt, {
                    isJoiningSquad = true,
                    onLeave = function()
                        v17(l_NetworkingSquads_0.LeaveSquad.API({
                            squadId = v20.squadId
                        }));
                        v15.onActivated();
                    end
                }));
                return ;
            end;
        end, l_dependencyArray_0(v20, v21, v15.onActivated))
    }, {
        UICorner = l_React_0.createElement("UICorner", {
            CornerRadius = UDim.new(0, 8)
        }),
        UIListLayout = l_React_0.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Horizontal,
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        UIPadding = l_React_0.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, 4),
            PaddingRight = UDim.new(0, 12)
        }),
        GroupIcon = l_React_0.createElement(l_ImageSetLabel_0, {
            Size = UDim2.fromOffset(28, 28),
            BackgroundTransparency = 1,
            Image = l_Images_0["icons/menu/groups"],
            ImageColor3 = if not v21 then Color3.fromRGB(255, 255, 255) else Color3.fromRGB(39, 41, 48),
            LayoutOrder = 1
        }),
        JoinTextLabel = if v21 then nil else l_React_0.createElement("TextLabel", {
            AutomaticSize = Enum.AutomaticSize.XY,
            Size = UDim2.fromOffset(0, 0),
            BackgroundTransparency = 1,
            Font = v18.Font.CaptionHeader.Font,
            LayoutOrder = 2,
            Text = v16.joinButtonText,
            TextColor3 = Color3.fromRGB(247, 247, 248),
            TextSize = v18.Font.CaptionHeader.RelativeSize * v18.Font.BaseSize,
            TextTransparency = 0,
            TextWrapped = false
        }),
        FacePile = if not v21 then nil else l_React_0.createElement(v1, {
            avatarSize = 24,
            faceCount = #v24,
            facePileWidth = UDim.new(0, (l_React_0.useMemo(function()
                return 24 * #v24 - 10 * (#v24 - 1);
            end, {
                v24
            }))),
            layoutOrder = 2,
            overlapOffset = 10,
            reverse = true,
            users = v24
        })
    });
end;


local v0 = require(script:FindFirstAncestor("Squads").dependencies);
local l_CloseCentralOverlay_0 = v0.CentralOverlay.Thunks.CloseCentralOverlay;
local l_React_0 = v0.React;
local l_RobloxAppHooks_0 = v0.RobloxAppHooks;
local l_UIBlox_0 = v0.UIBlox;
local l_useDispatch_0 = v0.Hooks.useDispatch;
local l_useLocalization_0 = v0.Hooks.useLocalization;
local l_useScreenSize_0 = l_RobloxAppHooks_0.useScreenSize;
local l_ButtonType_0 = l_UIBlox_0.App.Button.Enum.ButtonType;
local l_InteractiveAlert_0 = l_UIBlox_0.App.Dialog.Alert.InteractiveAlert;
return function(v10)
    local v11 = l_useLocalization_0({
        cancelButtonText = "CommonUI.Controls.Action.Cancel",
        leaveButtonText = "Feature.Squads.Action.Leave"
    });
    local v12 = l_useDispatch_0();
    return l_React_0.createElement(l_InteractiveAlert_0, {
        screenSize = l_useScreenSize_0(),
        title = "Leave party?",
        bodyText = not v10.isJoiningSquad and "You are currently in a live party. Would you like to leave it?" or "You are currently in a live party. Do you want to join another party?",
        buttonStackInfo = {
            buttons = {
                {
                    props = {
                        onActivated = l_React_0.useCallback(function()
                            v12(l_CloseCentralOverlay_0());
                        end, {
                            v12
                        }),
                        text = v11.cancelButtonText
                    }
                },
                {
                    buttonType = l_ButtonType_0.PrimarySystem,
                    props = {
                        onActivated = l_React_0.useCallback(function()
                            v12(l_CloseCentralOverlay_0());
                            v10.onLeave();
                        end, {
                            v10.onLeave
                        }),
                        text = v11.leaveButtonText
                    }
                }
            }
        }
    });
end;