diff --git a/src/utils/next.ts b/src/utils/next.ts index 7a57da808..f96bbb6e0 100644 --- a/src/utils/next.ts +++ b/src/utils/next.ts @@ -7,8 +7,7 @@ import { } from 'next'; import { AppSession } from './types'; -import { getBrowserLanguage } from './locale'; -import { getMessages } from './locale'; +import { getBrowserLanguage, getMessages } from './locale'; import getUserMemberships from './getUserMemberships'; import requiredEnvVar from './requiredEnvVar'; import { stringToBool } from './stringUtils'; @@ -17,6 +16,7 @@ import { ApiFetch, createApiFetch } from './apiFetch'; import { ZetkinSession, ZetkinUser } from './types/zetkin'; import { hasFeature } from './featureFlags'; import { EnvVars } from 'core/env/Environment'; +import { omitUndefined } from './omitUndefined'; //TODO: Create module definition and revert to import. // eslint-disable-next-line @typescript-eslint/no-var-requires @@ -205,15 +205,15 @@ export const scaffold = if (hasProps(result)) { result.props = { ...result.props, - envVars: { + envVars: omitUndefined({ FEAT_AREAS: process.env.FEAT_AREAS, INSTANCE_OWNER_HREF: process.env.INSTANCE_OWNER_HREF, INSTANCE_OWNER_NAME: process.env.INSTANCE_OWNER_NAME, MUIX_LICENSE_KEY: process.env.MUIX_LICENSE_KEY, ZETKIN_APP_DOMAIN: process.env.ZETKIN_APP_DOMAIN, - ZETKIN_GEN2_ORGANIZE_URL: process.env.ZETKIN_GEN2_ORGANZE_URL, + ZETKIN_GEN2_ORGANIZE_URL: process.env.ZETKIN_GEN2_ORGANIZE_URL, ZETKIN_PRIVACY_POLICY_LINK: process.env.ZETKIN_PRIVACY_POLICY_LINK, - }, + }), lang, messages, user: ctx.user, diff --git a/src/utils/omitUndefined.ts b/src/utils/omitUndefined.ts new file mode 100644 index 000000000..96c8b3a6d --- /dev/null +++ b/src/utils/omitUndefined.ts @@ -0,0 +1,11 @@ +import { isUndefined, omitBy } from 'lodash'; + +/** + * Omits properties with `undefined` values from an object. + * + * @param obj - The object to process. + * @returns A new object with all properties that have `undefined` values removed. + */ +export const omitUndefined = ( + obj: Record +): Record => omitBy(obj, isUndefined);