Skip to main content

CnFeaturesAndRoadmapSidebar

Right-edge sidebar mounted by CnAppRoot at NcContent level when CnFeaturesAndRoadmapView publishes its hoisted-sidebar config (same cnIndexSidebarConfig mechanism CnIndexPage uses for CnIndexSidebar).

The sidebar contains four pitch sections — Suggest, OpenBuilt, LLM, Support — each with a short body and a CTA. The Suggest CTA emits a @suggest event; the parent view binds that to its openSuggestModal method so a single CnSuggestFeatureModal serves the header CTA + the sidebar text-CTA. The fourth "Support this project" container emits @support; the parent view mounts CnSupportDialog in response so users who dismissed the first-open note can re-open it from the roadmap page.

Props

PropTypeRequiredNotes
openbuiltUrlStringYesAbsolute URL or Nextcloud-relative path for the OpenBuilt CTA.
llmSkillsUrlStringYesAbsolute URL for the LLM-skills CTA (opens in a new tab).

Events

EventPayloadNotes
suggestnoneEmitted when the user clicks the Suggest CTA inside the sidebar. Parent should open the CnSuggestFeatureModal.
supportnoneEmitted when the user clicks the "Show support note" CTA in the fourth (Support) container. Parent should mount CnSupportDialog; CnFeaturesAndRoadmapView wires this automatically.

Mounted via the hoisted-sidebar pattern

This component is not rendered inline by CnFeaturesAndRoadmapView. Instead, the view publishes a config object to the cnIndexSidebarConfig provide (set up by CnAppRoot):

this.cnIndexSidebarConfig.value = {
component: CnFeaturesAndRoadmapSidebar,
props: { openbuiltUrl, llmSkillsUrl },
listeners: { suggest: () => this.openSuggestModal() },
}

CnAppRoot renders the component as a sibling of NcAppContent — the only spot where Nextcloud's right-edge sidebar slot positions correctly.

Reference

Props

PropTypeDefaultDescription
suggestUrlString''Optional override target for the "Suggest a feature" CTA. When set, the CTA links there (external URLs open in a new tab); when empty it emits @suggest for the in-product modal.