Stream Chat Unreal SDK
Loading...
Searching...
No Matches
ChannelListWidget.h
1// Copyright 2022 Stream.IO, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "Common/SPaginateListWidget.h"
6#include "Components/NativeWidgetHost.h"
7#include "CoreMinimal.h"
8#include "NewChatChannelStatusWidget.h"
9#include "StreamWidget.h"
10#include "SummaryChannelStatusWidget.h"
11#include "Team/NewChatWidget.h"
12
13#include "ChannelListWidget.generated.h"
14
18UCLASS()
19class STREAMCHATUI_API UChannelListWidget final : public UStreamWidget
20{
21 GENERATED_BODY()
22
23public:
24 UChannelListWidget();
25
26protected:
27 UPROPERTY(meta = (BindWidget))
28 UImage* Divider;
29
30 UPROPERTY(meta = (BindWidget))
31 UNativeWidgetHost* ListView;
32
34 UPROPERTY(EditAnywhere, Category = Pagination)
35 int32 Limit = 10;
36
37 UPROPERTY(EditAnywhere, Category = Defaults)
38 bool bAutoSelectFirstChannel = true;
39 UPROPERTY(EditAnywhere, NoClear, Category = Defaults)
40 TSubclassOf<USummaryChannelStatusWidget> ChannelStatusWidgetClass = USummaryChannelStatusWidget::StaticClass();
41 UPROPERTY(EditAnywhere, NoClear, Category = Defaults)
42 TSubclassOf<UNewChatChannelStatusWidget> NewChatChannelStatusWidgetClass = UNewChatChannelStatusWidget::StaticClass();
43
44private:
45 virtual void NativePreConstruct() override;
46 virtual void NativeConstruct() override;
47 virtual void NativeDestruct() override;
48 virtual void ReleaseSlateResources(bool bReleaseChildren) override;
49
50 void Paginate(const EPaginationDirection Direction, const TFunction<void()> Callback);
51 UWidget* CreateChannelWidget(UChatChannel* const&);
52
53 void RebuildChannelList();
54
55 UFUNCTION()
56 void OnChannelSelected(UChatChannel* ClickedChannel);
57 UFUNCTION()
58 void OnChannelsUpdated(const TArray<UChatChannel*>& InChannels);
59 UFUNCTION()
60 void OnBack();
61
62 UPROPERTY(Transient)
63 UChatChannel* CurrentChannel;
64
65 TSharedPtr<SPaginateListWidget<UChatChannel*>> PaginateListWidget;
66};
The client-side representation of a Stream Chat channel.
Definition: ChatChannel.h:74