From 24ca25caffa95f3b01e8323f3cedef199efae024 Mon Sep 17 00:00:00 2001 From: simonredfern Date: Mon, 8 Dec 2025 19:39:19 +0100 Subject: [PATCH] Split dropdown of versions --- src-svelte/Dropdown.svelte | 22 ++++++++++++++++------ src/components/HeaderNav.vue | 29 ++++++++++++++++++++++++++++- src/views/MessageDocsView.vue | 28 +++++++++++++++++++++++++--- 3 files changed, 69 insertions(+), 10 deletions(-) diff --git a/src-svelte/Dropdown.svelte b/src-svelte/Dropdown.svelte index b965557..e23ee37 100644 --- a/src-svelte/Dropdown.svelte +++ b/src-svelte/Dropdown.svelte @@ -122,12 +122,16 @@ @@ -231,6 +235,12 @@ opacity: 0.8; } + .dropdown-divider { + height: 1px; + margin: 6px 0; + background-color: #e4e7ed; + } + /* Custom scrollbar styling */ .dropdown-content::-webkit-scrollbar { width: 6px; diff --git a/src/components/HeaderNav.vue b/src/components/HeaderNav.vue index 6b80aa5..586e82c 100644 --- a/src/components/HeaderNav.vue +++ b/src/components/HeaderNav.vue @@ -51,6 +51,27 @@ const loginUsername = ref('') const logoffurl = ref('') const obpApiVersions = ref(inject(obpApiActiveVersionsKey)!) const obpMessageDocs = ref(Object.keys(inject(obpGroupedMessageDocsKey)!)) + +// Split versions into main and other +const mainVersions = ['BGv1.3', 'OBPv5.1.0', 'OBPv6.0.0', 'UKv3.1', 'dynamic-endpoints', 'dynamic-entities', 'OBPdynamic-endpoint', 'OBPdynamic-entity'] +const sortedVersions = computed(() => { + const all = obpApiVersions.value || [] + console.log('All available versions:', all) + const main = mainVersions.filter(v => all.includes(v)) + console.log('Main versions found:', main) + const others = all.filter(v => !mainVersions.includes(v)).sort() + console.log('Other versions:', others) + + // Only add divider if we have both main and other versions + if (main.length > 0 && others.length > 0) { + return [...main, '---', ...others] + } else if (main.length > 0) { + return main + } else { + return others + } +}) + const isShowLoginButton = ref(true) const isShowLogOffButton = ref(false) const logo = ref(logoSource) @@ -78,6 +99,12 @@ const setActive = (target: HTMLElement | null) => { const handleMore = (command: string) => { console.log('handleMore called with command:', command) + + // Ignore divider + if (command === '---') { + return + } + let element = document.getElementById("selected-api-version") if (element !== null) { element.textContent = command; @@ -153,7 +180,7 @@ const getCurrentPath = () => { class="menu-right" id="header-nav-versions" label="Versions" - :items="obpApiVersions" + :items="sortedVersions" :hover-color="headerLinksHoverColor" :background-color="headerLinksBackgroundColor" @select="handleMore" diff --git a/src/views/MessageDocsView.vue b/src/views/MessageDocsView.vue index d36cfa8..65a5d54 100644 --- a/src/views/MessageDocsView.vue +++ b/src/views/MessageDocsView.vue @@ -77,12 +77,13 @@ function showDependentEndpoints(value: any) { +
+

{{ connector }}

+

Message Docs

+
-
- -

{{ value.process }}

@@ -251,4 +252,25 @@ div { .content :deep(a):hover { background-color: #39455f; } + +.message-docs-header { + padding: 20px 0; + border-bottom: 2px solid #e4e7ed; + margin-bottom: 20px; +} + +.message-docs-header h1 { + font-size: 1.75rem; + font-weight: 600; + color: #303133; + margin: 0 0 0.5rem 0; + word-wrap: break-word; + overflow-wrap: break-word; +} + +.connector-subtitle { + font-size: 1rem; + color: #909399; + margin: 0; +}