diff --git a/core/src/navigation/LogoTitle.svelte b/core/src/navigation/LogoTitle.svelte index 407518590b..f39dd1821c 100644 --- a/core/src/navigation/LogoTitle.svelte +++ b/core/src/navigation/LogoTitle.svelte @@ -2,7 +2,7 @@ import { beforeUpdate, createEventDispatcher, onMount, getContext } from 'svelte'; import * as Header from './services/header'; import { Routing } from '../services/routing'; - import { NavigationHelpers, RoutingHelpers } from '../utilities/helpers'; + import { NavigationHelpers, RoutingHelpers, GenericHelpers } from '../utilities/helpers'; const dispatch = createEventDispatcher(); @@ -15,15 +15,22 @@ export let selectedItem; export let defaultTitle; export let appSwitcherItems; + export let itemRenderer; export let pathParams; export let subTitle; export let defaultSubTitle; export let pathData; export let addNavHrefForAnchor; + let customItemRenderer__slotContainer; let previousPathData; let getUnsavedChangesModalPromise = getContext('getUnsavedChangesModalPromise'); let getTranslation = getContext('getTranslation'); let store = getContext('store'); + const appSwitcherApiObj = { + closeDropDown: () => { + toggleDropdownState('appSwitcherPopover'); + } + } //TODO refactor const getComponentWrapper = () => { @@ -33,6 +40,7 @@ pathData, pathParams, appSwitcherItems, + itemRenderer, selectedItem, defaultTitle, title, @@ -51,6 +59,8 @@ pathData = obj.pathData; } else if (prop === 'appSwitcherItems') { appSwitcherItems = obj.appSwitcherItems; + } else if (prop === 'itemRenderer') { + itemRenderer = obj.itemRenderer; } else if (prop === 'pathParams') { pathParams = obj.pathParams; } else if (prop === 'selectedItem') { @@ -90,6 +100,15 @@ } }); + function renderCustomList(item, slot, index){ + setTimeout(()=>{ + if(slot){ + itemRenderer(item, slot.children[index], appSwitcherApiObj); + } + }); + return ''; + } + export function goTo(path) { getUnsavedChangesModalPromise().then(() => { Routing.navigateTo(RoutingHelpers.applyPathParams(path, pathParams)); @@ -138,8 +157,9 @@ ? 'fd-shellbar__logo--image-replaced' : ''} {hasLogo ? 'lui-customlogo' : ''}" aria-label={title} - on:click={(event) => { - NavigationHelpers.handleNavAnchorClickedWithoutMetaKey(event) && goTo('/'); + on:click={event => { + NavigationHelpers.handleNavAnchorClickedWithoutMetaKey(event) && + goTo('/'); }} href="/" role="button" @@ -170,8 +190,9 @@ { - NavigationHelpers.handleNavAnchorClickedWithoutMetaKey(event) && goTo('/'); + on:click={event => { + NavigationHelpers.handleNavAnchorClickedWithoutMetaKey(event) && + goTo('/'); }} href="/" > @@ -191,8 +212,9 @@ {#if addNavHrefForAnchor} {#if appSwitcherItems && appSwitcherItems.length === 1} + href={getRouteLink(appSwitcherItems[0])} + class="fd-shellbar__title lui-shellbar-single-app-title" + > {$getTranslation(appSwitcherItems[0].title)} @@ -262,7 +284,10 @@ id="appSwitcherPopover" >