local l_TextService_0 = game:GetService("TextService");
local v1 = require(script:FindFirstAncestor("AppChat").Parent.Roact);
local v2 = v1.PureComponent:extend("NoticeText");
v2.defaultProps = {
    AnchorPoint = Vector2.new(0, 0),
    Font = Enum.Font.Gotham,
    HorizontalAlignment = Enum.HorizontalAlignment.Left,
    LayoutOrder = 1,
    Position = UDim2.new(0, 0, 0, 0),
    Text = "PLACEHOLDER Not everyone in this chat can see your message.",
    TextColor3 = nil,
    TextSize = 17,
    TextTransparency = nil,
    TextWrapped = true,
    TextXAlignment = Enum.TextXAlignment.Left,
    TextYAlignment = Enum.TextYAlignment.Top,
    [v1.Change.AbsoluteSize] = function()
    end,
    margin = {
        top = 0,
        left = 0,
        right = 0,
        bottom = 0
    },
    maxWidth = 0,
    width = UDim.new(1, 0)
};
v2.render = function(v3)
    local v4 = math.max(0, v3.props.maxWidth - (v3.props.margin.left + v3.props.margin.right));
    local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(v3.props.Text, v3.props.TextSize, v3.props.Font, (Vector2.new(v4, math.huge)));
    return v1.createElement("Frame", {
        AnchorPoint = v3.props.AnchorPoint,
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        LayoutOrder = v3.props.LayoutOrder,
        Position = v3.props.Position,
        [v1.Change.AbsoluteSize] = v3.props[v1.Change.AbsoluteSize],
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.new(v3.props.width, UDim.new(0, 0))
    }, {
        Layout = v1.createElement("UIListLayout", {
            HorizontalAlignment = v3.props.HorizontalAlignment
        }),
        Padding = v1.createElement("UIPadding", {
            PaddingBottom = UDim.new(0, v3.props.margin.bottom),
            PaddingRight = UDim.new(0, v3.props.margin.right),
            PaddingLeft = UDim.new(0, v3.props.margin.left),
            PaddingTop = UDim.new(0, v3.props.margin.top)
        }),
        NoticeText = v1.createElement("TextLabel", {
            AutomaticSize = Enum.AutomaticSize.XY,
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            Font = v3.props.Font,
            Text = v3.props.Text,
            TextColor3 = v3.props.TextColor3,
            TextSize = v3.props.TextSize,
            TextTransparency = v3.props.TextTransparency,
            TextWrapped = v3.props.TextWrapped,
            TextXAlignment = v3.props.TextXAlignment,
            TextYAlignment = v3.props.TextYAlignment,
            Size = UDim2.fromOffset(math.ceil(l_l_TextService_0_TextSize_0.X), (math.ceil(l_l_TextService_0_TextSize_0.Y)))
        }, {
            SizeConstraint = v1.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(v4, math.huge)
            })
        })
    });
end;
return v2;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_script_FirstAncestor_0.types);
local v3 = require(l_Parent_0.AppChatNetworking);
local v4 = require(l_Parent_0.Cryo);
local v5 = require(l_Parent_0.React);
local v6 = require(l_script_FirstAncestor_0.LuaAppNavigationContext);
local l_dependencyArray_0 = require(l_Parent_0.RoactUtils).Hooks.dependencyArray;
local l_memo_0 = v5.memo;
local l_useCallback_0 = v5.useCallback;
local l_useContext_0 = v5.useContext;
local l_useDispatch_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useLocalUserId_0 = require(l_Parent_0.RobloxAppHooks).useLocalUserId;
local l_useState_0 = v5.useState;
local v14 = require(script.Parent.PendingStateModal);
local v15 = {
    conversationId = nil,
    showNetworkErrorToast = function()
    end,
    onHeightChanged = function()
    end,
    bodyKey = "Feature.Chat.Action.Hello",
    acceptKey = "Feature.Chat.Label.SeeMore",
    denyKey = "Feature.Chat.Action.Leave"
};
IneligibleModalContainer = function(v16)
    local v17 = v4.Dictionary.join(v15, v16);
    local v18, v19 = l_useState_0(false);
    local v20 = l_useLocalUserId_0();
    local v21 = l_useContext_0(v6);
    local v22 = l_useDispatch_0();
    local v25 = l_useCallback_0(function(v23, v24)
        return v22(v3.rodux.RemoveUserFromConversation.API(v24, v23));
    end, l_dependencyArray_0(v22));
    local v26 = l_useCallback_0(function()
        v21.navigateToUnfilteredThreadsLearnMore();
    end, l_dependencyArray_0(v21));
    local v27 = l_useCallback_0(function()
        v19(true);
        v25(v20, v17.conversationId):catch(function()
            v17.showNetworkErrorToast();
        end):finally(function()
            v19(false);
        end);
    end, l_dependencyArray_0(v20, v17.conversationId));
    local v28 = {
        bodyText = "This is an upgraded conversation, which allows members to chat openly without filters. Your account is currently unable to join.",
        acceptText = "Learn more",
        denyText = "Leave group"
    };
    return v5.createElement(v14, {
        bodyText = v28.bodyText,
        acceptText = v28.acceptText,
        denyText = v28.denyText,
        layoutOrder = v17.layoutOrder,
        onAccepted = v26,
        onDenied = v27,
        loading = v18,
        onHeightChanged = v17.onHeightChanged
    });
end;
return l_memo_0(IneligibleModalContainer);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_script_FirstAncestor_0.types);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local l_dependencyArray_0 = require(l_Parent_0.RoactUtils).Hooks.dependencyArray;
local l_memo_0 = v4.memo;
local l_useCallback_0 = v4.useCallback;
local l_useState_0 = v4.useState;
local l_useStyle_0 = require(l_Parent_0.UIBlox).Core.Style.useStyle;
local v10 = require(script.Parent.PendingStateIndicator);
local v11 = require(script.Parent.PhoneVerificationUpsellContainer);
local v12 = require(script.Parent.IneligibleModalContainer);
local v14 = {
    topBarHeight = 0,
    networkErrorText = "PLACEHOLDER There was a network error, please try again later",
    pendingStateBodyText = "Upgraded conversation",
    navigateToToast = function(_)
    end,
    shouldShowPhoneVerificationUpsell = false,
    shouldShowIneligibleModal = false
};
return l_memo_0(function(v15)
    local v16 = v3.Dictionary.join(v14, v15);
    local v17 = v16.style or l_useStyle_0();
    local v18, v19 = l_useState_0(0);
    return v4.createElement("Frame", {
        BackgroundColor3 = v17.Theme.BackgroundDefault.Color,
        BorderSizePixel = 0,
        Size = UDim2.new(1, 0, 1, -v16.topBarHeight),
        Transparency = v17.Theme.BackgroundDefault.Transparency,
        LayoutOrder = v16.layoutOrder
    }, {
        UIListLayout = v4.createElement("UIListLayout", {
            HorizontalAlignment = Enum.HorizontalAlignment.Right,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        PendingStateIndicator = v4.createElement(v10, {
            layoutOrder = 1,
            size = UDim2.new(1, 0, 1, -v18),
            bodyText = v16.pendingStateBodyText
        }),
        PendingStateModal = v4.createElement(if not v16.shouldShowPhoneVerificationUpsell then if v16.shouldShowIneligibleModal then v12 else function()
        end else v11, {
            conversationId = v16.conversationId,
            showNetworkErrorToast = l_useCallback_0(function()
                v16.navigateToToast({
                    toastProps = {
                        toastContent = {
                            toastTitle = v16.networkErrorText
                        }
                    }
                });
            end, l_dependencyArray_0(v16.navigateToToast, v16.networkErrorText)),
            layoutOrder = 2,
            onHeightChanged = l_useCallback_0(function(v20)
                v19(v20);
            end, l_dependencyArray_0(v19))
        })
    });
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_script_FirstAncestor_0.types);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local l_memo_0 = v4.memo;
local v6 = require(l_Parent_0.UIBlox);
local l_useStyle_0 = v6.Core.Style.useStyle;
local l_Images_0 = v6.App.ImageSet.Images;
local l_ImageSetLabel_0 = v6.Core.ImageSet.ImageSetLabel;
local v10 = {
    bodyText = "Placeholder body",
    iconImage = l_Images_0["icons/status/oof_xlarge"],
    size = UDim2.new(1, 0, 1, 0)
};
return l_memo_0(function(v11)
    local v12 = v3.Dictionary.join(v10, v11);
    local v13 = v12.style or l_useStyle_0();
    local l_Size_1200_0 = v13.Tokens.Global.Size_1200;
    return v4.createElement("Frame", {
        BackgroundColor3 = v13.Theme.BackgroundDefault.Color,
        BorderSizePixel = 0,
        Size = v12.size,
        Transparency = v13.Theme.BackgroundDefault.Transparency,
        LayoutOrder = v12.layoutOrder
    }, {
        UIListLayout = v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            Padding = UDim.new(0, v13.Tokens.Global.Space_150),
            SortOrder = Enum.SortOrder.LayoutOrder,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            VerticalAlignment = Enum.VerticalAlignment.Center
        }),
        IconAndTextFrame = v4.createElement("Frame", {
            BackgroundTransparency = 1,
            Size = UDim2.new(0, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.XY
        }, {
            UIListLayout = v4.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Vertical,
                Padding = UDim.new(0, v13.Tokens.Global.Space_150),
                SortOrder = Enum.SortOrder.LayoutOrder,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            OofIcon = v4.createElement(l_ImageSetLabel_0, {
                BackgroundTransparency = 1,
                Image = v12.iconImage,
                ImageColor3 = v13.Theme.IconDefault.Color,
                ImageTransparency = v13.Theme.IconDefault.Transparency,
                Size = UDim2.new(0, l_Size_1200_0, 0, l_Size_1200_0)
            }),
            BodyText = v4.createElement("TextLabel", {
                BackgroundTransparency = 1,
                Font = v13.Font.Body.Font,
                LayoutOrder = 2,
                Size = UDim2.new(1, 0, 0, 0),
                Text = v12.bodyText,
                TextSize = v13.Font.Body.RelativeSize * v13.Font.BaseSize,
                TextColor3 = v13.Theme.TextDefault.Color,
                TextXAlignment = Enum.TextXAlignment.Center,
                TextYAlignment = Enum.TextYAlignment.Top,
                TextWrapped = true,
                AutomaticSize = Enum.AutomaticSize.Y
            })
        })
    });
end);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_script_FirstAncestor_0.types);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local v5 = require(l_Parent_0.UIBlox);
local l_useStyle_0 = v5.Core.Style.useStyle;
local l_ButtonStack_0 = v5.App.Button.ButtonStack;
local l_Enum_0 = v5.App.Button.Enum;
local l_useEffect_0 = v4.useEffect;
local v11 = {
    bodyText = "Placeholder body",
    denyText = "TempDeny",
    acceptText = "TempAccept",
    onHeightChanged = function(_)
    end,
    onAccepted = nil,
    onDenied = nil
};
return function(v12)
    local v13 = v3.Dictionary.join(v11, v12);
    local v14 = v13.style or l_useStyle_0();
    local l_Space_100_0 = v14.Tokens.Global.Space_100;
    local l_Size_500_0 = v14.Tokens.Global.Size_500;
    l_useEffect_0(function()
        return function()
            v13.onHeightChanged(0);
        end;
    end, {});
    return v4.createElement("Frame", {
        BackgroundTransparency = v14.Theme.SystemPrimaryContent.Transparency,
        BackgroundColor3 = v14.Theme.SystemPrimaryContent.Color,
        BorderSizePixel = 0,
        LayoutOrder = v13.layoutOrder,
        Size = UDim2.new(1, 0, 0, 0),
        AutomaticSize = Enum.AutomaticSize.Y,
        [v4.Change.AbsoluteSize] = function(v17)
            v13.onHeightChanged(v17.AbsoluteSize.Y);
        end
    }, {
        ContentPadding = v4.createElement("UIPadding", {
            PaddingTop = UDim.new(0, l_Space_100_0),
            PaddingBottom = UDim.new(0, l_Space_100_0),
            PaddingLeft = UDim.new(0, l_Space_100_0),
            PaddingRight = UDim.new(0, l_Space_100_0)
        }),
        UIListLayout = v4.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            Padding = UDim.new(0, l_Space_100_0),
            SortOrder = Enum.SortOrder.LayoutOrder,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }),
        Body = v4.createElement("TextLabel", {
            BackgroundTransparency = 1,
            TextSize = v14.Font.Body.RelativeSize * v14.Font.BaseSize,
            Font = v14.Font.Body.Font,
            LayoutOrder = 1,
            Size = UDim2.new(1, 0, 0, 0),
            AutomaticSize = Enum.AutomaticSize.Y,
            Text = v13.bodyText,
            TextWrapped = true,
            TextColor3 = v14.Theme.TextDefault.Color,
            TextXAlignment = Enum.TextXAlignment.Left,
            TextYAlignment = Enum.TextYAlignment.Center
        }),
        Buttons = v4.createElement("Frame", {
            BackgroundTransparency = 1,
            LayoutOrder = 2,
            Size = UDim2.new(1, 0, 0, l_Size_500_0)
        }, {
            ButtonStack = v4.createElement(l_ButtonStack_0, {
                forcedFillDirection = Enum.FillDirection.Horizontal,
                buttons = {
                    {
                        buttonType = l_Enum_0.ButtonType.Secondary,
                        props = {
                            onActivated = v13.onDenied,
                            text = v13.denyText,
                            isDisabled = v13.loading
                        }
                    },
                    {
                        buttonType = l_Enum_0.ButtonType.PrimarySystem,
                        props = {
                            onActivated = v13.onAccepted,
                            text = v13.acceptText,
                            isDisabled = v13.loading
                        }
                    }
                }
            })
        })
    });
