diff --git a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/FamilyHubsUiOptions.cs b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/FamilyHubsUiOptions.cs
index 700cb77e3..3396fa8a3 100644
--- a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/FamilyHubsUiOptions.cs
+++ b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/FamilyHubsUiOptions.cs
@@ -55,6 +55,8 @@ public FamilyHubsUiOptions GetAlternative(string serviceName)
return alternativeFamilyHubsUi;
}
+ public bool IsError { get; set; }
+
///
/// Returns an absolute URL from the Urls config section/dictionary, with an optional relativeUrl applied to the base..
///
diff --git a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/IFamilyHubsUiOptions.cs b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/IFamilyHubsUiOptions.cs
index 6415e66fa..09d1b1288 100644
--- a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/IFamilyHubsUiOptions.cs
+++ b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/FamilyHubsUi/Options/IFamilyHubsUiOptions.cs
@@ -29,6 +29,7 @@ public interface IFamilyHubsUiOptions
FooterOptions Footer { get; set; }
FamilyHubsUiOptions GetAlternative(string serviceName);
+ bool IsError { get; set; }
Uri Url(TUrlKeyEnum baseUrl, string? relativeUrl = null)
where TUrlKeyEnum : struct, Enum;
diff --git a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Header/IHasErrorStatePageModel.cs b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Header/IHasErrorStatePageModel.cs
new file mode 100644
index 000000000..3eaf485a8
--- /dev/null
+++ b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Header/IHasErrorStatePageModel.cs
@@ -0,0 +1,8 @@
+using FamilyHubs.SharedKernel.Razor.ErrorNext;
+
+namespace FamilyHubs.SharedKernel.Razor.Header;
+
+public interface IHasErrorStatePageModel
+{
+ public IErrorState Errors { get; }
+}
diff --git a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Layout/ViewStart.cs b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Layout/ViewStart.cs
index acb5df682..65dc79c74 100644
--- a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Layout/ViewStart.cs
+++ b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Layout/ViewStart.cs
@@ -1,6 +1,7 @@
using FamilyHubs.SharedKernel.Razor.AlternativeServices;
using FamilyHubs.SharedKernel.Razor.FamilyHubsUi;
using FamilyHubs.SharedKernel.Razor.FamilyHubsUi.Extensions;
+using FamilyHubs.SharedKernel.Razor.Header;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.AspNetCore.Mvc.ViewFeatures;
@@ -20,6 +21,12 @@ public static void InitialiseFamilyHubs(FamilyHubsLayoutModel familyHubsLayoutMo
familyHubsLayoutModel.FamilyHubsUiOptions = Options.Create(altFamilyHubsUiOptions);
}
}
+
+ if (pageModel is IHasErrorStatePageModel hasErrorStatePageModel)
+ {
+ familyHubsLayoutModel.FamilyHubsUiOptions.Value.IsError = hasErrorStatePageModel.Errors.HasErrors;
+ }
+
viewData.SetFamilyHubsLayoutModel(familyHubsLayoutModel);
}
}
\ No newline at end of file
diff --git a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Pages/Shared/_Head.cshtml b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Pages/Shared/_Head.cshtml
index adb511e81..0789b8268 100644
--- a/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Pages/Shared/_Head.cshtml
+++ b/src/shared/web-components/src/FamilyHubs.SharedKernel.Razor/Pages/Shared/_Head.cshtml
@@ -4,7 +4,7 @@
-@ViewData["Title"] - @Model.ServiceName - GOV.UK
+@if (Model.IsError) { Error: }@ViewData["Title"] - @Model.ServiceName - GOV.UK
diff --git a/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/My-Account/ChangeName.cshtml.cs b/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/My-Account/ChangeName.cshtml.cs
index 8d3f5bf19..a5185ecb8 100644
--- a/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/My-Account/ChangeName.cshtml.cs
+++ b/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/My-Account/ChangeName.cshtml.cs
@@ -4,11 +4,12 @@
using FamilyHubs.Referral.Web.Pages.Shared;
using FamilyHubs.SharedKernel.Identity;
using FamilyHubs.SharedKernel.Razor.ErrorNext;
+using FamilyHubs.SharedKernel.Razor.Header;
using Microsoft.AspNetCore.Mvc;
namespace FamilyHubs.Referral.Web.Pages.My_Account;
-public class ChangeNameModel : HeaderPageModel
+public class ChangeNameModel : HeaderPageModel, IHasErrorStatePageModel
{
private readonly IIdamsClient _idamsClient;
diff --git a/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/Shared/ProfessionalReferralCacheModel.cs b/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/Shared/ProfessionalReferralCacheModel.cs
index 61d5af880..4e2937543 100644
--- a/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/Shared/ProfessionalReferralCacheModel.cs
+++ b/src/ui/connect-ui/src/FamilyHubs.Referral.Web/Pages/Shared/ProfessionalReferralCacheModel.cs
@@ -2,11 +2,12 @@
using FamilyHubs.Referral.Core.Models;
using FamilyHubs.Referral.Web.Errors;
using FamilyHubs.SharedKernel.Razor.ErrorNext;
+using FamilyHubs.SharedKernel.Razor.Header;
using Microsoft.AspNetCore.Mvc;
namespace FamilyHubs.Referral.Web.Pages.Shared;
-public class ProfessionalReferralCacheModel : ProfessionalReferralModel
+public class ProfessionalReferralCacheModel : ProfessionalReferralModel, IHasErrorStatePageModel
{
// we could stop passing this to get/set
public ConnectionRequestModel? ConnectionRequestModel { get; set; }