#pragma once

#include "CoreMinimal.h"
#include "LobbySubPresenter.h"
#include "UObject/SoftObjectPtr.h"
#include "PlayerSocialOptionViewData.h"
#include "LobbyPlayerListSubPresenter.generated.h"

class UUserWidget;

UCLASS(Blueprintable)
class DBDUIPRESENTERS_API ULobbyPlayerListSubPresenter : public ULobbySubPresenter
{
	GENERATED_BODY()

public:
	UPROPERTY(EditAnywhere, BlueprintReadWrite)
	TSoftClassPtr<UUserWidget> PlayerListWidgetClass;

protected:
	UFUNCTION(BlueprintCallable)
	void OnPlayerStatusClicked(const FString& playerId);

	UFUNCTION(BlueprintCallable)
	void OnPlayerSocialOptionClicked(const FPlayerSocialOptionViewData& playerSocialOptionData);

public:
	UFUNCTION(BlueprintCallable)
	void OnInvitePlayer();

public:
	ULobbyPlayerListSubPresenter();
};

FORCEINLINE uint32 GetTypeHash(const ULobbyPlayerListSubPresenter) { return 0; }