end;


local l_TextService_0 = game:GetService("TextService");
local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v3 = require(script.Parent.ChatBubbleContainerAutomaticSize);
local v4 = require(l_Parent_0.React);
local l_useStyle_0 = require(l_Parent_0.UIBlox).Core.Style.useStyle;
local v6 = require(l_Parent_0.Cryo);
local v7 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableUnfilteredThreadsUI);
local v8 = {
    text = "",
    maxWidth = 0,
    innerPadding = 0,
    isIncoming = false,
    hasTail = false,
    LayoutOrder = 0,
    isPending = false,
    isUnfiltered = false,
    [v4.Change.AbsoluteSize] = function()
    end
};
PlainText = function(v9)
    local v10 = v6.Dictionary.join(v8, v9);
    local v11 = l_useStyle_0();
    local l_maxWidth_0 = v10.maxWidth;
    local l_innerPadding_0 = v10.innerPadding;
    local v14 = math.max(0, l_maxWidth_0 - l_innerPadding_0);
    local l_Body_0 = v11.Font.Body;
    local v16 = v10.textSize or v11.Font.BaseSize * l_Body_0.RelativeSize;
    local l_text_0 = v10.text;
    local v18 = v10.font or l_Body_0.Font;
    local l_l_TextService_0_TextSize_0 = l_TextService_0:GetTextSize(l_text_0, v16, v18, (Vector2.new(v14, math.huge)));
    return v4.createElement(v3, {
        isIncoming = v10.isIncoming,
        hasTail = v10.hasTail,
        isPending = v10.isPending,
        isUnfiltered = v10.isUnfiltered,
        padding = l_innerPadding_0,
        LayoutOrder = v10.LayoutOrder,
        [v4.Change.AbsoluteSize] = v10[v4.Change.AbsoluteSize]
    }, {
        textContent = v4.createElement("TextLabel", {
            Text = l_text_0,
            TextXAlignment = Enum.TextXAlignment.Left,
            BackgroundTransparency = 1,
            TextColor3 = if not (((v7() and v10.isUnfiltered) and not v10.isIncoming) and not v10.isPending) then v11.Theme.TextEmphasis.Color else Color3.new(1, 1, 1),
            AutomaticSize = Enum.AutomaticSize.XY,
            Font = v18,
            TextSize = v16,
            Size = UDim2.fromOffset(math.ceil(l_l_TextService_0_TextSize_0.X), (math.ceil(l_l_TextService_0_TextSize_0.Y))),
            TextTransparency = not not v10.isPending and v11.Theme.TextMuted.Transparency or 0,
            TextYAlignment = Enum.TextYAlignment.Top,
            TextWrapped = true
        }, {
            SizeConstraint = v4.createElement("UISizeConstraint", {
                MaxSize = Vector2.new(v14 or l_maxWidth_0, math.huge)
            })
        })
    });
end;
return PlainText;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local l_Colors_0 = require(l_Parent_0.Style).Colors;
local v5 = require(script.Parent.ReactionMap);
local v6 = require(script.Parent.ReactionList);
local l_White_0 = l_Colors_0.White;
local l_ArialBold_0 = Enum.Font.ArialBold;
return function(v9)
    local v10 = {};
    local v11 = {};
    if v9.emoji == "All" then
        local v12 = 1;
        for v13 in v6, nil, nil do
            if v9.reactionData[v6[v13]] ~= nil then
                for v14 in v9.reactionData[v6[v13]], nil, nil do
                    v11[v12] = {
                        v9.reactionData[v6[v13]][v14],
                        v6[v13]
                    };
                    v12 = v12 + 1;
                end;
            end;
        end;
    else
        local v15 = 1;
        for v16 in v9.reactionData[v9.emoji], nil, nil do
            v11[v15] = {
                v9.reactionData[v9.emoji][v16],
                v9.emoji
            };
            v15 = v15 + 1;
        end;
    end;
    v10 = v2.useMemo(function()
        return v3.List.map(v11, function(v17, _)
            return v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 36),
                BorderSizePixel = 0,
                BackgroundTransparency = 1
            }, {
                padding = v1.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 25),
                    PaddingRight = UDim.new(0, 25)
                }),
                profilePic = v1.createElement("ImageLabel", {
                    Size = UDim2.new(0, 36, 0, 36),
                    BorderSizePixel = 0,
                    Image = "rbxthumb://type=AvatarHeadShot&id=505306092&w=150&h=150&filters=circular",
                    BackgroundTransparency = 1,
                    ScaleType = Enum.ScaleType.Fit
                }),
                userInfo = v1.createElement("TextLabel", {
                    Size = UDim2.new(0.5, 0, 0, 36),
                    BorderSizePixel = 0,
                    TextColor3 = l_White_0,
                    TextSize = 15,
                    Text = v17[1],
                    Font = l_ArialBold_0,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    BackgroundTransparency = 1,
                    Position = UDim2.new(0, 56, 0, 0)
                }),
                emoji = v1.createElement("ImageLabel", {
                    Size = UDim2.new(0, 25, 0, 25),
                    BorderSizePixel = 0,
                    Image = v5[v17[2]],
                    BackgroundTransparency = 1,
                    ScaleType = Enum.ScaleType.Fit,
                    Position = UDim2.new(1, -25, 0.5, -12.5)
                })
            });
        end);
    end, {
        v9.reactionData,
        v9.emoji
    });
    return v1.createElement("ScrollingFrame", {
        Size = UDim2.new(1, 0, 0, 285),
        BorderSizePixel = 0,
        BackgroundTransparency = 1,
        ScrollBarThickness = 0,
        CanvasSize = UDim2.new(0, 0, 0, (53 * #v10 - 17) + 5),
        LayoutOrder = v9.LayoutOrder
    }, {
        layout = v1.createElement("UIListLayout", {
            Padding = UDim.new(0, 17)
        })
    }, v10);
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(script.Parent.ReactionMap);
local v5 = require(script.Parent.ReactionList);
local l_ArialBold_0 = Enum.Font.ArialBold;
local v7 = Color3.new(1, 1, 1);
local v8 = Color3.fromRGB(100, 102, 104);
return function(v9)
    local v10 = 0;
    local v11 = false;
    local v12 = 0;
    for _, v14 in v9.reactionData, nil, nil do
        if #v14 >= 2 then
            v11 = true;
        end;
        v10 = v10 + #v14;
        v12 = v12 + 1;
    end;
    if v12 > 3 then
        v11 = true;
    end;
    return {
        reactionCounter = v1.createElement("TextButton", {
            AutomaticSize = Enum.AutomaticSize.XY,
            BorderSizePixel = 0,
            Text = "",
            [v1.Event.Activated] = v9.onPressed,
            BackgroundColor3 = v8
        }, {
            corner = v1.createElement("UICorner", {
                CornerRadius = UDim.new(1, 0)
            }),
            padding = v1.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, 5),
                PaddingTop = UDim.new(0, 5),
                PaddingRight = UDim.new(0, 7),
                PaddingLeft = UDim.new(0, 7)
            }),
            layout = v1.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                Padding = UDim.new(0, 4)
            })
        }, v2.useMemo(function()
            local v15 = 1;
            local v16 = {};
            for v17 in v5, nil, nil do
                if v15 < 4 then
                    if v9.reactionData[v5[v17]] ~= nil then
                        v16[v15] = v5[v17];
                        v15 = v15 + 1;
                    end;
                else
                    break;
                end;
            end;
            return v3.List.map(v16, function(v18, v19)
                return v1.createElement("ImageLabel", {
                    Image = v4[v18],
                    Size = UDim2.new(0, 20, 0, 20),
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1,
                    ScaleType = Enum.ScaleType.Fit,
                    Name = "ShowReaction" .. v19
                });
            end);
        end, {}), {
            reactionCount = v11 and v1.createElement("TextLabel", {
                Size = UDim2.new(0, v10 >= 10 and 15 or 10, 0, 20),
                Text = v10,
                TextSize = 17,
                TextColor3 = v7,
                Font = l_ArialBold_0,
                BorderSizePixel = 0,
                BackgroundTransparency = 1
            })
        })
    };
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.React);
local l_Colors_0 = require(l_Parent_0.Style).Colors;
local v4 = require(script.Parent.DetailList);
local l_White_0 = l_Colors_0.White;
local l_Flint_0 = l_Colors_0.Flint;
local l_ArialBold_0 = Enum.Font.ArialBold;
return function(v8)
    return {
        ReactionDetail = v1.createElement("Frame", {
            Size = UDim2.new(0, 300, 0, 375),
            BackgroundColor3 = l_Flint_0
        }, {
            corner = v1.createElement("UICorner", {
                CornerRadius = UDim.new(0.05, 0)
            }),
            layout = v1.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder
            })
        }, {
            header = v1.createElement("TextLabel", {
                Text = "Reactions",
                TextSize = 20,
                TextColor3 = l_White_0,
                Font = l_ArialBold_0,
                Size = UDim2.new(1, 0, 0, 40),
                BorderSizePixel = 0,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }),
            bar = v1.createElement("Frame", {
                Size = UDim2.fromScale(1, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = 2
            }, {
                v1.createElement("Frame", {
                    Size = UDim2.new(0.97, 0, 0, 0),
                    BackgroundColor3 = l_Colors_0.White,
                    BorderColor3 = l_Colors_0.White,
                    Position = UDim2.new(0.015, 0, 0, 0)
                })
            }),
            padding = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 10),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = 3
            }),
            detailList = v1.createElement(v4, {
                emoji = v2.useState("All"),
                reactionData = v8.reactionData,
                LayoutOrder = 4
            })
        })
    };
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local l_Colors_0 = require(l_Parent_0.Style).Colors;
local v5 = require(script.Parent.ReactionMap);
local v6 = require(script.Parent.ReactionList);
local v7 = require(script.Parent.DetailList);
local l_White_0 = l_Colors_0.White;
local l_Flint_0 = l_Colors_0.Flint;
local l_ArialBold_0 = Enum.Font.ArialBold;
local function v20(v11)
    local v12 = {};
    local v13 = 0;
    local v14 = 1;
    for _, v16 in v11.reactionData, nil, nil do
        v13 = v13 + #v16;
    end;
    for v17 in v6, nil, nil do
        if v11.reactionData[v6[v17]] ~= nil then
            v12[v14] = v6[v17];
            v14 = v14 + 1;
        end;
    end;
    return v1.createElement("Frame", {
        Size = UDim2.new(1, 0, 0, 80),
        BackgroundTransparency = 1,
        LayoutOrder = v11.LayoutOrder
    }, {
        verticalLayout = v1.createElement("UIListLayout", {
            SortOrder = Enum.SortOrder.LayoutOrder
        })
    }, {
        header = v1.createElement("TextLabel", {
            Text = "Reactions",
            TextSize = 20,
            TextColor3 = l_White_0,
            Font = l_ArialBold_0,
            Size = UDim2.fromScale(1, 0.5),
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            LayoutOrder = 1
        }),
        scroller = v1.createElement("ScrollingFrame", {
            BorderSizePixel = 0,
            BackgroundTransparency = 1,
            Size = UDim2.fromScale(1, 0.5),
            ScrollBarThickness = 5,
            CanvasSize = UDim2.new(0, 54 * (#v12 + 1) + 10, 0, 0),
            LayoutOrder = 2
        }, {
            horizontalLayout = v1.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder
            })
        }, {
            padding = v1.createElement("Frame", {
                Size = UDim2.new(0, 5, 0, 5),
                BorderSizePixel = 0,
                BackgroundTransparency = 1,
                LayoutOrder = 1
            }),
            allFilter = v1.createElement("TextButton", {
                Size = UDim2.new(0, 54, 0, 28),
                BackgroundColor3 = l_Flint_0,
                BorderSizePixel = 0,
                Text = "All  " .. v13,
                Font = l_ArialBold_0,
                TextColor3 = l_White_0,
                TextSize = 15,
                TextWrapped = true,
                LayoutOrder = 2,
                [v2.Event.Activated] = function()
                    v11.setEmoji("All");
                end
            }, {
                corner = v1.createElement("UICorner", {
                    CornerRadius = UDim.new(0.4, 0)
                })
            })
        }, (v2.useMemo(function()
            return v3.List.map(v12, function(v18, v19)
                return v1.createElement("TextButton", {
                    Size = UDim2.new(0, 54, 0, 28),
                    BackgroundColor3 = l_Flint_0,
                    BorderSizePixel = 0,
                    Text = "",
                    LayoutOrder = v19 + 2,
                    [v2.Event.Activated] = function()
                        v11.setEmoji(v18);
                    end
                }, {
                    corner = v1.createElement("UICorner", {
                        CornerRadius = UDim.new(0.4, 0)
                    }),
                    emoji = v1.createElement("ImageLabel", {
                        Size = UDim2.new(0, 18, 0, 18),
                        Position = UDim2.new(0.16, 0, 0.5, -9),
                        BackgroundTransparency = 1,
                        Image = v5[v18]
                    }),
                    count = v1.createElement("TextLabel", {
                        Size = UDim2.new(0.5, 0, 1, 0),
                        Position = UDim2.new(0.5, 0, 0, 0),
                        BackgroundTransparency = 1,
                        Name = v18 .. "Filter",
                        Text = #v11.reactionData[v18],
                        Font = l_ArialBold_0,
                        TextColor3 = l_White_0,
                        TextSize = 15,
                        TextWrapped = true
                    })
                });
            end);
        end, {
            v12
        })))
    });
