import { useState } from 'react' import type { Story, StoryMeta } from './csf.types' import { ServerErrorState } from './ServerErrorState' const meta: StoryMeta = { title: 'ServerErrorState', component: ServerErrorState, tags: ['feedback'], argTypes: { title: { description: 'Override the "Something went wrong" heading', control: 'text' }, description: { description: 'Override the default error description', control: 'text' }, onRetry: { description: 'Callback fired when the retry button is clicked', control: false }, retrying: { description: 'Shows a loading spinner on the retry button', control: 'boolean', }, retryLabel: { description: 'Label for the retry button', control: 'text' }, glyph: { description: 'Custom element displayed above the title instead of "500"', control: false, }, }, } export default meta export const Default: Story = {} function WithRetryStory() { const [retrying, setRetrying] = useState(false) const handleRetry = () => { setRetrying(true) setTimeout(() => setRetrying(false), 1500) } return } export const WithRetry: Story = { render: WithRetryStory } function CustomGlyphStory() { return ( ⚠️} title="Unexpected error" description="Please try again or contact support if the problem persists." /> ) } export const CustomGlyph: Story = { render: CustomGlyphStory }