From b18a0713db58b5b80aedf3ff128b0ebe3204d577 Mon Sep 17 00:00:00 2001
From: pythongosssss <125205205+pythongosssss@users.noreply.github.com>
Date: Tue, 3 Mar 2026 16:35:47 +0000
Subject: [PATCH] feat: App mode enter builder menu item (#9341)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
## Summary
Adds enter builder menu item for easier access to app builder.
Fixes issues with seen item tracking
## Changes
- **What**:
- add enter builder menu item
- change non visible items to still be returned as part of the array, so
they are not incorrectly removed from the seen-items tracking
- split toggle-app-mode into two stable items
## Screenshots (if applicable)
┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9341-feat-App-mode-enter-builder-menu-item-3176d73d365081a9a7e7cf1a1986354f)
by [Unito](https://www.unito.io)
---
.../common/WorkflowActionsList.test.ts | 18 +++++
src/components/common/WorkflowActionsList.vue | 2 +-
.../useNewMenuItemIndicator.test.ts | 74 +++++++++++++++++++
src/composables/useNewMenuItemIndicator.ts | 29 ++++++--
.../useWorkflowActionsMenu.test.ts | 24 +++++-
src/composables/useWorkflowActionsMenu.ts | 49 ++++++++----
src/locales/en/main.json | 1 +
src/types/workflowMenuItem.ts | 1 +
8 files changed, 172 insertions(+), 26 deletions(-)
diff --git a/src/components/common/WorkflowActionsList.test.ts b/src/components/common/WorkflowActionsList.test.ts
index 67c668fe7d..e5483c65a0 100644
--- a/src/components/common/WorkflowActionsList.test.ts
+++ b/src/components/common/WorkflowActionsList.test.ts
@@ -70,6 +70,24 @@ describe('WorkflowActionsList', () => {
expect(wrapper.text()).toContain('NEW')
})
+ it('does not render items with visible set to false', () => {
+ const items: WorkflowMenuItem[] = [
+ {
+ id: 'hidden',
+ label: 'Hidden Item',
+ icon: 'pi pi-eye-slash',
+ command: vi.fn(),
+ visible: false
+ },
+ { id: 'shown', label: 'Shown Item', icon: 'pi pi-eye', command: vi.fn() }
+ ]
+
+ const wrapper = createWrapper(items)
+
+ expect(wrapper.text()).not.toContain('Hidden Item')
+ expect(wrapper.text()).toContain('Shown Item')
+ })
+
it('does not render badge when absent', () => {
const items: WorkflowMenuAction[] = [
{ id: 'plain', label: 'Plain', icon: 'pi pi-check', command: vi.fn() }
diff --git a/src/components/common/WorkflowActionsList.vue b/src/components/common/WorkflowActionsList.vue
index 09cee3aebd..670145f481 100644
--- a/src/components/common/WorkflowActionsList.vue
+++ b/src/components/common/WorkflowActionsList.vue
@@ -26,7 +26,7 @@ const {
/>