Skip to content

Commit 8a5266c

Browse files
committed
fix(sidebar): expanding custom ui sidebar groups was not working as expected
1 parent 37a41b9 commit 8a5266c

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

spring-boot-admin-server-ui/src/main/frontend/composables/ViewRegistry.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ const emitCustomRouteAddedEvent = debounce(() => {
2222
export function useViewRegistry() {
2323
return {
2424
views: viewRegistry.views,
25-
addView(view) {
26-
viewRegistry.addView(view);
25+
addView(viewToAdd) {
26+
const view = viewRegistry.addView(viewToAdd)[0];
2727

2828
if (view.parent) {
2929
viewRegistry.router.addRoute(view.parent, {

spring-boot-admin-server-ui/src/main/frontend/viewRegistry.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
* limitations under the License.
1515
*/
1616
import { remove } from 'lodash-es';
17-
import { Text, VNode, h, markRaw, reactive, shallowRef } from 'vue';
17+
import { Text, VNode, h, markRaw, reactive, shallowRef, toRaw } from 'vue';
1818
import { Router, createRouter, createWebHistory } from 'vue-router';
1919

2020
import sbaConfig from './sba-config';
@@ -82,8 +82,8 @@ export default class ViewRegistry {
8282
return Array.prototype.find.call(this._views, (v) => v.name === name);
8383
}
8484

85-
addView(...views: View[]) {
86-
views.forEach((view) => this._addView(view));
85+
addView(...views: View[]): SbaView[] {
86+
return views.map((view) => this._addView(view));
8787
}
8888

8989
addRedirect(path: string, redirect: string | object) {
@@ -94,7 +94,7 @@ export default class ViewRegistry {
9494
}
9595
}
9696

97-
_addView(viewConfig: ViewConfig) {
97+
_addView(viewConfig: ViewConfig): SbaView {
9898
const view = { ...viewConfig } as SbaView;
9999
view.hasChildren = !!viewConfig.children;
100100

@@ -132,6 +132,8 @@ export default class ViewRegistry {
132132

133133
this._removeExistingView(view);
134134
this._views.push(view);
135+
136+
return view;
135137
}
136138

137139
_removeExistingView(view) {
@@ -151,7 +153,7 @@ export default class ViewRegistry {
151153
name: view.name,
152154
component: view.component,
153155
props: view.props,
154-
meta: { view: view },
156+
meta: { view: toRaw(view) },
155157
children,
156158
};
157159
});

spring-boot-admin-server-ui/src/main/frontend/views/instances/shell/sidebar.vue

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@
117117
</template>
118118

119119
<script lang="ts">
120-
import { defineComponent } from 'vue';
120+
import { defineComponent, toRaw } from 'vue';
121121
122122
import SbaButton from '@/components/sba-button.vue';
123123
@@ -195,7 +195,7 @@ export default defineComponent({
195195
return key === translated ? groupId : translated;
196196
},
197197
isActiveGroup(group) {
198-
return group.views.includes(this.$route.meta.view);
198+
return group.views.some((v) => toRaw(v) === this.$route.meta.view);
199199
},
200200
hasMultipleViews(group) {
201201
return group.views.length > 1;
@@ -208,10 +208,12 @@ export default defineComponent({
208208
.instance-info-block {
209209
@apply bg-sba-50 bg-opacity-40 text-sba-900 flex items-center text-sm py-4 px-6 text-left overflow-hidden text-ellipsis rounded transition duration-300 ease-in-out cursor-pointer;
210210
}
211+
211212
.navbar-link {
212213
@apply cursor-pointer bg-sba-50 bg-opacity-40 duration-300 ease-in-out flex items-center overflow-hidden py-4 rounded text-sm transition whitespace-nowrap;
213214
@apply text-gray-700;
214215
}
216+
215217
.navbar-link:hover,
216218
.navbar-link__active {
217219
@apply bg-sba-50 bg-opacity-80 text-sba-900;

0 commit comments

Comments
 (0)