diff --git a/packages/frontend/src/components/TmsSuperMenu.impl.ts b/packages/frontend/src/components/TmsSuperMenu.impl.ts new file mode 100644 index 000000000000..fb0d8fa4cd9c --- /dev/null +++ b/packages/frontend/src/components/TmsSuperMenu.impl.ts @@ -0,0 +1,41 @@ +/* + * SPDX-FileCopyrightText: syuilo and misskey-project + * SPDX-License-Identifier: AGPL-3.0-only + */ + +export type TmsSuperMenuProps = { + readonly def: ISuperMenuDefinitions; + readonly wideMode?: boolean; +}; + +export type SuperMenuDisplayMode = 'default' | 'classic' | 'forceList'; + +export type ISuperMenuDefinitions = { + readonly title?: string; + readonly items: ISuperMenuItem[]; +}[]; + +type ISuperMenuItem = ISuperMenuItemButton | ISuperMenuItemA | ISuperMenuItemLink; + +type ISuperMenuItemBase = { + readonly icon: string; + readonly text: string; + readonly active?: boolean; + readonly danger?: boolean; +}; + +type ISuperMenuItemButton = ISuperMenuItemBase & { + readonly type: 'button'; + readonly action: (ev: MouseEvent) => void; +}; + +type ISuperMenuItemA = ISuperMenuItemBase & { + readonly type: 'a'; + readonly href: string; + readonly target: string; +}; + +type ISuperMenuItemLink = ISuperMenuItemBase & { + readonly type?: 'link'; + readonly to: string; +}; diff --git a/packages/frontend/src/components/MkSuperMenu.vue b/packages/frontend/src/components/TmsSuperMenu.vue similarity index 97% rename from packages/frontend/src/components/MkSuperMenu.vue rename to packages/frontend/src/components/TmsSuperMenu.vue index b576b03b34a0..5edcfc578804 100644 --- a/packages/frontend/src/components/MkSuperMenu.vue +++ b/packages/frontend/src/components/TmsSuperMenu.vue @@ -72,12 +72,9 @@ SPDX-License-Identifier: AGPL-3.0-only