#pragma once

#include "CoreMinimal.h"
#include "BaseFilterWidget.h"
#include "OnChallengeFiltersClearedDelegate.h"
#include "OnChallengeFiltersChangedDelegate.h"
#include "ESortingOption.h"
#include "ESortingOrder.h"
#include "CoreChallengeFilterWidget.generated.h"

class UCoreButtonWidget;

UCLASS(Blueprintable, EditInlineNew)
class DBDUIVIEWSCORE_API UCoreChallengeFilterWidget : public UBaseFilterWidget
{
	GENERATED_BODY()

protected:
	UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintCallable)
	FOnChallengeFiltersClearedDelegate _onClearFiltersClicked;

	UPROPERTY(EditAnywhere, BlueprintReadWrite, BlueprintCallable)
	FOnChallengeFiltersChangedDelegate _onFiltersChanged;

protected:
	UFUNCTION(BlueprintCallable)
	void OnSortingChanged(ESortingOption sorting, ESortingOrder order);

	UFUNCTION(BlueprintCallable)
	void OnClearFiltersClicked(UCoreButtonWidget* buttonTarget);

public:
	UCoreChallengeFilterWidget();
};

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