diff --git a/package.json b/package.json index 605cbb2b0..02f4a2ec9 100644 --- a/package.json +++ b/package.json @@ -119,7 +119,7 @@ "tc-auth-lib": "topcoder-platform/tc-auth-lib#1.0.26", "turndown": "^4.0.2", "typescript": "^4.8.4", - "universal-navigation": "https://github.com/topcoder-platform/universal-navigation", + "universal-navigation": "https://github.com/topcoder-platform/universal-navigation#9e62ddc61d", "uuid": "^9.0.0" }, "devDependencies": { diff --git a/src/apps/platform/src/components/app-header/AppHeader.tsx b/src/apps/platform/src/components/app-header/AppHeader.tsx index c16722fb4..ca0d7dd7d 100644 --- a/src/apps/platform/src/components/app-header/AppHeader.tsx +++ b/src/apps/platform/src/components/app-header/AppHeader.tsx @@ -37,7 +37,7 @@ interface NavigationRequest { const AppHeader: FC<{}> = () => { - const { activeToolName, activeToolRoute }: RouterContextData = useContext(routerContext) + const { activeToolName, activeToolRoute, routeNavConfigs }: RouterContextData = useContext(routerContext) const { profile, initialized: profileReady }: ProfileContextData = useContext(profileContext) const { logoutUrl }: ConfigContextValue = useConfigContext() const [ready, setReady]: [boolean, Dispatch>] = useState(false) @@ -95,6 +95,7 @@ const AppHeader: FC<{}> = () => { sprig: 'disable', }, onReady() { setReady(true) }, + showSalesCta: routeNavConfigs?.showSalesCta, signIn() { window.location.href = authUrlLogin() }, signOut() { window.location.href = logoutUrl }, signUp() { window.location.href = authUrlSignup() }, @@ -112,6 +113,7 @@ const AppHeader: FC<{}> = () => { userInfo, profileReady, logoutUrl, + routeNavConfigs, ]) // update uni-nav's tool details @@ -121,6 +123,7 @@ const AppHeader: FC<{}> = () => { 'update', navElementId, { + showSalesCta: routeNavConfigs?.showSalesCta, toolName: activeToolName, toolRoot: activeToolRoute, }, @@ -129,6 +132,7 @@ const AppHeader: FC<{}> = () => { activeToolName, activeToolRoute, navElementId, + routeNavConfigs, ]) // update uni-nav's user/auth details diff --git a/src/apps/talent-search/src/talent-search.routes.tsx b/src/apps/talent-search/src/talent-search.routes.tsx index 7764a7aca..fbc7e5cb6 100644 --- a/src/apps/talent-search/src/talent-search.routes.tsx +++ b/src/apps/talent-search/src/talent-search.routes.tsx @@ -59,6 +59,9 @@ export const talentSearchRoutes: ReadonlyArray = [ domain: AppSubdomain.talentSearch, element: , id: toolTitle, + navConfig: { + showSalesCta: true, + }, rolesRequired: isAdminRestricted ? [ UserRole.administrator, ] : undefined, diff --git a/src/libs/core/lib/router/index.ts b/src/libs/core/lib/router/index.ts index ca8705c33..f5ccd7055 100644 --- a/src/libs/core/lib/router/index.ts +++ b/src/libs/core/lib/router/index.ts @@ -2,4 +2,5 @@ export * from './router-context' export * from './routes-functions' export * from './platform-route.model' export * from './router.utils' +export * from './route-nav-config.model' export * from './rewrite-route' diff --git a/src/libs/core/lib/router/platform-route.model.ts b/src/libs/core/lib/router/platform-route.model.ts index 595b214fd..83c63a558 100644 --- a/src/libs/core/lib/router/platform-route.model.ts +++ b/src/libs/core/lib/router/platform-route.model.ts @@ -1,3 +1,5 @@ +import { RouteNavConfig } from './route-nav-config.model' + export interface PlatformRoute { domain?: string alternativePaths?: Array @@ -9,4 +11,5 @@ export interface PlatformRoute { rolesRequired?: Array route: string title?: string + navConfig?: RouteNavConfig } diff --git a/src/libs/core/lib/router/route-nav-config.model.ts b/src/libs/core/lib/router/route-nav-config.model.ts new file mode 100644 index 000000000..24bf92062 --- /dev/null +++ b/src/libs/core/lib/router/route-nav-config.model.ts @@ -0,0 +1,3 @@ +export interface RouteNavConfig { + showSalesCta?: boolean +} diff --git a/src/libs/core/lib/router/router-context/router.context-provider.tsx b/src/libs/core/lib/router/router-context/router.context-provider.tsx index 536072d84..97f89e93d 100644 --- a/src/libs/core/lib/router/router-context/router.context-provider.tsx +++ b/src/libs/core/lib/router/router-context/router.context-provider.tsx @@ -77,6 +77,7 @@ export const RouterProvider: FC = (props: RouterProviderPro isRootRoute: isRootRoute(loggedInRoot, props.rootLoggedOut), rootLoggedInRoute: loggedInRoot, rootLoggedOutRoute: props.rootLoggedOut, + routeNavConfigs: activeRoute?.navConfig, } setRouteContextData(contextData) } diff --git a/src/libs/core/lib/router/router-context/router.context.tsx b/src/libs/core/lib/router/router-context/router.context.tsx index 0e06cf771..c4e7773f0 100644 --- a/src/libs/core/lib/router/router-context/router.context.tsx +++ b/src/libs/core/lib/router/router-context/router.context.tsx @@ -1,10 +1,12 @@ import { Context, createContext, ReactElement } from 'react' import { PlatformRoute } from '../platform-route.model' +import { RouteNavConfig } from '../route-nav-config.model' export interface RouterContextData { activeToolName?: string activeToolRoute?: string + routeNavConfigs?: RouteNavConfig allRoutes: Array getChildren: (parent: string) => Array getChildRoutes: (parent: string) => Array diff --git a/yarn.lock b/yarn.lock index 6fe304669..49682dae8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -19095,9 +19095,9 @@ unist-util-visit@^4.0.0: unist-util-is "^5.0.0" unist-util-visit-parents "^5.1.1" -"universal-navigation@https://github.com/topcoder-platform/universal-navigation": - version "1.0.12" - resolved "https://github.com/topcoder-platform/universal-navigation#92b8a638a901dedc0b59edb121161d9dabc8333a" +"universal-navigation@https://github.com/topcoder-platform/universal-navigation#9e62ddc61d": + version "1.0.17" + resolved "https://github.com/topcoder-platform/universal-navigation#9e62ddc61d44711e501b02e4c0890c348a3aa96d" universalify@^0.2.0: version "0.2.0"