end;
return function(v21)
    local v22, v23 = v2.useState("All");
    return {
        ReactionDetail = v1.createElement("Frame", {
            Size = UDim2.new(0, 300, 0, 375),
            BackgroundColor3 = l_Flint_0
        }, {
            corner = v1.createElement("UICorner", {
                CornerRadius = UDim.new(0.05, 0)
            }),
            layout = v1.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder
            })
        }, {
            navigator = v1.createElement(v20, {
                setEmoji = v23,
                reactionData = v21.reactionData,
                LayoutOrder = 1
            }),
            bar = v1.createElement("Frame", {
                Size = UDim2.fromScale(1, 0),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = 2
            }, {
                v1.createElement("Frame", {
                    Size = UDim2.new(0.97, 0, 0, 0),
                    BackgroundColor3 = l_Colors_0.White,
                    BorderColor3 = l_Colors_0.White,
                    Position = UDim2.new(0.015, 0, 0, 0)
                })
            }),
            padding = v1.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, 10),
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                LayoutOrder = 3
            }),
            detailList = v1.createElement(v7, {
                emoji = v22,
                reactionData = v21.reactionData,
                LayoutOrder = 4
            })
        })
    };
end;


return {
    "Roblox_Love",
    "Roblox_Like",
    "Roblox_Laugh",
    "Roblox_Question",
    "Roblox_Sad",
    "Roblox_Angry"
};


return {
    Roblox_Sad = "rbxasset://Reactions/Emojis/roblox-sad.png",
    Roblox_Laugh = "rbxasset://Reactions/Emojis/roblox-laugh.png",
    Roblox_Like = "rbxasset://Reactions/Emojis/roblox-like.png",
    Roblox_Love = "rbxasset://Reactions/Emojis/roblox-love.png",
    Roblox_Angry = "rbxasset://Reactions/Emojis/roblox-angry.png",
    Roblox_Question = "rbxasset://Reactions/Emojis/roblox-question.png"
};


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local v2 = require(l_Parent_0.React);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(script.Parent.ReactionMap);
local v5 = require(script.Parent.ReactionList);
local v6 = Color3.fromRGB(57, 59, 61);
local v7 = Color3.fromRGB(100, 102, 104);
return function(v8)
    if v8.numReactionsToShow == nil then
        v8.numReactionsToShow = 6;
    end;
    if not (v8.numReactionsToShow <= 6) or v8.numReactionsToShow < 0 then
        error("Invalid number of reactions");
    end;
    return {
        ReactionPicker = v1.createElement("Frame", {
            AutomaticSize = Enum.AutomaticSize.XY,
            BorderSizePixel = 0,
            BackgroundColor3 = v7
        }, {
            corner = v1.createElement("UICorner", {
                CornerRadius = UDim.new(1, 0)
            }),
            padding = v1.createElement("UIPadding", {
                PaddingBottom = UDim.new(0, 10),
                PaddingTop = UDim.new(0, 10),
                PaddingRight = UDim.new(0, 19.5),
                PaddingLeft = UDim.new(0, 19.5)
            }),
            layout = v1.createElement("UIListLayout", {
                FillDirection = Enum.FillDirection.Horizontal,
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                VerticalAlignment = Enum.VerticalAlignment.Center,
                Padding = UDim.new(0, 11)
            })
        }, (v2.useMemo(function()
            local v9 = {};
            for v10 in v5, nil, nil do
                if v8.numReactionsToShow >= v10 then
                    v9[v10] = v5[v10];
                else
                    break;
                end;
            end;
            return v3.List.map(v9, function(v11, _)
                return v1.createElement("Frame", {
                    Size = UDim2.new(0, 40, 0, 40),
                    BorderSizePixel = 0,
                    BackgroundTransparency = 1
                }, {
                    imageButton = v1.createElement("ImageButton", {
                        Image = v4[v11],
                        Name = v11 .. "_Button",
                        Size = UDim2.new(0, 40, 0, 40),
                        BorderSizePixel = 0,
                        BackgroundTransparency = 1,
                        ScaleType = Enum.ScaleType.Fit,
                        [v2.Event.Activated] = function()
                            v8.onReactionSelected(v11);
                        end
                    }),
                    indicator = v1.createElement("Frame", {
                        Size = UDim2.new(0, 6, 0, 6),
                        Position = UDim2.new(0.5, -3, 1, 2),
                        BackgroundColor3 = v6,
                        BackgroundTransparency = v11 == v8.selectedReactionType and 0 or 1,
                        Name = v11 .. "_Indicator"
                    }, {
                        corner = v1.createElement("UICorner", {
                            CornerRadius = UDim.new(1, 0)
                        })
                    })
                });
            end);
        end, {
            v4,
            v8.selectedReactionType
        })))
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local v1 = require(l_script_FirstAncestor_0.Parent.Roact);
local v2 = require(l_script_FirstAncestor_0.Components.ChatConversation.ChatConversation);
local v3 = v1.PureComponent:extend("Story");
local v4 = require(l_script_FirstAncestor_0.Tests.Utils.createMockMessages);
v3.init = function(v5)
    v5.conversation1 = {
        id = "CONVERSATION_ONE",
        itemList = v4({
            messageIdPrefix = "CONVERSATION_ONE",
            read = true
        }, 50)
    };
    v5.conversation2 = {
        id = "CONVERSATION_TWO",
        itemList = v4({
            messageIdPrefix = "CONVERSATION_TWO",
            read = true
        }, 40)
    };
    v5.switchConversations = function()
        v5:setState({
            conversation = v5.state.conversation.id == "CONVERSATION_ONE" and v5.conversation2 or v5.conversation1
        });
    end;
    v5.switchUnreadStatus = function()
        v5:setState({
            readingMessagesIsEnabled = not v5.state.readingMessagesIsEnabled
        });
    end;
    v5.state = {
        conversation = v5.conversation1,
        readingMessagesIsEnabled = v5.props.initialReadingMessagesIsEnabled
    };
end;
v3.render = function(v6)
    return v1.createFragment({
        layout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            VerticalAlignment = Enum.VerticalAlignment.Top
        }),
        chatConversation = v1.createElement(v2, {
            itemList = v6.state.conversation.itemList,
            conversationId = v6.state.conversation.id,
            markConversationAsRead = v6.props.markConversationAsRead or function()
            end,
            readingMessagesIsEnabled = v6.state.readingMessagesIsEnabled
        }),
        switchConversationButton = v1.createElement("TextButton", {
            Size = UDim2.new(0, 120, 0, 50),
            Text = "Switch Conversations",
            [v1.Event.Activated] = v6.switchConversations
        }),
        toggleReadState = v1.createElement("TextButton", {
            Size = UDim2.new(0, 120, 0, 50),
            Text = "Toggle UnreadStatus",
            [v1.Event.Activated] = v6.switchUnreadStatus
        })
    });
end;
return function(v7)
    return v1.createElement("Frame", {
        BackgroundTransparency = 0,
        BackgroundColor3 = Color3.fromRGB(244, 244, 244),
        Size = UDim2.new(0, 512, 0, 300)
    }, {
        ChatConversation = v1.createElement(v3, v7)
    });
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local l_Text_0 = require(l_Parent_0.AppCommonLib).Text;
local v2 = require(l_Parent_0.Roact);
local l_memoize_0 = require(l_Parent_0.AppCommonLib).memoize;
local l_withStyle_0 = require(l_Parent_0.UIBlox).Style.withStyle;
local v5 = v2.PureComponent:extend("SystemMessage");
v5.defaultProps = {
    LayoutOrder = nil,
    Text = "PLACEHOLDER This message could not be displayed",
    maxWidth = 250
};
v5.init = function(v6)
    v6.calculateSize = l_memoize_0(function(v7, v8, v9, v10)
        return l_Text_0.GetTextBounds(v7, v9, v10, Vector2.new(v8, 1000));
    end);
