From eb5bcdf07f76177ad58a4b6c7734dcd5def40c9c Mon Sep 17 00:00:00 2001 From: Alexander Platov Date: Thu, 5 Dec 2024 08:33:39 +0300 Subject: [PATCH] The alarm button in the sidebar for the Meeting (#7260) Signed-off-by: Alexander Platov --- models/love/src/index.ts | 3 +- models/love/src/plugin.ts | 3 +- models/workbench/src/index.ts | 1 + .../components/widget/WidgetSwitcher.svelte | 34 +++++++++++++++++++ plugins/love-resources/src/index.ts | 2 ++ .../src/components/AppItem.svelte | 33 +++++++++++++++++- .../src/components/Workbench.svelte | 4 +-- .../sidebar/widgets/WidgetPresenter.svelte | 8 +++-- plugins/workbench-resources/src/index.ts | 1 + plugins/workbench/src/index.ts | 1 + tests/sanity/tests/chat/chat.spec.ts | 4 +-- tests/sanity/tests/model/channel-page.ts | 8 ++--- tests/sanity/tests/model/common-page.ts | 7 +++- 13 files changed, 93 insertions(+), 16 deletions(-) create mode 100644 plugins/love-resources/src/components/widget/WidgetSwitcher.svelte diff --git a/models/love/src/index.ts b/models/love/src/index.ts index b25c90400b..a5222eeef7 100644 --- a/models/love/src/index.ts +++ b/models/love/src/index.ts @@ -288,7 +288,8 @@ export function createModel (builder: Builder): void { label: love.string.Meeting, type: WidgetType.Flexible, icon: love.icon.Cam, - component: love.component.MeetingWidget + component: love.component.MeetingWidget, + switcherComponent: love.component.WidgetSwitcher }, love.ids.MeetingWidget ) diff --git a/models/love/src/plugin.ts b/models/love/src/plugin.ts index c7a5c088cf..ef026ba0cf 100644 --- a/models/love/src/plugin.ts +++ b/models/love/src/plugin.ts @@ -27,7 +27,8 @@ export default mergeIds(loveId, love, { WorkbenchExtension: '' as AnyComponent, Settings: '' as AnyComponent, LoveWidget: '' as AnyComponent, - MeetingWidget: '' as AnyComponent + MeetingWidget: '' as AnyComponent, + WidgetSwitcher: '' as AnyComponent }, app: { Love: '' as Ref diff --git a/models/workbench/src/index.ts b/models/workbench/src/index.ts index 729bf39a56..96dae1a6f1 100644 --- a/models/workbench/src/index.ts +++ b/models/workbench/src/index.ts @@ -81,6 +81,7 @@ export class TWidget extends TDoc implements Widget { component!: AnyComponent tabComponent?: AnyComponent + switcherComponent?: AnyComponent headerLabel?: IntlString closeIfNoTabs?: boolean diff --git a/plugins/love-resources/src/components/widget/WidgetSwitcher.svelte b/plugins/love-resources/src/components/widget/WidgetSwitcher.svelte new file mode 100644 index 0000000000..d0e7718bb5 --- /dev/null +++ b/plugins/love-resources/src/components/widget/WidgetSwitcher.svelte @@ -0,0 +1,34 @@ + + + + diff --git a/plugins/love-resources/src/index.ts b/plugins/love-resources/src/index.ts index 0a32f9b44f..c06f50ae41 100644 --- a/plugins/love-resources/src/index.ts +++ b/plugins/love-resources/src/index.ts @@ -11,6 +11,7 @@ import Settings from './components/Settings.svelte' import WorkbenchExtension from './components/WorkbenchExtension.svelte' import LoveWidget from './components/LoveWidget.svelte' import MeetingWidget from './components/widget/MeetingWidget.svelte' +import WidgetSwitcher from './components/widget/WidgetSwitcher.svelte' import MeetingMinutesPresenter from './components/MeetingMinutesPresenter.svelte' import MeetingMinutesSection from './components/MeetingMinutesSection.svelte' import EditMeetingMinutes from './components/EditMeetingMinutes.svelte' @@ -47,6 +48,7 @@ export default async (): Promise => ({ EditMeetingData, LoveWidget, MeetingWidget, + WidgetSwitcher, MeetingMinutesPresenter, MeetingMinutesSection, EditMeetingMinutes, diff --git a/plugins/workbench-resources/src/components/AppItem.svelte b/plugins/workbench-resources/src/components/AppItem.svelte index 6ac0e969dc..02c26f6b3b 100644 --- a/plugins/workbench-resources/src/components/AppItem.svelte +++ b/plugins/workbench-resources/src/components/AppItem.svelte @@ -21,13 +21,14 @@ export let icon: Asset | AnySvelteComponent export let selected: boolean = false export let size: 'small' | 'medium' | 'large' = 'large' + export let kind: 'default' | 'positive' | 'negative' = 'default' export let loading: boolean = false export let notify: boolean = false export let navigator: boolean = false