From 312a860e324ac9a5e26494ec0e0dbd5bcf37bc37 Mon Sep 17 00:00:00 2001 From: Sonic198 Date: Sun, 2 Jul 2023 20:30:00 +0200 Subject: [PATCH] Allow configuration of Altair UI Settings (#1044) --- src/Ui.Altair/AltairOptions.cs | 6 ++++++ src/Ui.Altair/Internal/AltairPageModel.cs | 3 ++- src/Ui.Altair/Internal/altair.cshtml | 1 + .../netcoreapp31/GraphQL.Server.Ui.Altair.approved.txt | 1 + .../netstandard20/GraphQL.Server.Ui.Altair.approved.txt | 1 + 5 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Ui.Altair/AltairOptions.cs b/src/Ui.Altair/AltairOptions.cs index 2fed87fe..a6d99e91 100644 --- a/src/Ui.Altair/AltairOptions.cs +++ b/src/Ui.Altair/AltairOptions.cs @@ -25,6 +25,12 @@ public class AltairOptions /// public Dictionary? SubscriptionsPayload { get; set; } + /// + /// Altair UI settings. + /// Available settings + /// + public Dictionary? Settings { get; set; } + /// /// Gets or sets a Stream function for retrieving the Altair GraphQL UI page. /// diff --git a/src/Ui.Altair/Internal/AltairPageModel.cs b/src/Ui.Altair/Internal/AltairPageModel.cs index 194470f5..5acb7c8e 100644 --- a/src/Ui.Altair/Internal/AltairPageModel.cs +++ b/src/Ui.Altair/Internal/AltairPageModel.cs @@ -37,7 +37,8 @@ public string Render() .Replace("@Model.GraphQLEndPoint", StringEncode(_options.GraphQLEndPoint)) .Replace("@Model.SubscriptionsEndPoint", StringEncode(_options.SubscriptionsEndPoint)) .Replace("@Model.Headers", JsonSerialize(headers)) - .Replace("@Model.SubscriptionsPayload", JsonSerialize(_options.SubscriptionsPayload)); + .Replace("@Model.SubscriptionsPayload", JsonSerialize(_options.SubscriptionsPayload)) + .Replace("@Model.Settings", JsonSerialize(_options.Settings)); // Here, fully-qualified, absolute and relative URLs are supported for both the // GraphQLEndPoint and SubscriptionsEndPoint. Those paths can be passed unmodified diff --git a/src/Ui.Altair/Internal/altair.cshtml b/src/Ui.Altair/Internal/altair.cshtml index b4fdcb84..04080ab9 100644 --- a/src/Ui.Altair/Internal/altair.cshtml +++ b/src/Ui.Altair/Internal/altair.cshtml @@ -61,6 +61,7 @@ subscriptionsEndpoint: getSubscriptionsEndPoint(), initialHeaders: @Model.Headers, initialSubscriptionsPayload: @Model.SubscriptionsPayload, + initialSettings: @Model.Settings, }; window.addEventListener("load", function() { diff --git a/tests/ApiApprovalTests/netcoreapp31/GraphQL.Server.Ui.Altair.approved.txt b/tests/ApiApprovalTests/netcoreapp31/GraphQL.Server.Ui.Altair.approved.txt index 0894bfb1..a83c63c3 100644 --- a/tests/ApiApprovalTests/netcoreapp31/GraphQL.Server.Ui.Altair.approved.txt +++ b/tests/ApiApprovalTests/netcoreapp31/GraphQL.Server.Ui.Altair.approved.txt @@ -18,6 +18,7 @@ namespace GraphQL.Server.Ui.Altair public System.Collections.Generic.Dictionary? Headers { get; set; } public System.Func IndexStream { get; set; } public System.Func PostConfigure { get; set; } + public System.Collections.Generic.Dictionary? Settings { get; set; } public string SubscriptionsEndPoint { get; set; } public System.Collections.Generic.Dictionary? SubscriptionsPayload { get; set; } } diff --git a/tests/ApiApprovalTests/netstandard20/GraphQL.Server.Ui.Altair.approved.txt b/tests/ApiApprovalTests/netstandard20/GraphQL.Server.Ui.Altair.approved.txt index 0167eb6c..6d87b0f9 100644 --- a/tests/ApiApprovalTests/netstandard20/GraphQL.Server.Ui.Altair.approved.txt +++ b/tests/ApiApprovalTests/netstandard20/GraphQL.Server.Ui.Altair.approved.txt @@ -18,6 +18,7 @@ namespace GraphQL.Server.Ui.Altair public System.Collections.Generic.Dictionary? Headers { get; set; } public System.Func IndexStream { get; set; } public System.Func PostConfigure { get; set; } + public System.Collections.Generic.Dictionary? Settings { get; set; } public string SubscriptionsEndPoint { get; set; } public System.Collections.Generic.Dictionary? SubscriptionsPayload { get; set; } }