end;
v5.render = function(v11)
    return l_withStyle_0(function(v12)
        local l_CaptionBody_0 = v12.Font.CaptionBody;
        local v14 = v12.Font.BaseSize * l_CaptionBody_0.RelativeSize;
        local v15 = v11.calculateSize(v11.props.Text, v11.props.maxWidth, l_CaptionBody_0.Font, v14);
        return v2.createElement("Frame", {
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            LayoutOrder = v11.props.LayoutOrder,
            Size = UDim2.new(1, 0, 0, (30 + v15.Y) + 8)
        }, {
            UiListLayout = v2.createElement("UIListLayout", {
                HorizontalAlignment = Enum.HorizontalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            Padding = v2.createElement("UIPadding", {
                PaddingTop = UDim.new(0, 20)
            }),
            GreyBox = v2.createElement("ImageLabel", {
                AnchorPoint = Vector2.new(0.5, 0.5),
                BorderSizePixel = 0,
                Image = "rbxasset://textures/ui/LuaChat/9-slice/system-message.png",
                ImageColor3 = v12.Theme.BackgroundContrast.Color,
                ImageTransparency = v12.Theme.BackgroundContrast.Transparency,
                BackgroundTransparency = 1,
                LayoutOrder = 2,
                Position = UDim2.new(0.5, 0, 0.5, 0),
                ScaleType = Enum.ScaleType.Slice,
                Size = UDim2.new(0, math.min(v11.props.maxWidth, v15.X) + 12, 0, v15.Y + 8),
                SliceCenter = Rect.new(3, 3, 4, 4)
            }, {
                SystemText = v2.createElement("TextLabel", {
                    AnchorPoint = Vector2.new(0.5, 0.5),
                    BackgroundTransparency = 1,
                    BorderSizePixel = 0,
                    Font = l_CaptionBody_0.Font,
                    Position = UDim2.new(0.5, 0, 0.5, 0),
                    Size = UDim2.new(1, 0, 1, 0),
                    Text = v11.props.Text,
                    TextColor3 = v12.Theme.TextDefault.Color,
                    TextSize = v14,
                    TextTransparency = v12.Theme.TextDefault.Transparency,
                    TextWrapped = true
                })
            })
        });
    end);
end;
return v5;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.React);
local l_memo_0 = v1.memo;
local v3 = require(l_Parent_0.Cryo);
local v4 = require(script.Parent.SystemMessage);
local v5 = {
    text = "",
    parentWidth = 0,
    showDateTime = false
};
SystemMessageContainer = function(v6)
    local v7 = v3.Dictionary.join(v5, v6);
    return v1.createElement("Frame", {
        BackgroundTransparency = 1,
        BorderSizePixel = 0,
        AutomaticSize = Enum.AutomaticSize.Y,
        Size = UDim2.new(1, 0, 0, 0)
    }, {
        Layout = v1.createElement("UIListLayout", {
            FillDirection = Enum.FillDirection.Vertical,
            HorizontalAlignment = Enum.HorizontalAlignment.Center,
            SortOrder = Enum.SortOrder.LayoutOrder
        }),
        DateTime = v7.showDateTime and v1.createElement(v4, {
            LayoutOrder = 1,
            Text = v7.sent:GetLongRelativeTime(),
            maxWidth = 1000
        }),
        SystemMessage = v1.createElement(v4, {
            LayoutOrder = 2,
            Text = v7.text,
            maxWidth = v7.parentWidth * 0.75
        }),
        debug = v7.debugElement or nil
    });
end;
return l_memo_0(SystemMessageContainer);


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.Roact);
local l_withStyle_0 = require(l_Parent_0.UIBlox).Style.withStyle;
local v3 = require(l_Parent_0.Otter);
local v4 = require(l_Parent_0.UIBlox);
local l_Images_0 = v4.App.ImageSet.Images;
local l_ImageSetLabel_0 = v4.Core.ImageSet.ImageSetLabel;
local v7 = v1.PureComponent:extend("UserTypingIndicator");
local v8 = {
    dampingRatio = 1.5,
    frequency = 1.6
};
v7.defaultProps = {
    AnchorPoint = Vector2.new(0, 0),
    LayoutOrder = 1,
    Position = UDim2.new(0, 0, 0, 0),
    ZIndex = 1,
    usersTyping = {},
    oneUserTyping = "PLACEHOLDER {DISPLAY_NAME} is typing...",
    twoUsersTyping = "PLACEHOLDER {DISPLAY_NAME_1} and {DISPLAY_NAME_2} are typing...",
    severalUsersTyping = "PLACEHOLDER Several users are typing...",
    maxCharacterLength = 160,
    height = 40
};
v7.init = function(v9)
    v9.getDisplayText = function()
        if v9.props.usersTyping then
            if #v9.props.usersTyping == 1 then
                return v9.props.oneUserTyping;
            elseif #v9.props.usersTyping == 2 then
                return v9.props.twoUsersTyping;
            elseif #v9.props.usersTyping > 2 then
                return v9.props.severalUsersTyping;
            end;
        end;
        return "";
    end;
    local v10, v11 = v1.createBinding(1);
    v9.motor = v3.createSingleMotor(1);
    v9.motor:start();
    v9.motor:onStep(v11);
    v9.animationProgress = v10;
    v9.updateAnimationGoal = function()
        v9.motor:setGoal(v3.spring(#v9.props.usersTyping > 0 and 0 or 1, v8));
    end;
    v9.updateAnimationGoal();
end;
v7.didUpdate = function(v12, v13, _)
    if #v13.usersTyping ~= #v12.props.usersTyping then
        v12.updateAnimationGoal();
    end;
end;
v7.render = function(v15)
    return l_withStyle_0(function(v16)
        local l_Font_0 = v16.Font;
        return v1.createElement("Frame", {
            AnchorPoint = v15.props.AnchorPoint,
            BackgroundTransparency = 1,
            LayoutOrder = v15.props.LayoutOrder,
            Position = v15.props.Position,
            Size = UDim2.new(1, 0, 0, v15.props.height),
            ZIndex = v15.props.ZIndex
        }, {
            Layout = v1.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Center,
                SortOrder = Enum.SortOrder.LayoutOrder,
                FillDirection = Enum.FillDirection.Vertical,
                HorizontalAlignment = Enum.HorizontalAlignment.Center
            }),
            Padding = v1.createElement("UIPadding", {
                PaddingTop = UDim.new(0, 4),
                PaddingBottom = UDim.new(0, 4)
            }),
            ImageContainer = v1.createElement(l_ImageSetLabel_0, {
                Size = UDim2.new(0.9, 0, 1, 0),
                BackgroundColor3 = v16.Theme.NavigationBar.Color,
                BorderColor3 = v16.Theme.Divider.Color,
                BackgroundTransparency = 1,
                BorderSizePixel = 0,
                ScaleType = Enum.ScaleType.Slice,
                SliceCenter = Rect.new(8, 8, 9, 9),
                Image = l_Images_0["component_assets/circle_17"],
                ImageColor3 = v16.Theme.BackgroundUIDefault.Color,
                ImageTransparency = v15.animationProgress:map(function(v18)
                    return v18;
                end),
                Position = v15.animationProgress:map(function(v19)
                    return UDim2.new(0, 0, v19, 0);
                end)
            }, {
                Layout = v1.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Center,
                    HorizontalAlignment = Enum.HorizontalAlignment.Left,
                    FillDirection = Enum.FillDirection.Horizontal,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                Padding = v1.createElement("UIPadding", {
                    PaddingLeft = UDim.new(0, 12),
                    PaddingTop = UDim.new(0, 4),
                    PaddingBottom = UDim.new(0, 4),
                    PaddingRight = UDim.new(0, 12)
                }),
                TextLabel = v1.createElement("TextLabel", {
                    Text = v15.getDisplayText(),
                    TextSize = l_Font_0.BaseSize * l_Font_0.Footer.RelativeSize,
                    Font = l_Font_0.Footer.Font,
                    TextColor3 = v16.Theme.TextMuted.Color,
                    TextXAlignment = Enum.TextXAlignment.Left,
                    TextYAlignment = Enum.TextYAlignment.Center,
                    BackgroundTransparency = 1,
                    TextTransparency = v15.animationProgress:map(function(v20)
                        return v20;
                    end)
                })
            })
        });
    end);
end;
v7.willUnmount = function(v21)
    if v21.motor then
        v21.motor:destroy();
    end;
end;
return v7;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.ArgCheck);
return function(v1, v2, v3)
    v0.isType(v1, "table", "addMessage.messages");
    v0.isType(v2, "string", "addMessage.value");
    if v2 == "" then
        return v1;
    else
        table.insert(v1, not not v3 and {
            placeId = v2
        } or {
            content = v2
        });
        return v1;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.ArgCheck);
local v4 = require(l_script_FirstAncestor_0.Components.ChatConversation.EnumMessageTypes);
local v5 = require(script.Parent.formatMessages);
local v6 = require(script.Parent.separateLinksFromMessages);
local v7 = require(script.Parent.separateLinksFromMessagesRegex);
local v8 = require(l_script_FirstAncestor_0.Flags.getFFlagChatGameCardUseUrlLocales);
local v9 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableChatSystemMessages);
return function(v10, v11)
    v3.isType(v10, "table", "filterForLinks.text");
    v3.isType(v11, "table", "filterForLinks.whitelistedDomains");
    if v9() and v10.messageType == v4.System then
        return {
            v10
        };
    elseif not (v10.messageType == v4.Link) or v10.gameLink and v10.gameLink.universeId then
        if not (not v10.content or not v10.content:lower():match("%/games[^%d]*(%d+)/?")) and not v10.moderated then
            if not v8() then
                return v5(v6(v10.content, v11, "%/games[^%d]*(%d+)/?"), v10);
            else
                return v5(v7(v10.content), v10);
            end;
        else
            return {
                v10
            };
        end;
    else
        return {
            v2.Dictionary.join(v10, {
                messageType = v2.None
            })
        };
    end;
end;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.ArgCheck);
local v1 = require(script.Parent.filterForLinks);
local v2 = {
    "roblox.com",
    "sitetest%d%.robloxlabs.com",
    "gametest%d%.robloxlabs.com",
    "roblox.cn",
    "roblox.qq.com",
    "roblox%-cn.com"
};
return function(v3)
    v0.isType(v3, "table", "filterForLinks.text");
    return v1(v3, v2);
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_script_FirstAncestor_0.Components.ChatConversation.EnumMessageTypes);
local v4 = require(l_Parent_0.ArgCheck);
return function(v5, v6)
    v4.isType(v5, "table", "formatMessages.messages");
    v4.isType(v6, "table", "formatMessages.messageData");
    return v2.List.map(v5, function(v7)
        if not v7.placeId then
            return v2.Dictionary.join(v6, v7);
        else
            return v2.Dictionary.join(v6, v7, {
                messageType = v3.Link,
                content = v2.None
            });
        end;
    end);
end;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.ArgCheck);
return function(v1, ...)
    v0.isType(v1, "table", "isKeyCodePressed.pressedKeys");
    local v2 = {
        ...
    };
    for _, v4 in ipairs(v1) do
        for _, v6 in ipairs(v2) do
            if v4.KeyCode == v6 then
                return true;
            end;
        end;
    end;
    return false;
