Skip to content

Commit d44365a

Browse files
committed
fix: MCP endpoints dropdown not opening due to overflow-x-hidden clipping
Remove overflow-x-hidden from header and inner div that was causing the absolutely-positioned dropdown to be clipped. Replace DaisyUI focus-based dropdown with Vue-controlled v-if dropdown for reliable click behavior. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 218de1f commit d44365a

2 files changed

Lines changed: 18 additions & 9 deletions

File tree

frontend/src/components/TopHeader.vue

Lines changed: 16 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
<template>
2-
<header class="bg-base-100 border-b border-base-300 sticky top-0 z-30 overflow-x-hidden">
3-
<div class="flex items-center justify-between px-6 py-4 max-w-full overflow-x-hidden">
2+
<header class="bg-base-100 border-b border-base-300 sticky top-0 z-30">
3+
<div class="flex items-center justify-between px-6 py-4 max-w-full">
44
<!-- Left: Mobile menu toggle + Search + Add Server -->
55
<div class="flex items-center space-x-3 flex-1 min-w-0 overflow-x-hidden">
66
<!-- Mobile menu toggle -->
@@ -71,15 +71,21 @@
7171
</div>
7272

7373
<!-- MCP Endpoints Dropdown -->
74-
<div v-if="systemStore.listenAddr" class="dropdown dropdown-end">
75-
<label tabindex="0" class="flex items-center space-x-2 px-3 py-2 bg-base-200 rounded-lg cursor-pointer hover:bg-base-300 transition-colors">
74+
<div v-if="systemStore.listenAddr" class="relative">
75+
<button
76+
@click="showEndpoints = !showEndpoints"
77+
class="flex items-center space-x-2 px-3 py-2 bg-base-200 rounded-lg cursor-pointer hover:bg-base-300 transition-colors"
78+
>
7679
<span class="text-xs font-medium opacity-60">MCP:</span>
7780
<code class="text-xs font-mono">{{ systemStore.listenAddr }}</code>
78-
<svg class="w-3 h-3 opacity-60" fill="none" stroke="currentColor" viewBox="0 0 24 24">
81+
<svg class="w-3 h-3 opacity-60 transition-transform" :class="{ 'rotate-180': showEndpoints }" fill="none" stroke="currentColor" viewBox="0 0 24 24">
7982
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M19 9l-7 7-7-7" />
8083
</svg>
81-
</label>
82-
<div tabindex="0" class="dropdown-content z-50 mt-2 p-3 shadow-lg bg-base-100 rounded-box w-96 border border-base-300">
84+
</button>
85+
<div
86+
v-if="showEndpoints"
87+
class="absolute right-0 top-full mt-2 p-3 shadow-lg bg-base-100 rounded-box w-96 border border-base-300 z-50"
88+
>
8389
<div class="text-xs font-semibold opacity-60 mb-2 px-1">MCP Endpoints</div>
8490
<div class="space-y-1">
8591
<div
@@ -109,6 +115,8 @@
109115
</div>
110116
</div>
111117
</div>
118+
<!-- Click-outside overlay -->
119+
<div v-if="showEndpoints" class="fixed inset-0 z-40" @click="showEndpoints = false" />
112120
</div>
113121
</div>
114122
</div>
@@ -151,6 +159,7 @@ const routingModeLabel = computed(() => {
151159
152160
const searchQuery = ref('')
153161
const showAddServerModal = ref(false)
162+
const showEndpoints = ref(false)
154163
155164
interface McpEndpoint {
156165
path: string

web/frontend/dist/index.html

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,8 @@
55
<link rel="icon" type="image/svg+xml" href="/vite.svg" />
66
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
77
<title>MCPProxy Control Panel</title>
8-
<script type="module" crossorigin src="/ui/assets/index-Cmeu4Sa1.js"></script>
9-
<link rel="stylesheet" crossorigin href="/ui/assets/index-_xxU8vX9.css">
8+
<script type="module" crossorigin src="/ui/assets/index-XLyGd84i.js"></script>
9+
<link rel="stylesheet" crossorigin href="/ui/assets/index-CSCshny-.css">
1010
</head>
1111
<body>
1212
<div id="app"></div>

0 commit comments

Comments
 (0)