portal-www
Version:
Nova Portal Website. Based on Next starter by Ueno
158 lines (140 loc) • 4.36 kB
text/typescript
import { IconType } from '@nova-hf/ui';
import { ServiceType } from 'typings/graphql';
export type NavItem = {
id: string;
text: string;
href: string;
icon?: IconType;
openInNewTab?: boolean;
};
// Navigation for /thjonustur/{service-id}/...
export function getServiceShortcuts(
serviceType: string,
customerId: string,
serviceId: string,
subscriptionType?: string,
parentId?: string,
): NavItem[] {
/* Hraðleið */
const hradleidParent: NavItem = {
id: 'changePack',
text: 'common:navigation.shortCuts.changePack',
href: parentId ? `/beta/${customerId}/askrift/${parentId}` : `/${customerId}/thjonustur`,
icon: 'mobileGlobe',
};
/* Top Level Navigation */
const settingsPayment: NavItem = {
id: 'settingsPayment',
text: 'common:navigation.shortCuts.paymentType',
href: `/beta/${customerId}/stillingar/payment`,
icon: 'creditcard',
};
/* Settings */
const settingsMove: NavItem = {
id: 'move',
text: 'stillingar:sideMenu.move',
href: `/beta/${customerId}/thjonustur/${serviceId}/flutningur`,
icon: 'refresh',
};
const settingsUser: NavItem = {
id: 'user',
text: 'stillingar:sideMenu.user',
href: `/beta/${customerId}/thjonustur/${serviceId}/stillingar?settings=user`,
icon: 'profile',
};
/* Help links */
const fiberSingleHelp: NavItem = {
id: 'fiberSingleHelp',
text: 'common:navigation.shortCuts.help',
href: 'https://support.nova.is/hc/is/sections/360003360897-Lj%C3%B3slei%C3%B0ari',
openInNewTab: true,
icon: 'info',
};
const fiberAlltSamanHelp: NavItem = {
id: 'fiberAlltSamanHelp',
text: 'common:navigation.shortCuts.help',
href: 'https://support.nova.is/hc/is/sections/360003360917-AlltSaman',
openInNewTab: true,
icon: 'info',
};
const fiberHradleidHelp: NavItem = {
id: 'fiberHradleidHelp',
text: 'common:navigation.shortCuts.help',
href: 'https://support.nova.is/hc/is/sections/4406980818705-Hra%C3%B0lei%C3%B0',
openInNewTab: true,
icon: 'info',
};
const novaTVHelp: NavItem = {
id: 'novaTVHelp',
text: 'common:navigation.shortCuts.helpTwo',
href: 'https://support.nova.is/hc/is/categories/360002584798-Nova-TV',
openInNewTab: true,
icon: 'novaLogo',
};
/* Signup links */
const accespointSignup: NavItem = {
id: 'accespointSignup',
text: 'common:navigation.shortCuts.accesspoint',
href: 'https://www.nova.is/netid/kastarinn',
openInNewTab: true,
icon: 'wifi',
};
const alltsamanSignup: NavItem = {
id: 'alltsamanSignup',
text: 'common:navigation.shortCuts.alltsaman',
href: 'https://www.nova.is/alltsaman',
openInNewTab: true,
icon: 'novaLogo',
};
const hradleidSignup: NavItem = {
id: 'hradleidSignup',
text: 'common:navigation.shortCuts.hradleid',
href: 'https://www.nova.is/hradleid',
openInNewTab: true,
icon: 'novaLogo',
};
/* NovaTV links */
const buySubscription: NavItem = {
id: 'buySubscription',
text: 'common:navigation.shortCuts.buySubscription',
href: 'https://www.nova.is/nova-tv/kaupa',
openInNewTab: true,
icon: 'userCircle',
};
const events: NavItem = {
id: 'events',
text: 'common:navigation.shortCuts.events',
href: 'https://www.novatv.is/page/vidburdir',
openInNewTab: true,
icon: 'wallet',
};
switch (serviceType) {
case ServiceType.Mobile:
return [alltsamanSignup];
break;
case ServiceType.MobileInternet:
return [alltsamanSignup];
break;
case ServiceType.Landline:
return [alltsamanSignup];
break;
case ServiceType.Fiber && subscriptionType === 'hradljos':
return [settingsMove, settingsUser, hradleidParent, fiberHradleidHelp];
break;
case ServiceType.Fiber && subscriptionType === 'alltsaman':
return [settingsMove, fiberAlltSamanHelp, accespointSignup, settingsPayment];
break;
case ServiceType.Fiber && subscriptionType === 'hradleid':
return [settingsMove, settingsUser, accespointSignup, hradleidSignup];
break;
case ServiceType.Fiber:
return [settingsMove, fiberSingleHelp, accespointSignup, alltsamanSignup];
break;
case ServiceType.Tv:
return [buySubscription, events, novaTVHelp];
break;
default:
return [];
break;
}
}