end;


local function v0(v1, v2)
    local v3 = v2:exec(v1);
    if v3 then
        local l_index_0 = v3.index;
        local v5 = v3[1];
        local v6 = {};
        if #v3 > 1 then
            for v7 = 2, #v3 do
                table.insert(v6, v3[v7]);
            end;
        end;
        return {
            {
                index = l_index_0,
                input = v1,
                matchedText = v5,
                capturedGroups = v6
            },
            unpack((v0(v1:sub(l_index_0 + #v5), v2)))
        };
    else
        return {};
    end;
end;
return v0;


local function _(v0)
    local v1 = false;
    if v0.order ~= nil then
        v1 = not v0.moderated and not v0.failed;
    end;
    return v1;
end;
return function(v3, v4)
    if not v3.order or not v4.order then
        local v5 = false;
        if v3.order ~= nil then
            v5 = not v3.moderated and not v3.failed;
        end;
        if not v5 then
            v5 = false;
            if v4.order ~= nil then
                v5 = not v4.moderated and not v4.failed;
            end;
            if not v5 then
                if not (not v3.sent or not v4.sent) and v3.sent:GetUnixTimestamp() ~= v4.sent:GetUnixTimestamp() then
                    return v3.sent:GetUnixTimestamp() < v4.sent:GetUnixTimestamp();
                else
                    v5 = true;
                    if v4.moderated ~= true then
                        v5 = v4.failed == true;
                    end;
                    return v5;
                end;
            end;
        end;
        v5 = false;
        if v4.order ~= nil then
            v5 = not v4.moderated and not v4.failed;
        end;
        return v5;
    else
        return v3.order < v4.order;
    end;
end;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.ArgCheck);
return function(v1, v2)
    v0.isType(v1, "string", "patternMatcher.string");
    v0.isType(v2, "string", "patternMatcher.pattern");
    local v3, v4 = v1:lower():find(v2);
    if v3 then
        return true, {
            prefix = v1:sub(1, v3 - 1),
            suffix = v1:sub(v4 + 1)
        };
    else
        return false, nil;
    end;
end;


return function(v0)
    if v0 then
        return v0.getScreenProps("isVisible", false) or not v0.getScreenProps("wideMode", false);
    else
        return false;
    end;
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local l_Text_0 = require(l_Parent_0.AppCommonLib).Text;
local v2 = require(l_Parent_0.ArgCheck);
local v3 = require(script.Parent.patternMatcher);
local v4 = require(script.Parent.addMessage);
return function(v5, v6, v7)
    v2.isType(v5, "string", "separateLinksFromMessages.text");
    v2.isType(v6, "table", "separateLinksFromMessages.domains");
    v2.isType(v7, "string", "separateLinksFromMessages.gameLinkPattern");
    local v8 = {};
    local l_v5_0 = v5;
    for _, v11 in pairs(v6) do
        local v12 = "[^%s*]*" .. v11 .. v7 .. "[^%s*]*";
        for v13 in l_v5_0:lower():gmatch(v12) do
            local v14, v15 = v3(l_v5_0, v12);
            if not (not v14 or not v15) then
                v8 = v4(v4(v8, l_Text_0.Trim(v15.prefix)), v13, true);
                l_v5_0 = l_Text_0.Trim(v15.suffix);
            end;
        end;
    end;
    return v4(v8, l_v5_0);
end;


local l_Parent_0 = script:FindFirstAncestor("AppChat").Parent;
local v1 = require(l_Parent_0.RegExp);
local l_Text_0 = require(l_Parent_0.AppCommonLib).Text;
local v3 = require(script.Parent.addMessage);
local v4 = require(script.Parent.matchAllRegex);
local v5 = {
    "roblox\\.com",
    "sitetest\\d\\.robloxlabs\\.com",
    "gametest\\d\\.robloxlabs\\.com",
    "roblox\\.cn",
    "roblox\\.qq\\.com",
    "roblox-cn\\.com"
};
local v6 = "(?:";
for _, v8 in v5, nil, nil do
    v6 = v6 .. v8 .. "|";
end;
local v9 = v1("\\S*" .. v6:sub(1, -2) .. ")" .. "(?:\\/[A-Za-z]{2}(?:-[A-Za-z0-9]{2,3})?)?" .. "\\/games\\/(\\d+)\\/?" .. "\\S*");
return function(v10)
    local v11 = {};
    local l_v10_0 = v10;
    local l_status_0, l_result_0 = pcall(function()
        return v4(l_v10_0:lower(), v9);
    end);
    if (not l_status_0 or not l_result_0) or #l_result_0 == 0 then
        return v3(v11, l_v10_0);
    else
        for _, v16 in l_result_0, nil, nil do
            local v17 = v16.capturedGroups[1];
            if v17 then
                v11 = v3(v3(v11, l_Text_0.Trim(l_v10_0:sub(1, v16.index - 1))), v17, true);
                l_v10_0 = l_v10_0:sub(v16.index + #v16.matchedText);
            end;
        end;
        return v3(v11, l_Text_0.Trim(l_v10_0));
    end;
end;


return {
    logger = require(script.Parent.Logger),
    screenComponent = require(script.Parent.ChatConversationScreen),
    Messages = require(script.Parent.Messages)
};


return function(v0, v1)
    if v1 < #v0 then
        return false;
    elseif not v0:match("^%s*$") then
        return true;
    else
        return false;
    end;
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_Messages_0 = script.Parent.Messages;
local v3 = require(l_Messages_0.NetworkRequests.getOlderMessages);
local v4 = require(l_Messages_0.NetworkRequests.markConversationAsRead);
local v5 = require(l_Messages_0.Thunks.sendTextMessage);
local v6 = require(l_Messages_0.Thunks.getRemainingOlderMessages);
local v7 = require(l_Messages_0.NetworkRequests.updateTypingStatus);
local v8 = require(l_script_FirstAncestor_0.Conversations.Thunks.createFriendConversation);
local v9 = require(l_script_FirstAncestor_0.Logger);
local v10 = require(l_script_FirstAncestor_0.Http.NetworkingChat);
local v11 = require(l_Parent_0.AppChatNetworking);
local v12 = require(l_script_FirstAncestor_0.Flags.isAppChatChannelsAPIEnabled);
return function(v13)
    local function v18(v14, v15, v16, v17)
        return v13(v3(v14, v15, v16, v17));
    end;
    return {
        getOlderMessages = function(v19, _)
            return v13(v6(v18, v19));
        end,
        sendMessage = function(v21, v22)
            return v13(v5(v21, v22));
        end,
        createFriendConversation = function(v23, v24)
            return v13(v8(v23, v24));
        end,
        markConversationAsRead = function(v25, v26)
            v13(v4(v25, v26));
        end,
        postTypingStatus = function(v27, v28)
            if not v12() then
                return v13(v10.UpdateUserTypingStatus.API(v27, v28));
            else
                return v13(v7(v27));
            end;
        end,
        getUnreadConversationCount = function()
            if not v12() then
                return v13(v10.GetUnreadConversationCount.API()):catch(function(v29)
                    warn("NetworkingChat failure in getUnreadConversationCount, Status: " .. tostring(v29));
                end);
            else
                return v13(v11.rodux.GetConversationMetadata.API()):catch(function(v30)
                    v9:error((("Failure in GetConversationMetadata. Error: %*"):format((tostring(v30)))));
                end);
            end;
        end
    };
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.React);
local l_memo_0 = v3.memo;
local v5 = require(l_script_FirstAncestor_0.SocialLibraries);
local v6 = if not v5.Flags.getFFlagDeprecatedSocialLibrariesCells() then v5.Components.Cells.IconWithTextCell else require(l_script_FirstAncestor_0.Components.Cells.IconWithTextCell);
local v7 = {
    Text = "(translated 'add friends' text here)",
    iconImage = nil,
    iconSize = 36,
    iconCellWidth = 60,
    cellHeight = 64,
    onActivated = nil,
    LayoutOrder = 0,
    style = nil
};
AddFriendsEntry = function(v8)
    local v9 = v2.Dictionary.join(v7, v8);
    return v3.createElement(v6, {
        Size = UDim2.new(1, 0, 0, v9.cellHeight),
        primaryIcon = v9.iconImage,
        primaryIconSize = v9.iconSize,
        iconCellWidth = v9.iconCellWidth,
        Text = v9.Text,
        onActivated = v9.onActivated,
        LayoutOrder = v9.LayoutOrder,
        style = v9.style
    });
end;
return l_memo_0(AddFriendsEntry);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_Parent_0.Cryo);
local v3 = require(l_Parent_0.React);
local v4 = require(l_Parent_0.UIBlox);
local v5 = require(l_Parent_0.Promise);
local v6 = require(l_script_FirstAncestor_0.Utils.getDeepValue);
local v7 = require(l_Parent_0.UserProfiles);
local l_dependencyArray_0 = require(l_Parent_0.RoactUtils).Hooks.dependencyArray;
local l_useCallback_0 = v3.useCallback;
local l_useDispatch_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useDispatch;
local l_useEffect_0 = v3.useEffect;
local l_useEffectOnMount_0 = require(l_Parent_0.RoactUtils).Hooks.useEffectOnMount;
local l_useStyle_0 = v4.Core.Style.useStyle;
local l_useSelector_0 = require(l_Parent_0.RoactUtils).Hooks.RoactRodux.useSelector;
local l_useLocalization_0 = require(l_Parent_0.Localization).Hooks.useLocalization;
local v16 = require(l_script_FirstAncestor_0.Models.Conversation);
local v17 = require(l_script_FirstAncestor_0.Models.ConversationChannels);
local l_useUserProfilesFetch_0 = v7.Hooks.useUserProfilesFetch;
local l_userProfilesCombinedNameAndUsernameByUserIds_0 = v7.Queries.userProfilesCombinedNameAndUsernameByUserIds;
local v20 = require(l_script_FirstAncestor_0.Hooks.useIsUserPending);
local l_getConversationDisplayTitle_0 = require(l_script_FirstAncestor_0.SocialLibraries).Conversation.getConversationDisplayTitle;
local v22 = require(l_script_FirstAncestor_0.LuaAppNavigationContext);
local v23 = require(script.Parent.Selectors.selectChatUserEntryModelList);
local v24 = require(script.Parent.ChatDetailsPage);
local v25 = require(script.Parent.Dialogs.GenericDialogType);
local v26 = require(l_Parent_0.AppChatNetworking);
local v27 = require(l_script_FirstAncestor_0.Analytics.EventNames);
local v28 = require(l_script_FirstAncestor_0.Analytics.useAnalytics);
local v29 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableUnfilteredThreadsUI);
local v30 = {
    topBarHeight = 0,
    wideMode = false,
    participants = nil,
    isGroupConversation = nil,
    isGroupOwner = nil,
    conversationId = nil,
    conversation = nil,
    navigateBack = function()
    end,
    navigateToEditChatMembers = function()
    end,
    navigateToDialog = function()
    end,
    navigateToToast = function()
    end
};
return function(v31)
    local v32 = v2.Dictionary.join(v30, v31 or {});
    local v33 = l_useStyle_0();
    local v34 = l_useLocalization_0({
        pageHeaderText = "Feature.Chat.Label.ChatDetails",
        generalText = "Feature.Chat.Label.General",
        titleNotSetText = "Feature.Chat.Label.NotSet",
        membersText = "Feature.Chat.Label.Members",
        addFriendsText = "Feature.Chat.Label.AddFriends",
        leaveGroupText = "Feature.Chat.Heading.LeaveGroup",
        chatGroupText = "Feature.Chat.Label.ChatGroupName",
        onlinePresenceText = "Common.Presence.Label.Online",
        offlinePresenceText = "Common.Presence.Label.Offline",
        tooManyPeopleText = {
            "Feature.Chat.Message.ToastText";
            friendNum = 5
        }
    });
    local v35 = if not v29() then nil else v3.useContext(v22);
    local v36 = nil;
    local v37 = nil;
    if v29() then
        local v38 = l_useDispatch_0();
        local l_v38_0 = v38 --[[ copy: 7 -> 29 ]];
        l_useEffect_0(function()
            l_v38_0(v26.rodux.GetConversationsParticipantsMetadata.API({
                v32.conversationId
            })):catch(function()
                warn("Error in ChatDetailsContainer -> GetConversationsParticipantsMetadata");
            end);
        end, {
            v32.conversationId,
            v32.participants
        });
        local v41 = l_useSelector_0(l_useCallback_0(function(v40)
            return v6(v40, "ChatAppReducer.UnfilteredThreads.eligibility") or {};
        end, {}));
        v36 = v41.isFullyEligible;
        v37 = v41.isIXPEligible and v41.isRolloutEligible;
    end;
    local v43 = l_useSelector_0(function(v42)
        return v6(v42, (("ChatAppReducer.Conversations.%*"):format(v32.conversationId or ""))) or v16.empty();
    end);
    local v44 = l_useUserProfilesFetch_0({
        userIds = v43.participants,
        query = l_userProfilesCombinedNameAndUsernameByUserIds_0
    });
    local v45 = nil;
    local v46 = nil;
    local v47 = nil;
    local v48 = nil;
    local v49 = nil;
    local v50 = nil;
    local v51 = nil;
    local v52 = nil;
    if v43 then
        v45 = l_useSelector_0(function(v53)
            if not v44.data then
                return {};
            else
                return v23(v53, v43.participants, v44.data.userProfiles);
            end;
        end);
        v47 = v43.conversationType == v16.Type.MULTI_USER_CONVERSATION;
        v46 = l_useSelector_0(function(v54)
            return v47 and v43.initiator == v54.LocalUserId;
        end);
        v48 = l_getConversationDisplayTitle_0(v43);
        if v29() then
            v50 = v20(v43);
            v49 = v47 and v50;
            if not (not v43.participantMetadata or not v47) then
                for v55, v56 in v45, nil, nil do
                    v45[v55] = v2.Dictionary.join(v56, {
                        metadata = v43.participantMetadata[v55]
                    });
                end;
            end;
            v51 = v43.moderationType == v17.ModerationType.TrustedComms;
            v52 = v43.source == "channels";
        end;
    end;
    local v57 = ((v36 and v47) and not v51) and v52;
    local v58 = v51 or v37;
    local v59 = not v51 and "Filtered" or "Unfiltered";
    if v43.isDefaultTitle then
        v48 = v34.titleNotSetText;
    end;
    local function _(v60)
        return v5.new(function(v61, v62)
            if #v60.participants > 5 then
                v62();
                return ;
            else
                v61();
                return ;
            end;
        end);
    end;
    local function v64()
        v32.navigateToDialog(v25.EditChatGroupNameDialog, {
            conversationId = v32.conversationId
        });
    end;
    local function v65()
        v32.navigateToDialog(v25.LeaveGroupDialog, {
            conversationId = v32.conversationId
        });
    end;
    local v66 = if not v29() then nil else l_useCallback_0(function()
        v35.navigateToUnfilteredThreadsLearnMore();
    end, l_dependencyArray_0(v35));
    local v67 = if not v29() then nil else l_useCallback_0(function()
        v32.navigateToDialog(v25.CreateUnfilteredChatDialog, {
            conversationId = v32.conversationId
        });
    end, l_dependencyArray_0(v32.navigateToDialog, v32.conversationId));
    local function v69(v68)
        v32.navigateToDialog(v25.ParticipantDialog, {
            conversationId = v32.conversationId,
            participantId = v68,
            showRemoveUserButton = (not v50 and v47) and v46
        });
    end;
    local function v71(v70)
        v32.navigateToToast({
            toastProps = {
                toastContent = {
                    toastTitle = v70
                }
            }
        });
    end;
    local function v76(v72)
        local l_v43_0 = v43;
        v5.new(function(v74, v75)
            if #l_v43_0.participants > 5 then
                v75();
                return ;
            else
                v74();
                return ;
            end;
        end):andThen(function()
            v32.navigateToEditChatMembers(v43);
        end, function()
            v71(v72);
        end);
    end;
    local v77 = v28();
    if v77 then
        l_useEffectOnMount_0(function()
            v77.fireAnalyticsEvent(v27.ChatDetailsRendered, {
                conversationId = v32.conversationId,
                participantsCount = #v43.participants,
                isGroupOwner = v46,
                isGroupConversation = v47
            });
        end);
    end;
    return v3.createElement("ImageButton", {
        Size = UDim2.new(1, 0, 1, 0),
        BackgroundTransparency = 1,
        Active = true,
        AutoButtonColor = false
    }, {
        ChatDetailsPage = v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 1, 0),
            BackgroundTransparency = 1
        }, {
            UIListLayout = v3.createElement("UIListLayout", {
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            Content = v3.createElement(v24, v2.Dictionary.join({
                navigateBack = v32.navigateBack,
                onGroupNameEntryCellActivated = v64,
                onLeaveGroupCellActivated = v65,
                onParticipantCellActivated = v69,
                onAddFriendsCellActivated = function()
                    return v76(v34.tooManyPeopleText);
                end,
                onConversationTypeIconActivated = v66,
                onCreateUnfilteredChatCellActivated = v67,
                conversationTitle = v48,
                conversation = v43,
                conversationId = v32.conversationId,
                participants = v45,
                isGroupConversation = v47,
                wideMode = v32.wideMode,
                shouldHideGroupChatFunctionality = v49,
                shouldShowRevampedUI = v58,
                shouldShowCreateUnfilteredChat = v57,
                conversationTypeText = v59,
                topBarHeight = v32.topBarHeight,
                LayoutOrder = 2,
                style = v33
            }, v34))
        })
    });
