Ensure floating view will not scroll top after route change (#19394) (#23920)

* Ensure floating view will not scroll top after route change (#19394)

* Fix format

* Add changeset
This commit is contained in:
SP12893678
2024-12-04 06:59:57 +08:00
committed by GitHub
parent b3de8b81b6
commit 3e91d50cda
6 changed files with 34 additions and 2 deletions

View File

@@ -0,0 +1,5 @@
---
'@directus/app': patch
---
Ensure floating view will not scroll top after route change

View File

@@ -17,6 +17,9 @@ export default defineModule({
{
name: 'activity-item',
path: ':primaryKey',
meta: {
isFloatingView: true,
},
components: {
detail: ActivityItem,
},

View File

@@ -16,6 +16,9 @@ export default defineModule({
{
path: '+',
name: 'add-file',
meta: {
isFloatingView: true,
},
components: {
addNew: AddNew,
},

View File

@@ -29,6 +29,9 @@ export default defineModule({
name: 'panel-detail',
path: ':panelKey',
props: true,
meta: {
isFloatingView: true,
},
components: {
detail: InsightsPanelConfiguration,
},

View File

@@ -69,6 +69,9 @@ export default defineModule({
{
path: '+',
name: 'settings-add-new',
meta: {
isFloatingView: true,
},
components: {
add: NewCollection,
},
@@ -106,6 +109,9 @@ export default defineModule({
{
path: ':field',
name: 'settings-fields-field',
meta: {
isFloatingView: true,
},
components: {
field: FieldDetail,
},
@@ -126,6 +132,9 @@ export default defineModule({
{
path: '+',
name: 'settings-add-new-policy',
meta: {
isFloatingView: true,
},
components: {
add: NewPolicy,
},
@@ -155,6 +164,9 @@ export default defineModule({
components: {
add: NewRole,
},
meta: {
isFloatingView: true,
},
},
],
},
@@ -234,6 +246,9 @@ export default defineModule({
{
name: 'settings-flows-operation',
path: ':operationId',
meta: {
isFloatingView: true,
},
component: FlowOperationDetail,
props: true,
},

View File

@@ -230,8 +230,11 @@ const appearance = computed(() => {
provide('main-element', contentEl);
router.afterEach(() => {
contentEl.value?.scrollTo({ top: 0 });
router.afterEach((to, from) => {
if (!to.meta.isFloatingView && !from.meta.isFloatingView) {
contentEl.value?.scrollTo({ top: 0 });
}
fullScreen.value = false;
});