diff --git a/src/helpers/date-helper.js b/src/helpers/date-helper.js index 59ffa5745..f59ac7ba8 100644 --- a/src/helpers/date-helper.js +++ b/src/helpers/date-helper.js @@ -1,3 +1,15 @@ +// .NET serializes an unset DateTime as DateTime.MinValue ("0001-01-01T00:00:00"). +// Treat that as "no date" so it doesn't masquerade as a real, validation-passing value. +const DOTNET_MIN_DATE_PREFIX = "0001-01-01"; + +export function isDotNetMinDate(value) { + return typeof value === "string" && value.startsWith(DOTNET_MIN_DATE_PREFIX); +} + +export function normalizeDotNetMinDate(value) { + return isDotNetMinDate(value) ? null : value; +} + export function getDateDifferenceInDays(startDate, endDate) { // Create date objects from the input strings var date1 = new Date(endDate); diff --git a/src/store/index.js b/src/store/index.js index 509c34093..fc786d3b9 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -40,7 +40,7 @@ import { getPromoCodeWithoutBundleIdentifier, removeCurrentlyActivePromoCodesFromInactivePromos, } from "@/helpers/promotions-helper"; -import { getDateDifferenceInDays } from "@/helpers/date-helper"; +import { getDateDifferenceInDays, normalizeDotNetMinDate } from "@/helpers/date-helper"; import sharedMutations from "./vuex-shared-mutations/vuexSharedMutations"; import { coverageStatus, @@ -848,7 +848,9 @@ export const mutations = { state.order.damage.glassToReplace = sessionInformation.order.damage.glassToReplace; state.order.damage.isRepair = sessionInformation.order.damage.isRepair; state.order.damage.numberOfChips = sessionInformation.order.damage.numberOfChips; - state.order.damage.dateOfLoss = sessionInformation.order.damage?.dateOfLoss; + state.order.damage.dateOfLoss = normalizeDotNetMinDate( + sessionInformation.order.damage?.dateOfLoss + ); state.order.damage.damageCause = sessionInformation.order.damage?.damageCause; state.order.damage.partQuestionAnswers =