end;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(script.Parent.Logger);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local l_useCallback_0 = v4.useCallback;
local l_dependencyArray_0 = require(l_Parent_0.RoactUtils).Hooks.dependencyArray;
local l_memo_0 = v4.memo;
local l_Images_0 = require(l_Parent_0.UIBlox).App.ImageSet.Images;
local v9 = require(script.Parent.SectionHeader);
local v10 = require(script.Parent.GroupNameEntryCell);
local v11 = require(script.Parent.AddFriendsEntry);
local v12 = require(script.Parent.ParticipantList);
local v13 = require(script.Parent.LeaveGroupCell);
local l_TestStyle_0 = require(l_script_FirstAncestor_0.SocialLibraries).Components.TestStyle;
local v15 = require(script.Parent.UnfilteredThreads.ConversationTypeCell);
local v16 = require(script.Parent.UnfilteredThreads.CreateUnfilteredChatCell);
local v17 = require(l_script_FirstAncestor_0.Flags.getFFlagEnableUnfilteredThreadsUI);
local v18 = {
    participants = {},
    localUserId = nil,
    conversation = nil,
    conversationId = nil,
    isGroupConversation = false,
    topBarHeight = 0,
    shouldShowCreateUnfilteredChat = false,
    shouldShowRevampedUI = false,
    shouldHideGroupChatFunctionality = false,
    navigateBack = function()
    end,
    conversationTitle = "PlaceholderTitle",
    pageHeaderText = "localizedText.ChatDetails",
    generalText = "localizedText.General",
    membersText = "localizedText.Members",
    addFriendsText = "localizedText.AddFriends",
    leaveGroupText = "localizedText.LeaveGroup",
    onlinePresenceText = "localizedText.OnlineText",
    offlinePresenceText = "localizedText.OfflineText",
    conversationTypeHeaderText = "Type",
    conversationTypeText = "localizedText.ConversationTypeText",
    createUnfilteredChatText = "Create upgraded conversation",
    onGroupNameEntryCellActivated = function()
        v2:warning("onGroupNameEntryCellActivated was not passed to ChatDetailsPage");
    end,
    onAddFriendsCellActivated = function()
        v2:warning("onAddFriendsCellActivated was not passed to ChatDetailsPage");
    end,
    onLeaveGroupCellActivated = function()
        v2:warning("onLeaveGroupCellActivated was not passed to ChatDetailsPage");
    end,
    onParticipantCellActivated = function()
        v2:warning("onParticipantCellActivated was not passed to ChatDetailsPage");
    end,
    onConversationTypeIconActivated = function()
        v2:warning("onConversationTypeIconActivated was not passed to ChatDetailsPage");
    end,
    onCreateUnfilteredChatCellActivated = function()
        v2:warning("onCreateUnfilteredChatCellActivated was not passed to ChatDetailsPage");
    end,
    LayoutOrder = 0,
    style = l_TestStyle_0
};
ChatDetailsPage = function(v19)
    local v20 = v3.Dictionary.join(v18, v19);
    local function v21()
        v20.onGroupNameEntryCellActivated(v20.conversation);
    end;
    local function v22()
        v20.onAddFriendsCellActivated(v20.conversation);
    end;
    local function v23()
        v20.onLeaveGroupCellActivated(v20.conversation);
    end;
    local function v25(v24)
        v2:info("onParticipantCellActivated: {}", v24.id);
        if not v24.isLocalUser then
            v20.onParticipantCellActivated(v24.id);
            return ;
        else
            return ;
        end;
    end;
    local v26 = l_useCallback_0(function()
        v20.onCreateUnfilteredChatCellActivated(v20.conversation);
    end, l_dependencyArray_0(v20.conversation));
    local v30 = l_useCallback_0(function(_, v28, v29)
        if (not v20.wideMode and v28 == Enum.SwipeDirection.Right) and v29 == 1 then
            v20.navigateBack();
        end;
    end);
    local v31 = 0;
    for _, _ in pairs(v20.participants) do
        v31 = v31 + 1;
    end;
    local v34 = v17() and v20.shouldShowRevampedUI;
    local v35 = not v34 and 48 or 82;
    local v36 = if not not v17() and v20.shouldHideGroupChatFunctionality then v31 else v31 + 1 * v35;
    local v37 = v36 + (not v17() and 5 or 8) * v35;
    local l_style_0 = v20.style;
    return v4.createElement("TextButton", {
        AutoButtonColor = false,
        BackgroundColor3 = l_style_0.Theme.BackgroundDefault.Color,
        BorderSizePixel = 0,
        LayoutOrder = v20.LayoutOrder,
        Size = UDim2.new(1, 0, 1, -v20.topBarHeight),
        Text = "",
        Transparency = l_style_0.Theme.BackgroundDefault.Transparency,
        [v4.Event.TouchSwipe] = v30
    }, {
        ScrollingContent = v4.createElement("ScrollingFrame", {
            Size = UDim2.new(1, 0, 1, 0),
            CanvasSize = UDim2.new(1, 0, 0, v37),
            BackgroundTransparency = 1,
            BorderSizePixel = 0,
            ScrollBarThickness = 0,
            LayoutOrder = v20.LayoutOrder,
            ScrollingDirection = Enum.ScrollingDirection.Y
        }, {
            UIListLayout = v4.createElement("UIListLayout", {
                VerticalAlignment = Enum.VerticalAlignment.Top,
                SortOrder = Enum.SortOrder.LayoutOrder
            }),
            ChatGroupHeader = v20.isGroupConversation and v4.createElement(v9, {
                marginTop = 20,
                LayoutOrder = 1,
                Text = v20.chatGroupText,
                style = v20.style
            }),
            GroupNameEntryCell = v20.isGroupConversation and v4.createElement(v10, {
                LayoutOrder = 2,
                groupNameText = v20.conversationTitle,
                iconImage = l_Images_0["icons/actions/edit/edit"],
                iconCellWidth = if not v34 then nil else 72,
                isDisabled = not not v17() and v20.shouldHideGroupChatFunctionality,
                cellHeight = if not v34 then nil else 44,
                onActivated = v21,
                style = v20.style
            }),
            ConversationTypeHeader = if not v34 then nil else v4.createElement(v9, {
                LayoutOrder = 3,
                Text = v20.conversationTypeHeaderText,
                style = v20.style
            }),
            ConversationTypeCell = if not v34 then nil else v4.createElement(v15, {
                layoutOrder = 4,
                bodyText = v20.conversationTypeText,
                iconImage = l_Images_0["icons/actions/info"],
                onIconActivated = v20.onConversationTypeIconActivated,
                style = v20.style
            }),
            CreateUnfilteredChatCell = if not not v34 and v20.shouldShowCreateUnfilteredChat then v4.createElement(v16, {
                layoutOrder = 5,
                bodyText = v20.createUnfilteredChatText,
                iconImage = l_Images_0["icons/actions/edit/copy"],
                cellHeight = v35,
                onActivated = v26,
                style = v20.style
            }) else nil,
            MembersHeader = v4.createElement(v9, {
                LayoutOrder = 6,
                marginTop = 14,
                marginBottom = 8,
                Text = v20.membersText,
                style = v20.style
            }),
            MembersFrame = v4.createElement("Frame", {
                Size = UDim2.new(1, 0, 0, v36),
                BackgroundColor3 = l_style_0.Theme.BackgroundDefault.Color,
                BorderSizePixel = 0,
                LayoutOrder = 7
            }, {
                UIListLayout = v4.createElement("UIListLayout", {
                    VerticalAlignment = Enum.VerticalAlignment.Top,
                    SortOrder = Enum.SortOrder.LayoutOrder
                }),
                AddFriendsCell = if not not v17() and v20.shouldHideGroupChatFunctionality then nil else v4.createElement(v11, {
                    LayoutOrder = 1,
                    Text = v20.addFriendsText,
                    iconImage = l_Images_0["icons/actions/edit/add"],
                    cellHeight = v35,
                    iconCellWidth = if not v34 then nil else 72,
                    onActivated = v22,
                    style = v20.style
                }),
                ParticipantList = v4.createElement(v12, {
                    LayoutOrder = 2,
                    entries = v20.participants,
                    entryHeight = v35,
                    onlinePresenceText = v20.onlinePresenceText,
                    offlinePresenceText = v20.offlinePresenceText,
                    childWidth = 48,
                    shouldUseExpandedCell = v34,
                    onEntryActivated = v25
                })
            }),
            LeaveGroupCell = v20.isGroupConversation and v4.createElement(v13, {
                LayoutOrder = 8,
                leaveGroupText = v20.leaveGroupText,
                iconImage = l_Images_0["icons/controls/vehicle/exit"],
                cellHeight = v35,
                iconCellWidth = if not v34 then nil else 72,
                marginTop = if not v34 then nil else 0,
                onActivated = v23,
                style = v20.style
            })
        })
    });
