mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 11:11:53 +08:00
Monkey-patch callbacks instead of listening on the channel
This commit is contained in:
parent
17d9034fa5
commit
a9b75cfc20
@ -18,7 +18,6 @@ import { logger } from '@storybook/client-logger';
|
|||||||
import {
|
import {
|
||||||
STORY_RENDER_PHASE_CHANGED,
|
STORY_RENDER_PHASE_CHANGED,
|
||||||
STORY_RENDERED,
|
STORY_RENDERED,
|
||||||
STORY_THREW_EXCEPTION,
|
|
||||||
PLAY_FUNCTION_THREW_EXCEPTION,
|
PLAY_FUNCTION_THREW_EXCEPTION,
|
||||||
} from '@storybook/core-events';
|
} from '@storybook/core-events';
|
||||||
|
|
||||||
@ -112,10 +111,6 @@ export class StoryRender<TFramework extends AnyFramework> implements Render<TFra
|
|||||||
// TODO -- should we emit the render phase changed event?
|
// TODO -- should we emit the render phase changed event?
|
||||||
this.phase = 'preparing';
|
this.phase = 'preparing';
|
||||||
}
|
}
|
||||||
|
|
||||||
this.channel.on(STORY_THREW_EXCEPTION, () => {
|
|
||||||
this.phase = 'errored';
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private async runPhase(signal: AbortSignal, phase: RenderPhase, phaseFn?: () => Promise<void>) {
|
private async runPhase(signal: AbortSignal, phase: RenderPhase, phaseFn?: () => Promise<void>) {
|
||||||
@ -222,6 +217,14 @@ export class StoryRender<TFramework extends AnyFramework> implements Render<TFra
|
|||||||
name,
|
name,
|
||||||
story: name,
|
story: name,
|
||||||
...this.callbacks,
|
...this.callbacks,
|
||||||
|
showError: (error) => {
|
||||||
|
this.phase = 'errored';
|
||||||
|
return this.callbacks.showError(error);
|
||||||
|
},
|
||||||
|
showException: (error) => {
|
||||||
|
this.phase = 'errored';
|
||||||
|
return this.callbacks.showException(error);
|
||||||
|
},
|
||||||
forceRemount: forceRemount || this.notYetRendered,
|
forceRemount: forceRemount || this.notYetRendered,
|
||||||
storyContext: renderStoryContext,
|
storyContext: renderStoryContext,
|
||||||
storyFn: () => unboundStoryFn(renderStoryContext),
|
storyFn: () => unboundStoryFn(renderStoryContext),
|
||||||
@ -256,6 +259,7 @@ export class StoryRender<TFramework extends AnyFramework> implements Render<TFra
|
|||||||
this.channel.emit(STORY_RENDERED, id)
|
this.channel.emit(STORY_RENDERED, id)
|
||||||
);
|
);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
|
this.phase = 'errored';
|
||||||
this.callbacks.showException(err as Error);
|
this.callbacks.showException(err as Error);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user