Add bottom panel support (#1294)

* Add bottom panel

* Bottom panel store

* Extract ExtensionSlot component

* Tab rendering

* Add toggle button on top menu bar

* nit

* Add toggle button tooltip

* Add command
This commit is contained in:
Chenlei Hu
2024-10-24 21:15:19 +02:00
committed by GitHub
parent 957a767ed0
commit d142893244
11 changed files with 240 additions and 58 deletions

View File

@@ -6,25 +6,41 @@ export interface BaseSidebarTabExtension {
title: string
icon?: string
iconBadge?: string | (() => string | null)
order?: number
tooltip?: string
}
export interface VueSidebarTabExtension extends BaseSidebarTabExtension {
export interface BaseBottomPanelExtension {
id: string
title: string
}
export interface VueExtension {
id: string
type: 'vue'
component: Component
}
export interface CustomSidebarTabExtension extends BaseSidebarTabExtension {
export interface CustomExtension {
id: string
type: 'custom'
render: (container: HTMLElement) => void
destroy?: () => void
}
export type VueSidebarTabExtension = BaseSidebarTabExtension & VueExtension
export type CustomSidebarTabExtension = BaseSidebarTabExtension &
CustomExtension
export type SidebarTabExtension =
| VueSidebarTabExtension
| CustomSidebarTabExtension
export type VueBottomPanelExtension = BaseBottomPanelExtension & VueExtension
export type CustomBottomPanelExtension = BaseBottomPanelExtension &
CustomExtension
export type BottomPanelExtension =
| VueBottomPanelExtension
| CustomBottomPanelExtension
export type ToastManager = {
add(message: ToastMessageOptions): void
remove(message: ToastMessageOptions): void