end;
return l_memo_0(ChatDetailsPage);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.EnumScreens);
local v3 = require(l_Parent_0.Roact);
local v4 = require(script.Parent.ChatDetailsContainer);
local v5 = require(script.Parent.Logger);
local v6 = v3.PureComponent:extend("ChatDetailsScreen");
v6.defaultProps = {
    navigation = nil
};
v6.navigationOptions = function()
    return {
        headerText = {
            raw = "Feature.Chat.Label.ChatDetails",
            shouldLocalize = true
        }
    };
end;
v6.init = function(v7)
    v7.navigateToEditChatMembers = function(v8)
        v5:info("Navigate To EditChatMembers from {screen}");
        v7.props.navigation.navigate(v2.EditChatMembers, {
            conversation = v8
        });
    end;
    v7.navigateToToast = function(v9)
        v5:info("Navigate To Toast from {screen}");
        v7.props.navigation.navigate(v2.RoactChatToast, v9);
    end;
    v7.navigateToDialog = function(v10, v11)
        v5:info("Navigate To {} from {screen}", v10);
        v7.props.navigation.navigate(v10, v11);
    end;
    v7.navigateBack = function()
        if v7.props.navigation.isFocused() then
            v7.props.navigation.goBack();
        end;
    end;
end;
v6.render = function(v12)
    local l_navigation_0 = v12.props.navigation;
    assert(type(l_navigation_0) ~= "nil", "ChatDetailsScreen should be wrapped with Roact Navigation");
    local v14 = l_navigation_0.getParam("conversationId", nil);
    if v14 == nil then
        v5:warning("ConversationId is required to open {screen}");
        return nil;
    else
        return v3.createElement(v4, {
            topBarHeight = l_navigation_0.getScreenProps("topBarHeight", 0),
            wideMode = l_navigation_0.getScreenProps("wideMode", false),
            conversationId = v14,
            navigateBack = v12.navigateBack,
            navigateToEditChatMembers = v12.navigateToEditChatMembers,
            navigateToDialog = v12.navigateToDialog,
            navigateToToast = v12.navigateToToast
        });
    end;
end;
v6.didMount = function(_)
    v5:info("{screen} mounted");
end;
return v6;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local v3 = require(l_Parent_0.Roact);
local v4 = require(l_Parent_0.UIBlox);
local l_InputBoxWithCharacterCounter_0 = v2.Components.InputBoxWithCharacterCounter;
local v6 = v3.PureComponent:extend("ChatNameInputBox");
v6.defaultProps = {
    initialInputText = "",
    placeholderText = "(PLACEHOLDER) Name your chat group"
};
v6.render = function(v7)
    return v4.Style.withStyle(function(v8)
        return v3.createElement("Frame", {
            Size = UDim2.new(1, 0, 0, 64),
            BackgroundTransparency = 1
        }, {
            InputBox = v3.createElement(l_InputBoxWithCharacterCounter_0, {
                initialInputText = v7.props.initialInputText,
                validInputTextColor3 = Color3.fromRGB(117, 117, 117),
                validInputTextTransparency = 0,
                invalidInputTextColor3 = Color3.fromRGB(226, 35, 26),
                invalidInputTextTransparency = 0,
                inputTextFont = Enum.Font.Gotham,
                inputTextColor3 = Color3.fromRGB(25, 25, 25),
                inputTextSize = 23,
                inputTextTransparency = 0,
                placeholderTextTransparency = 0,
                placeholderTextColor3 = Color3.fromRGB(184, 184, 184),
                placeholderText = v7.props.placeholderText,
                clearIconColor3 = Color3.fromRGB(255, 255, 255),
                clearIcon = "rbxasset://textures/ui/LuaChat/icons/ic-clear-solid.png",
                characterLimit = 150,
                style = v8
            })
        });
    end);
end;
return v6;


return {
    EditChatGroupNameDialog = "EditChatGroupNameDialog",
    LeaveGroupDialog = "LeaveGroupDialog",
    ParticipantDialog = "ParticipantDialog",
    RemoveUserDialog = "RemoveUserDialog",
    CreateUnfilteredChatDialog = "CreateUnfilteredChatDialog"
};


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local _ = require(l_script_FirstAncestor_0.types);
local v4 = require(l_Parent_0.Cryo);
local v5 = require(l_Parent_0.React);
local l_TextInput_0 = v2.Components.AlertViews.TextInput;
local v7 = {
    titleText = "Placeholder",
    cancelText = "CancelText",
    confirmText = "ConfirmText",
    warningText = nil,
    inputText = nil,
    placeholderText = nil,
    soakAreaColor3 = Color3.fromRGB(25, 25, 25),
    soakAreaTransparency = 0.8,
    onActivated = nil,
    onModalClose = nil
};
EditChatGroupNameDialog = function(v8)
    return v5.createElement(l_TextInput_0, (v4.Dictionary.join(v7, v8)));
end;
return EditChatGroupNameDialog;


local v0 = require(script:FindFirstAncestor("AppChat").Parent.Roact);
local v1 = require(script.Parent.EditChatGroupNameDialogContainer);
local v2 = require(script.Parent.Logger);
local v3 = v0.PureComponent:extend("EditChatGroupNameDialogScreen");
v3.defaultProps = {
    navigation = nil
};
v3.init = function(v4)
    v4.onEditChatGroupNameDialogClose = function()
        v4.props.navigation.goBack();
    end;
end;
v3.render = function(v5)
    local l_navigation_0 = v5.props.navigation;
    assert(type(l_navigation_0) ~= "nil", "EditChatGroupNameDialogScreen should be wrapped with Roact Navigation");
    local v7 = l_navigation_0.getParam("conversationId", nil);
    if v7 == nil then
        v2:warning("ConversationId is required to open {screen}");
        return nil;
    else
        return v0.createElement(v1, {
            conversationId = v7,
            onModalClose = v5.onEditChatGroupNameDialogClose
        });
    end;
end;
v3.didMount = function(_)
    v2:info("{screen} mounted");
end;
return v3;


local v0 = require(script:FindFirstAncestor("AppChat").Logger):new(script:GetFullName() .. ":EditChatGroupNameDialogScreen");
v0:setContext({
    screen = "EditChatGroupNameDialogScreen"
});
return v0;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local l_memo_0 = v4.memo;
local v6 = if not v2.Flags.getFFlagDeprecatedSocialLibrariesCells() then v2.Components.Cells.IconWithTextCell else require(l_script_FirstAncestor_0.Components.Cells.IconWithTextCell);
local v7 = {
    groupNameText = "groupName",
    iconImage = nil,
    onActivated = nil,
    LayoutOrder = 1,
    iconCellWidth = 60,
    isDisabled = false,
    cellHeight = 36,
    style = nil
};
GroupNameEntryCell = function(v8)
    local v9 = v3.Dictionary.join(v7, v8);
    local v10 = not v9.isDisabled and 0 or v9.style.Tokens.Global.Size_150;
    return v4.createElement("Frame", {
        AutomaticSize = Enum.AutomaticSize.Y,
        BackgroundTransparency = 1,
        LayoutOrder = v9.LayoutOrder,
        Size = UDim2.fromScale(1, 0)
    }, {
        padding = v4.createElement("UIPadding", {
            PaddingLeft = UDim.new(0, v10),
            PaddingBottom = UDim.new(0, 12)
        })
    }, {
        IconWithText = v4.createElement(v6, {
            primaryIcon = if not v9.isDisabled then v9.iconImage else nil,
            Text = v9.groupNameText,
            iconCellWidth = v9.iconCellWidth,
            showDivider = false,
            isDisabled = v9.isDisabled,
            onActivated = v9.onActivated,
            LayoutOrder = 1,
            Size = UDim2.new(1, -v10, 0, v9.cellHeight),
            style = v9.style
        })
    });
