summaryrefslogtreecommitdiff
path: root/packages/frontend/src/components/MkContextMenu.stories.impl.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/frontend/src/components/MkContextMenu.stories.impl.ts')
-rw-r--r--packages/frontend/src/components/MkContextMenu.stories.impl.ts58
1 files changed, 58 insertions, 0 deletions
diff --git a/packages/frontend/src/components/MkContextMenu.stories.impl.ts b/packages/frontend/src/components/MkContextMenu.stories.impl.ts
new file mode 100644
index 0000000000..1ff0f51bd4
--- /dev/null
+++ b/packages/frontend/src/components/MkContextMenu.stories.impl.ts
@@ -0,0 +1,58 @@
+/*
+ * SPDX-FileCopyrightText: syuilo and misskey-project
+ * SPDX-License-Identifier: AGPL-3.0-only
+ */
+
+/* eslint-disable @typescript-eslint/explicit-function-return-type */
+/* eslint-disable import/no-default-export */
+import { StoryObj } from '@storybook/vue3';
+import { userEvent, within } from '@storybook/test';
+import MkContextMenu from './MkContextMenu.vue';
+import * as os from '@/os.js';
+export const Empty = {
+ render(args) {
+ return {
+ setup() {
+ return {
+ args,
+ };
+ },
+ computed: {
+ props() {
+ return {
+ ...this.args,
+ };
+ },
+ },
+ methods: {
+ onContextmenu(ev: MouseEvent) {
+ os.contextMenu(args.items, ev);
+ },
+ },
+ template: '<div @contextmenu.stop="onContextmenu">Right Click Here</div>',
+ };
+ },
+ args: {
+ items: [],
+ },
+ async play({ canvasElement }) {
+ const canvas = within(canvasElement);
+ const target = canvas.getByText('Right Click Here');
+ await userEvent.pointer({ keys: '[MouseRight>]', target });
+ },
+ parameters: {
+ layout: 'centered',
+ },
+} satisfies StoryObj<typeof MkContextMenu>;
+export const SomeTabs = {
+ ...Empty,
+ args: {
+ items: [
+ {
+ text: 'Home',
+ icon: 'ti ti-home',
+ action() {},
+ },
+ ],
+ },
+} satisfies StoryObj<typeof MkContextMenu>;