docs/_snippets/tanstack-react-route-story.md
import type { Meta, StoryObj } from '@storybook/tanstack-react';
import { Route } from './Page';
const meta = {
parameters: {
layout: 'fullscreen',
tanstack: {
router: {
route: Route, // ๐ Supply the Route here
// ๐ Rest of these properties are type-safe
params: { id: '42' },
query: { tab: 'details' },
},
},
},
} satisfies Meta<typeof Route>;
export default meta;
type Story = StoryObj<typeof meta>;
export const Default: Story = {};
export const WithCustomLoader: Story = {
parameters: {
tanstack: {
router: {
route: Route, // ๐ Supply the Route here
// ๐ Rest of these properties are type-safe
params: { id: '42' },
routeOverrides: {
'/items/$id': {
loader: async () => ({
item: { id: '42', name: 'Loaded inside Storybook' },
}),
},
},
},
},
},
};
import preview from '../.storybook/preview';
import { Route } from './Page';
const meta = preview.meta({
parameters: {
layout: 'fullscreen',
tanstack: {
router: {
route: Route, // ๐ Supply the Route here
// ๐ Rest of these properties are type-safe
params: { id: '42' },
query: { tab: 'details' },
},
},
},
});
export const Default = meta.story();
export const WithCustomLoader = meta.story({
parameters: {
tanstack: {
router: {
route: Route, // ๐ Supply the Route here
// ๐ Rest of these properties are type-safe
params: { id: '42' },
routeOverrides: {
'/items/$id': {
loader: async () => ({
item: { id: '42', name: 'Loaded inside Storybook' },
}),
},
},
},
},
},
});