end;
return l_memo_0(GroupNameEntryCell);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local l_memo_0 = v4.memo;
local v6 = if not v2.Flags.getFFlagDeprecatedSocialLibrariesCells() then v2.Components.Cells.IconWithTextCell else require(l_script_FirstAncestor_0.Components.Cells.IconWithTextCell);
local l_RoactFitComponents_0 = require(l_Parent_0.LuaSocialLibrariesDeps).RoactFitComponents;
local v8 = {
    leaveGroupText = "leaveGroupText",
    onActivated = nil,
    iconImage = nil,
    cellHeight = 64,
    iconCellWidth = 60,
    marginTop = 12,
    LayoutOrder = 0,
    style = nil
};
LeaveGroupCell = function(v9)
    local v10 = v3.Dictionary.join(v8, v9);
    return v4.createElement(l_RoactFitComponents_0.FitFrameVertical, {
        BackgroundTransparency = 1,
        LayoutOrder = v10.LayoutOrder,
        width = UDim.new(1, 0),
        margin = {
            top = v10.marginTop,
            left = 0,
            right = 0,
            bottom = 0
        }
    }, {
        LeaveGroupRow = v4.createElement(v6, {
            LayoutOrder = v10.LayoutOrder,
            onActivated = v10.onActivated,
            primaryIcon = v10.iconImage,
            showDivider = false,
            Size = UDim2.new(1, 0, 0, v10.cellHeight),
            style = v10.style,
            Text = v10.leaveGroupText,
            iconCellWidth = v10.iconCellWidth
        })
    });
end;
return l_memo_0(LeaveGroupCell);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.SocialLibraries);
local _ = require(l_script_FirstAncestor_0.types);
local v4 = require(l_Parent_0.Cryo);
local v5 = require(l_Parent_0.React);
local l_Warning_0 = v2.Components.AlertViews.Warning;
local v7 = {
    titleText = "Placeholder title",
    bodyText = "Placeholder body",
    cancelText = "TempCancel",
    confirmText = "TempConfirm",
    failureTitleText = "FailureTitle",
    failureBodyText = "FailureBody",
    failureButtonText = "FailureButton",
    soakAreaColor3 = Color3.fromRGB(25, 25, 25),
    soakAreaTransparency = 0.8,
    width = UDim.new(0.8, 0),
    displayFailed = false,
    onActivated = nil,
    onModalClose = nil
};
LeaveGroupDialog = function(v8)
    return v5.createElement(l_Warning_0, (v4.Dictionary.join(v7, v8)));
end;
return LeaveGroupDialog;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.EnumScreens);
local v3 = require(l_Parent_0.Roact);
local v4 = require(script.Parent.LeaveGroupDialogContainer);
local v5 = require(script.Parent.Logger);
local v6 = v3.PureComponent:extend("LeaveGroupDialogScreen");
v6.defaultProps = {
    navigation = nil
};
v6.init = function(v7)
    v7.onLeaveGroupDialogClose = function()
        v7.props.navigation.goBack();
    end;
    v7.onLeaveGroupSuccess = function()
        local l_navigation_0 = v7.props.navigation;
        if not l_navigation_0.getScreenProps("wideMode", false) then
            v5:info("Navigate To ChatLanding from {screen}");
            l_navigation_0.navigate(v2.ChatLanding);
            return ;
        else
            v5:info("Navigate To ChatLanding with EmptyConversation from {screen}");
            l_navigation_0.navigate(v2.EmptyConversation);
            return ;
        end;
    end;
end;
v6.render = function(v9)
    local l_navigation_1 = v9.props.navigation;
    assert(type(l_navigation_1) ~= "nil", "LeaveGroupDialogScreen should be wrapped with Roact Navigation");
    local v11 = l_navigation_1.getParam("conversationId", nil);
    if v11 == nil then
        v5:warning("ConversationId is required to open {screen}");
        return nil;
    else
        return v3.createElement(v4, {
            conversationId = v11,
            onModalClose = v9.onLeaveGroupDialogClose,
            onLeaveSuccess = v9.onLeaveGroupSuccess
        });
    end;
end;
v6.didMount = function(_)
    v5:info("{screen} mounted");
end;
return v6;


local v0 = require(script:FindFirstAncestor("AppChat").Logger):new(script:GetFullName() .. ":LeaveGroupDialogScreen");
v0:setContext({
    screen = "LeaveGroupDialogScreen"
});
return v0;


local v0 = require(script:FindFirstAncestor("AppChat").Logger):new("RoactChat.ChatDetails");
v0:setContext({
    screen = "ChatDetails"
});
return v0;


local v0 = require(script:FindFirstAncestor("AppChat").Logger):new(script:GetFullName() .. ":ParticipantDialogScreen");
v0:setContext({
    screen = "ParticipantDialogScreen"
});
return v0;


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local l_ModalBottomSheet_0 = require(l_Parent_0.UIBlox).ModalBottomSheet;
local _ = require(l_script_FirstAncestor_0.types);
local v4 = require(script.Parent.Logger);
local v5 = require(l_Parent_0.Cryo);
local v6 = require(l_Parent_0.React);
local l_memo_0 = v6.memo;
local v8 = {
    conversationId = nil,
    participantId = nil,
    showRemoveUserButton = false,
    showViewProfileButton = true,
    viewProfileText = "localizedText.ViewProfile",
    reportUserText = "localizedText.ReportUser",
    removeFromGroupText = "localizedText.RemoveFromGroup",
    cancelText = "localizedText.Cancel",
    openViewProfile = function()
        v4:warning("openViewProfile was not passed to ParticipantDialog");
    end,
    openReportUser = function()
        v4:warning("openReportUser was not passed to ParticipantDialog");
    end,
    openRemoveUserDialog = function()
        v4:warning("openRemoveUserDialog was not passed to ParticipantDialog");
    end,
    onDismiss = function()
        v4:warning("onDismiss was not passed to ParticipantDialog");
    end
};
ParticipantDialog = function(v9)
    local v10 = v5.Dictionary.join(v8, v9);
    local l_conversationId_0 = v10.conversationId;
    local l_participantId_0 = v10.participantId;
    local l_showRemoveUserButton_0 = v10.showRemoveUserButton;
    local v14 = {};
    if v10.showViewProfileButton then
        table.insert(v14, {
            text = v10.viewProfileText,
            onActivated = function()
                v4:info("User activated viewProfile | userId: {}", l_participantId_0);
                v10.openViewProfile(l_participantId_0);
            end
        });
    end;
    table.insert(v14, {
        text = v10.reportUserText,
        onActivated = function()
            v4:info("User activated reportUser | userId: {}, conversationId: {}", l_participantId_0, l_conversationId_0);
            v10.openReportUser(l_participantId_0, l_conversationId_0);
        end
    });
    if l_showRemoveUserButton_0 then
        table.insert(v14, {
            text = v10.removeFromGroupText,
            onActivated = function()
                v10.openRemoveUserDialog(l_participantId_0, l_conversationId_0);
            end
        });
    end;
    table.insert(v14, {
        text = v10.cancelText,
        onActivated = function()
        end
    });
    return v6.createElement(l_ModalBottomSheet_0, {
        bottomGap = 10,
        onDismiss = v10.onDismiss,
        buttonModels = v14,
        screenWidth = 400,
        showImages = false
    });
end;
return l_memo_0(ParticipantDialog);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local _ = require(l_script_FirstAncestor_0.types);
local v3 = require(l_Parent_0.Cryo);
local v4 = require(l_Parent_0.React);
local l_memo_0 = v4.memo;
local v6 = require(l_script_FirstAncestor_0.Hooks.useAppPolicy);
local l_useLocalization_0 = require(l_Parent_0.Localization).Hooks.useLocalization;
local v8 = require(script.Parent.ParticipantDialog);
local v9 = {
    conversationId = nil,
    participantId = nil,
    showRemoveUserButton = false,
    viewProfileText = "Feature.Chat.Label.ViewProfile",
    reportUserText = "Feature.Chat.Action.ReportUser",
    removeFromGroupText = "Feature.Chat.Action.RemoveFromGroup",
    cancelText = "Feature.Chat.Action.Cancel",
    openViewProfile = nil,
    openReportUser = nil,
    openRemoveUserDialog = nil,
    onDismiss = nil
};
ParticipantDialogContainer = function(v10)
    local v11 = v3.Dictionary.join(v9, v10);
    return v4.createElement(v8, v3.Dictionary.join(v11, l_useLocalization_0({
        viewProfileText = v11.viewProfileText,
        reportUserText = v11.reportUserText,
        removeFromGroupText = v11.removeFromGroupText,
        cancelText = v11.cancelText
    }), {
        showViewProfileButton = v6(function(v12)
            return v12.getChatViewProfileOption();
        end)
    }));
end;
return l_memo_0(ParticipantDialogContainer);


local l_script_FirstAncestor_0 = script:FindFirstAncestor("AppChat");
local l_Parent_0 = l_script_FirstAncestor_0.Parent;
local v2 = require(l_script_FirstAncestor_0.EnumScreens);
local v3 = require(l_Parent_0.Roact);
local v4 = require(script.Parent.Parent.Dialogs.GenericDialogType);
local v5 = require(script.Parent.Logger);
local v6 = require(script.Parent.ParticipantDialogContainer);
local v7 = require(l_script_FirstAncestor_0.LegacyAnalytics.connectAnalytics);
local v8 = require(l_script_FirstAncestor_0.LegacyAnalytics.RoactChatAnalytics);
local v9 = v3.PureComponent:extend("ParticipantDialogScreen");
v9.defaultProps = {
    navigation = nil
};
v9.init = function(v10)
    v10.onDismiss = function()
        v10.props.navigation.goBack();
    end;
    v10.openRemoveUserDialog = function(v11, v12)
        v5:info("User activated removeFromGroup | userId: {}, conversationId: {}", v11, v12);
        v10.props.navigation.replace(v4.RemoveUserDialog, {
            conversationId = v12,
            participantId = v11
        });
    end;
    v10.openViewProfile = function(v13)
        local v14 = v10.props.navigation.getScreenProps("navigateToLuaAppPages", {})[v2.ViewUserProfile];
        if not v14 then
            v5:warning("UserProfile page was not set in navigateToLuaAppPages screenProps");
            return ;
        else
            v5:info("Navigate To UserProfile from {screen}");
            v10.props.analytics:navigate(v8.NavigationEvents.ChatDetailsProfile);
            v14(v13, {});
            return ;
        end;
    end;
    v10.openReportUser = function(v15, v16)
        local v17 = v10.props.navigation.getScreenProps("navigateToLuaAppPages", {})[v2.ReportAbuse];
        if not v17 then
            v5:warning("ReportAbuse page was not set in navigateToLuaAppPages screenProps");
            return ;
        else
            v5:info("Navigate To ReportAbuse from {screen}");
            v17(v15, v16);
            return ;
        end;
    end;
end;
v9.render = function(v18)
    local l_navigation_0 = v18.props.navigation;
    assert(type(l_navigation_0) ~= "nil", "ParticipantDialogScreen should be wrapped with Roact Navigation");
    local v20 = l_navigation_0.getParam("conversationId", nil);
    local v21 = l_navigation_0.getParam("participantId", nil);
    local v22 = l_navigation_0.getParam("showRemoveUserButton", false);
    if not (v20 ~= nil) or v21 == nil then
        v5:warning("ConversationId and participantId are required to open {screen}");
        return nil;
    else
        return v3.createElement(v6, {
            conversationId = v20,
            participantId = v21,
            showRemoveUserButton = v22,
            onDismiss = v18.onDismiss,
            openRemoveUserDialog = v18.openRemoveUserDialog,
            openReportUser = v18.openReportUser,
            openViewProfile = v18.openViewProfile
        });
    end;
end;
v9.didMount = function(_)
    v5:info("{screen} mounted");
end;
return (v7(function(v24)
    return {
        analytics = v24
    };
end)(v9));