40 lines
1.3 KiB
JavaScript
40 lines
1.3 KiB
JavaScript
import analyticsMixin from "@/mixins/analytics-mixin";
|
|
import { routeData } from "@/router/constants/routes";
|
|
import router from "@/router";
|
|
import store from "@/store";
|
|
import { storeActions } from "@/constants/store-actions";
|
|
import { deleteFunnelCookie } from "@/helpers/heritage-integration/cookie-helper";
|
|
import experimentMixin from "../../mixins/experiment-mixin";
|
|
|
|
export async function handleSoftError(errorPayload, forceRestart = false) {
|
|
if (forceRestart) {
|
|
await store.dispatch(storeActions.RESET_STATE);
|
|
deleteFunnelCookie();
|
|
}
|
|
|
|
analyticsMixin.methods.pushPageErrorToDataLayer(errorPayload);
|
|
|
|
router.push({
|
|
name: routeData.ERROR.name,
|
|
});
|
|
}
|
|
|
|
export async function handleHardError(errorPayload) {
|
|
try {
|
|
const isInStaticErrorExperiment = experimentMixin.methods.hasSettingEqualTo(
|
|
"UseStaticErrorPage",
|
|
"true"
|
|
);
|
|
|
|
if (isInStaticErrorExperiment) {
|
|
analyticsMixin?.methods?.pushPageErrorToDataLayer(errorPayload);
|
|
window.top.location = "/fmg/static/error";
|
|
return;
|
|
} else {
|
|
await handleSoftError(errorPayload, true);
|
|
return;
|
|
}
|
|
} finally {
|
|
await handleSoftError(errorPayload, true);
|
|
}
|
|
}
|