Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@
},
"dependencies": {
"@codemirror/lang-json": "^6.0.1",
"@conduction/nextcloud-vue": "^2.24.2",
"@conduction/nextcloud-vue": "^2.24.3",
"@nextcloud/auth": "^2.6.0",
"@nextcloud/axios": "^2.6.0",
"@nextcloud/capabilities": "^1.2.1",
Expand Down
6 changes: 5 additions & 1 deletion src/App.vue
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
path: it reads OCA.OpenRegister.integrations and renders one inner
tab per provider (built-ins + xwiki + the bespoke leaves). See ADR-019.
-->
<template #sidebar>
<template #sidebar="{ pageSidebarComponent }">
<SideBars />
<CnObjectSidebar
v-if="objectSidebarState.active"
Expand All @@ -39,6 +39,10 @@
:hiddenTabs="objectSidebarState.hiddenTabs"
:open="objectSidebarState.open"
@update:open="objectSidebarState.open = $event" />
<!-- The manifest page's own sidebar (pages[].sidebarComponent). Passed in
as a slot prop because filling this slot suppresses CnAppRoot's
fallback, which is what hid the flow sidebar. -->
<component :is="pageSidebarComponent" v-if="pageSidebarComponent" />
</template>
<!-- Global modal and dialog hosts, mounted below the router-view. -->
<template #footer>
Expand Down
24 changes: 12 additions & 12 deletions src/sidebars/SideBars.vue
Original file line number Diff line number Diff line change
Expand Up @@ -8,23 +8,24 @@
<AuditTrailSideBar v-else-if="$route.path.startsWith('/audit-trails')" />
<SearchTrailSideBar v-else-if="$route.path.startsWith('/search-trails')" />
<!--
The flow canvas's controls — step palette, Save, Run, run history.
The flow canvas's controls are NOT listed here. They are declared on the
manifest page as `sidebarComponent: FlowDetailSidebar`, and #3103 made
CnAppRoot hand that component to this app through the #sidebar slot
prop, so App.vue renders it directly.

These are declared on the manifest page as `sidebarComponent:
FlowDetailSidebar`, and CnAppRoot does resolve that key. It could never
render here, though: CnAppRoot only falls back to it as the DEFAULT
content of its #sidebar slot, and this app fills that slot itself, so
consumer content wins by Vue's ordinary slot mechanic. The manifest key
was live config that rendered nothing.
A hardcoded <FlowDetailSidebar> used to sit here as a workaround from
when the manifest key rendered nothing. Once #3103 made the manifest
route work, BOTH rendered, and the e2e caught it exactly as it should:

The symptom was a flow page with no way to save, run, or add a step —
while its own empty state said "Add a step from the sidebar".
strict mode violation: locator('.cn-flow-sidebar') resolved to 2 elements

The manifest is the single source of truth for a page's sidebar. Adding
a route here for a page that declares `sidebarComponent` will duplicate
it again.
-->
<FlowDetailSidebar v-else-if="/^\/flows\/.+/.test($route.path)" />
</template>

<script>
import FlowDetailSidebar from '../views/flows/FlowDetailSidebar.vue'
import DashboardSideBar from './dashboard/DashboardSideBar.vue'
import DeletedSideBar from './deleted/DeletedSideBar.vue'
import EntitiesSideBar from './entities/EntitiesSideBar.vue'
Expand All @@ -45,7 +46,6 @@ export default {
EntitiesSideBar,
AuditTrailSideBar,
SearchTrailSideBar,
FlowDetailSidebar,
},
}
</script>
Loading