UNPKG

ih-black-lion

Version:

State handler for Arus projects

43 lines (39 loc) 1.25 kB
const checkQueryString = (url) => { if (/\?url=/.test(url)) { return decodeURIComponent(url.split('=')[1]); } return url; }; function formatItem(item) { const openInNew = item.isNewWindow === 'True'; const url = openInNew ? checkQueryString(item.AbsolutePortalURL) : item.AbsolutePortalURL; return { label: item.Label, description: item.Description, url, openInNew, imageUrl: item.ImageURL, }; } export default class NavigationCollection { constructor(obj) { this.name = obj.NavCollection.Name; this.label = obj.NavCollection.Label; this.contents = obj.NavCollection.Contents.NavItem; if (this.contents) this.parseContents(); } parseContents() { if (!Array.isArray(this.contents)) { this.contents = [this.contents]; } this.contents = this.contents .filter(item => (item.Type === 'Shortcut' && item.AbsolutePortalURL) || (item.Type === 'Folder' && item.NavItem)) .map(content => { if (content.NavItem) { const navItem = Array.isArray(content.NavItem) ? content.NavItem : [content.NavItem]; return { label: content.Label, contents: navItem.map(item => formatItem(item)) }; } return formatItem(content); }); } }