From 125c3c1c66ae0ba3f9a5615fea86e736c4e47720 Mon Sep 17 00:00:00 2001 From: Thorsten Sommer Date: Sat, 26 Apr 2025 18:16:58 +0200 Subject: [PATCH] Add DisabledActionParam to ButtonData for conditional button disabling --- .../Assistants/AssistantBase.razor | 4 ++-- app/MindWork AI Studio/Tools/ButtonData.cs | 17 ++++++++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/app/MindWork AI Studio/Assistants/AssistantBase.razor b/app/MindWork AI Studio/Assistants/AssistantBase.razor index 38d4b8b8..1451da41 100644 --- a/app/MindWork AI Studio/Assistants/AssistantBase.razor +++ b/app/MindWork AI Studio/Assistants/AssistantBase.razor @@ -97,14 +97,14 @@ { case ButtonData buttonData when !string.IsNullOrWhiteSpace(buttonData.Tooltip): - + @buttonData.Text break; case ButtonData buttonData: - + @buttonData.Text break; diff --git a/app/MindWork AI Studio/Tools/ButtonData.cs b/app/MindWork AI Studio/Tools/ButtonData.cs index 3d05dee8..da0c69c3 100644 --- a/app/MindWork AI Studio/Tools/ButtonData.cs +++ b/app/MindWork AI Studio/Tools/ButtonData.cs @@ -1,6 +1,21 @@ namespace AIStudio.Tools; -public readonly record struct ButtonData(string Text, string Icon, Color Color, string Tooltip, Func AsyncAction) : IButtonData +public readonly record struct ButtonData(string Text, string Icon, Color Color, string Tooltip, Func AsyncAction, Func? DisabledActionParam) : IButtonData { public ButtonTypes Type => ButtonTypes.BUTTON; + + public Func DisabledAction + { + get + { + var data = this; + return () => + { + if (data.DisabledActionParam is null) + return false; + + return data.DisabledActionParam(); + }; + } + } } \ No newline at end of file