import type { Meta, StoryObj } from '@storybook/vue3-vite' import { getCurrentInstance, ref } from 'vue' import { createMemoryHistory, createRouter } from 'vue-router' import NavTabs from '../../components/base/NavTabs.vue' const router = createRouter({ history: createMemoryHistory(), routes: [{ path: '/', component: { template: '
' } }], }) const meta = { title: 'Base/NavTabs', component: NavTabs, decorators: [ (story) => { return { components: { story }, setup() { const app = getCurrentInstance()?.appContext.app if (app && !app.config.globalProperties.$router) { app.use(router) } }, template: '', } }, ], } satisfies Meta export default meta type Story = StoryObj export const Default: Story = { args: { mode: 'local', activeIndex: 0, links: [ { label: 'Overview', href: '' }, { label: 'Gallery', href: 'gallery' }, { label: 'Changelog', href: 'changelog' }, { label: 'Versions', href: 'versions' }, ], }, } export const LocalMode: StoryObj = { render: () => ({ components: { NavTabs }, setup() { const activeIndex = ref(0) const links = [ { label: 'Overview', href: '' }, { label: 'Gallery', href: 'gallery' }, { label: 'Changelog', href: 'changelog' }, { label: 'Versions', href: 'versions' }, ] function onTabClick(index: number) { activeIndex.value = index } return { activeIndex, links, onTabClick } }, template: /* html */ ` `, }), } export const TwoTabs: StoryObj = { render: () => ({ components: { NavTabs }, setup() { const activeIndex = ref(0) const links = [ { label: 'Details', href: '' }, { label: 'Settings', href: 'settings' }, ] function onTabClick(index: number) { activeIndex.value = index } return { activeIndex, links, onTabClick } }, template: /* html */ ` `, }), }