feat: Add apps sidebar tab (#9342)

## Summary

<!-- One sentence describing what changed and why. -->

## Changes

- **What**: <!-- Core functionality added/modified -->
- **Breaking**: <!-- Any breaking changes (if none, remove this line)
-->
- **Dependencies**: <!-- New dependencies (if none, remove this line)
-->

## Review Focus

<!-- Critical design decisions or edge cases that need attention -->

<!-- If this PR fixes an issue, uncomment and update the line below -->
<!-- Fixes #ISSUE_NUMBER -->

## Screenshots (if applicable)

<img width="383" height="359" alt="image"
src="https://github.com/user-attachments/assets/47905196-9db6-4a57-8cf7-384d4d37d000"
/>

<img width="335" height="281" alt="image"
src="https://github.com/user-attachments/assets/843068f3-e895-4781-bf5f-e0eb86d3387c"
/>

┆Issue is synchronized with this [Notion
page](https://www.notion.so/PR-9342-feat-Add-apps-sidebar-tab-3176d73d3650812b822fc9cc3f17322e)
by [Unito](https://www.unito.io)

---------

Co-authored-by: github-actions <github-actions@github.com>
This commit is contained in:
pythongosssss
2026-03-04 17:54:26 +00:00
committed by GitHub
parent 194218a9d6
commit f4ed79b133
34 changed files with 462 additions and 326 deletions

View File

@@ -84,6 +84,15 @@ vi.mock(
})
)
vi.mock('@/platform/workflow/management/composables/useAppsSidebarTab', () => ({
useAppsSidebarTab: () => ({
id: 'apps',
title: 'apps',
type: 'vue',
component: {}
})
}))
describe('useSidebarTabStore', () => {
beforeEach(() => {
setActivePinia(createTestingPinia({ stubActions: false }))
@@ -105,9 +114,10 @@ describe('useSidebarTabStore', () => {
'assets',
'node-library',
'model-library',
'workflows'
'workflows',
'apps'
])
expect(mockRegisterCommand).toHaveBeenCalledTimes(5)
expect(mockRegisterCommand).toHaveBeenCalledTimes(6)
})
it('does not register the job history tab when QPO V2 is disabled', () => {
@@ -122,9 +132,10 @@ describe('useSidebarTabStore', () => {
'assets',
'node-library',
'model-library',
'workflows'
'workflows',
'apps'
])
expect(mockRegisterCommand).toHaveBeenCalledTimes(4)
expect(mockRegisterCommand).toHaveBeenCalledTimes(5)
})
it('prepends the job history tab when QPO V2 is toggled on', async () => {
@@ -144,8 +155,9 @@ describe('useSidebarTabStore', () => {
'assets',
'node-library',
'model-library',
'workflows'
'workflows',
'apps'
])
expect(mockRegisterCommand).toHaveBeenCalledTimes(5)
expect(mockRegisterCommand).toHaveBeenCalledTimes(6)
})
})

View File

@@ -7,6 +7,7 @@ import { useModelLibrarySidebarTab } from '@/composables/sidebarTabs/useModelLib
import { useNodeLibrarySidebarTab } from '@/composables/sidebarTabs/useNodeLibrarySidebarTab'
import { t, te } from '@/i18n'
import { useSettingStore } from '@/platform/settings/settingStore'
import { useAppsSidebarTab } from '@/platform/workflow/management/composables/useAppsSidebarTab'
import { useWorkflowsSidebarTab } from '@/platform/workflow/management/composables/useWorkflowsSidebarTab'
import { useCommandStore } from '@/stores/commandStore'
import { useMenuItemStore } from '@/stores/menuItemStore'
@@ -135,6 +136,7 @@ export const useSidebarTabStore = defineStore('sidebarTab', () => {
registerSidebarTab(useNodeLibrarySidebarTab())
registerSidebarTab(useModelLibrarySidebarTab())
registerSidebarTab(useWorkflowsSidebarTab())
registerSidebarTab(useAppsSidebarTab())
const menuStore = useMenuItemStore()