File size: 1,593 Bytes
b91e262 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | import type { Meta, StoryObj } from '@storybook/react'
import { CallStackFrame } from './call-stack-frame'
import { withShadowPortal } from '../../storybook/with-shadow-portal'
const meta: Meta<typeof CallStackFrame> = {
component: CallStackFrame,
parameters: {
layout: 'fullscreen',
backgrounds: {
default: 'background-100-dark',
},
a11y: {
config: {
rules: [
{
id: 'color-contrast',
// Manual testing shows no violation.
// TODO: We might have setup more explicit backgrounds depending on theme.
enabled: false,
},
],
},
},
},
decorators: [withShadowPortal],
}
export default meta
type Story = StoryObj<typeof CallStackFrame>
const frame = {
originalCodeFrame: null,
originalStackFrame: {
file: './app/page.tsx',
methodName: 'MyComponent',
arguments: [],
line1: 10,
column1: 5,
ignored: false,
},
sourceStackFrame: {
file: './app/page.tsx',
methodName: 'MyComponent',
arguments: [],
line1: 10,
column1: 5,
},
error: false as const,
reason: null,
external: false,
ignored: false,
}
export const HasSource: Story = {
args: {
frame: {
...frame,
originalCodeFrame: 'export default function MyComponent() {',
},
},
}
export const NoSource: Story = {
args: {
frame,
},
}
export const AnonymousSource: Story = {
args: {
frame: {
...frame,
originalStackFrame: {
...frame.originalStackFrame,
file: '<anonymous>',
},
},
},
}
|