portal-www
Version:
Nova Portal Website. Based on Next starter by Ueno
86 lines (73 loc) • 2.89 kB
text/typescript
import { IconMapper, IconType, sprinkleVars } from '@nova-hf/ui';
import {
MobileServiceRequest,
OptionVariant,
ProvisionedSubscriptionVariant,
SignupContract,
} from 'typings/graphql';
const allIcons = { ...IconMapper[48], ...IconMapper[24] };
export const isThemeColorType = (color: unknown): color is sprinkleVars.ThemeColorType => {
return typeof color === 'string' && sprinkleVars.themeColors.hasOwnProperty(color);
};
export const parseThemeColor = (
maybeThemeColor: string,
fallbackColor?: sprinkleVars.ThemeColorType,
): sprinkleVars.ThemeColorType => {
if (isThemeColorType(maybeThemeColor)) {
return maybeThemeColor;
} else if (fallbackColor) return fallbackColor;
throw new Error('This is not of type ThemeColorType');
};
export const isMainColorType = (color: unknown): color is sprinkleVars.MainColorType => {
return typeof color === 'string' && sprinkleVars.mainColors.hasOwnProperty(color);
};
export const parseMainColor = (
maybeMainColor: string,
fallbackColor?: sprinkleVars.MainColorType,
): sprinkleVars.MainColorType => {
if (isMainColorType(maybeMainColor)) {
return maybeMainColor;
} else if (fallbackColor) return fallbackColor;
throw new Error('This is not of type MainColorType');
};
export const isBoxShadowType = (
shadowColor: unknown,
): shadowColor is sprinkleVars.BoxShadowType => {
return typeof shadowColor === 'string' && sprinkleVars.boxShadows.hasOwnProperty(shadowColor);
};
export const parseBoxShadowColor = (
maybeBoxShadow: string,
fallbackShadow?: sprinkleVars.BoxShadowType,
): sprinkleVars.BoxShadowType => {
if (isBoxShadowType(maybeBoxShadow)) {
return maybeBoxShadow;
} else if (fallbackShadow) return fallbackShadow;
throw new Error('This is not of type BoxShadowType');
};
export const isIcon = (icon: unknown): icon is IconType => {
return typeof icon === 'string' && allIcons.hasOwnProperty(icon);
};
export const parseIcon = (maybeIcon: string, fallbackIcon?: IconType): IconType => {
if (isIcon(maybeIcon)) {
return maybeIcon;
} else if (fallbackIcon) return fallbackIcon;
throw new Error('This is not of type IconType');
};
export const isProvisionedSubscriptionVariant = (variant: {
__typename?: string;
}): variant is ProvisionedSubscriptionVariant => {
return variant?.__typename === 'ProvisionedSubscriptionVariant';
};
export const isOptionVariant = (variant: { __typename?: string }): variant is OptionVariant => {
return variant?.__typename === 'OptionVariant';
};
export const isMobileServiceRequest = (
service: { __typename?: string } | undefined | null,
): service is MobileServiceRequest => {
return service?.__typename === 'MobileServiceRequest';
};
export const isSignupContract = (
contract: { __typename?: string } | undefined | null,
): contract is SignupContract => {
return contract?.__typename === 'SignupContract';
};