Skip to content

Conversation

@MiloradFilipovic
Copy link
Contributor

Summary

  • Add new env variable that we'll temporarily use to toggle the feature while in development
  • Add support for tabs in Focus Panel
  • Move existing Focus panel content to a new tab
  • Add placeholder tab for the Setup panel

Related Linear tickets, Github issues, and Community forum posts

Closes ADO-4715
Closes ADO-4716

Review / Merge checklist

  • PR title and summary are descriptive. (conventions)
  • Docs updated or follow-up ticket created.
  • Tests included.
  • PR Labeled with release/backport (if the PR is an urgent fix that needs to be backported)

@MiloradFilipovic MiloradFilipovic self-assigned this Jan 28, 2026
@codecov
Copy link

codecov bot commented Jan 28, 2026

@codecov
Copy link

codecov bot commented Jan 28, 2026

Bundle Report

Changes will increase total bundle size by 9.94kB (0.02%) ⬆️. This is within the configured threshold ✅

Detailed changes
Bundle name Size Change
editor-ui-esm 40.95MB 9.94kB (0.02%) ⬆️

Affected Assets, Files, and Routes:

view changes for bundle: editor-ui-esm

Assets Changed:

Asset Name Size Change Total Size Change (%)
assets/worker-*.js 2.9MB 2.91MB 21680.09% ⚠️
assets/worker-*.js -2.9MB 13.37kB -99.54%
assets/users.store-*.js 28 bytes 1.0MB 0.0%
assets/_MapCache-*.js 226 bytes 546.81kB 0.04%
assets/NodeView-*.js 4.29kB 107.58kB 4.15%
assets/_baseOrderBy-*.js 28 bytes 104.72kB 0.03%
assets/NodeView-*.css 5.37kB 24.43kB 28.16% ⚠️

Files in assets/NodeView-*.js:

  • ./src/features/setupPanel/components/SetupPanelTabs.vue → Total Size: 348 bytes

  • ./src/app/components/FocusPanel.vue → Total Size: 316 bytes

  • ./src/features/setupPanel/setupPanel.store.ts → Total Size: 285 bytes

  • ./src/features/setupPanel/components/SetupPanel.vue → Total Size: 332 bytes

@n8n-assistant n8n-assistant bot added core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team labels Jan 28, 2026
Copy link
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 14 files

@blacksmith-sh

This comment has been minimized.


@Config
export class SetupPanelConfig {
@Env('N8N_SETUP_PANEL_ENABLED')
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Isn't a feature flag more appropriate here instead of env variable? I assume once we're ready with the feature we'd gradually enable this/ab test it which would require ff.

watch(
() => resolvedParameter.value,
(newValue, oldValue) => {
if (newValue && newValue !== oldValue) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm not sure why is this needed. Should we add a comment explaining?

<style module lang="scss">
.container {
display: flex;
padding: var(--spacing--3xs);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The padding of the tabs(may not be this line only) seems a little off. Maybe add a little more on top and reduce on the left?

Image

design:

Image

const props = withDefaults(
defineProps<{
modelValue?: SetupPanelTabs;
tabLabels?: {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: maybe labelOverrides is a better name for this?

import { type ContextMenuAction } from '@/features/shared/contextMenu/composables/useContextMenuItems';
import { type CanvasNode, CanvasNodeRenderType } from '@/features/workflows/canvas/canvas.types';
import { useCanvasOperations } from '@/app/composables/useCanvasOperations';
import SetupPanelTabs from '@/features/setupPanel/components/SetupPanelTabs.vue';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess with adding the Setup panel it makes more sense to rather have a parent component eg ParentPannel(def not a good name) that is using the tabs and based on the selected tab renders either SetupPanel or Focus panel. It may be an overkill to already do this though especially since for a few more weeks or so for the users there will be only the SetupPanel so the current change is may be more appropriate for the transition so up to you.

<SetupPanel />
</div>
<div v-else data-test-id="focus-panels" :class="$style.content">
<ExperimentalFocusPanelHeader
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is just the old component with same params moved inside the new container, right? The diff is a little weird

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core Enhancement outside /nodes-base and /editor-ui n8n team Authored by the n8n team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants