Skip to content

Commit 70a8166

Browse files
committed
feat(angular): depreciate the story component attribute
1 parent dbee613 commit 70a8166

File tree

5 files changed

+53
-6
lines changed

5 files changed

+53
-6
lines changed

app/angular/package.json

+1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@
4242
},
4343
"dependencies": {
4444
"@storybook/addons": "6.2.0-alpha.3",
45+
"@storybook/client-logger": "^6.1.10",
4546
"@storybook/core": "6.2.0-alpha.3",
4647
"@storybook/node-logger": "6.2.0-alpha.3",
4748
"@types/webpack-env": "^1.15.3",

app/angular/src/client/preview/angular-beta/RenderNgAppService.ts

+21-1
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,13 @@
22
import { enableProdMode, NgModule, PlatformRef, Type } from '@angular/core';
33
import { BrowserModule } from '@angular/platform-browser';
44
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
5+
import { logger } from '@storybook/client-logger';
56

67
import { StoryFn } from '@storybook/addons';
78

89
import { BehaviorSubject, Subject } from 'rxjs';
910
import { ICollection, StoryFnAngularReturnType } from '../types';
11+
import { Parameters } from '../types-6-0';
1012
import { storyPropsProvider } from './app.token';
1113
import { createComponentClassFromStoryComponent } from './ComponentClassFromStoryComponent';
1214
import { createComponentClassFromStoryTemplate } from './ComponentClassFromStoryTemplate';
@@ -63,9 +65,27 @@ export class RenderNgAppService {
6365
* - true render will only use the StoryFn `props' in storyProps observable that will update sotry's component/template properties. Improves performance without reloading the whole module&component if props changes
6466
* - false fully recharges or initializes angular module & component
6567
*/
66-
public async render(storyFn: StoryFn<StoryFnAngularReturnType>, forced: boolean) {
68+
public async render(
69+
storyFn: StoryFn<StoryFnAngularReturnType>,
70+
{ forced, parameters }: { forced: boolean; parameters: Parameters }
71+
) {
6772
const storyObj = storyFn();
6873

74+
if (storyObj.component) {
75+
logger.warn(`\`component\` story input is deprecated, and will be removed in Storybook 7.0.
76+
Instead, use \`export const default = () => ({ component: AppComponent });\`
77+
or
78+
\`\`\`
79+
export const Primary: Story = () => ({});
80+
Primary.parameters = { component: AppComponent };
81+
\`\`\`
82+
Read more at
83+
- https://github.com/storybookjs/storybook/blob/next/MIGRATION.md#deprecated-angular-component).
84+
- https://storybook.js.org/docs/angular/writing-stories/parameters
85+
`);
86+
}
87+
storyObj.component = storyObj.component ?? parameters.component;
88+
6989
if (forced && this.storyProps$) {
7090
this.storyProps$.next(storyObj.props);
7191
return;

app/angular/src/client/preview/render.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ export default function render({
2424
return;
2525
}
2626

27-
RenderNgAppService.getInstance().render(storyFn, forceRender);
27+
RenderNgAppService.getInstance().render(storyFn, { parameters, forced: forceRender });
2828
}

app/angular/src/client/preview/types-6-0.ts

+1
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ export type Story<Args = DefaultArgs> = BaseStory<Args, AngularReturnType> &
3131
export type Parameters = DefaultParameters & {
3232
/** Uses legacy angular rendering engine that use dynamic component */
3333
angularLegacyRendering?: boolean;
34+
component: unknown;
3435
};

yarn.lock

+29-4
Original file line numberDiff line numberDiff line change
@@ -4088,6 +4088,14 @@
40884088
resolved "https://registry.yarnpkg.com/@soda/get-current-script/-/get-current-script-1.0.2.tgz#a53515db25d8038374381b73af20bb4f2e508d87"
40894089
integrity sha512-T7VNNlYVM1SgQ+VsMYhnDkcGmWhQdL0bDyGm5TlQ3GBXnJscEClUUOKduWTmm2zCnvNLC1hc3JpuXjs/nFOc5w==
40904090

4091+
"@storybook/client-logger@^6.1.10":
4092+
version "6.1.10"
4093+
resolved "https://registry.yarnpkg.com/@storybook/client-logger/-/client-logger-6.1.10.tgz#491d960387ab336408f596c22f171c19247a1236"
4094+
integrity sha512-06EnESLaNCeHSzsZEEMiy9QtyucTy2BvQ2Z0yPnZLuXTXZNgI6aOtftpehwKSYXdudaIvLkb6xfNvix0BBgHhw==
4095+
dependencies:
4096+
core-js "^3.0.1"
4097+
global "^4.3.2"
4098+
40914099
"@storybook/[email protected]":
40924100
version "0.0.1"
40934101
resolved "https://registry.yarnpkg.com/@storybook/csf/-/csf-0.0.1.tgz#95901507dc02f0bc6f9ac8ee1983e2fc5bb98ce6"
@@ -29099,10 +29107,27 @@ send@^0.16.2:
2909929107
range-parser "~1.2.0"
2910029108
statuses "~1.4.0"
2910129109

29102-
serialize-javascript@^1.4.0, serialize-javascript@^2.1.2, serialize-javascript@^3.0.0, serialize-javascript@^4.0.0, serialize-javascript@^5.0.1:
29103-
version "3.1.0"
29104-
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-3.1.0.tgz#8bf3a9170712664ef2561b44b691eafe399214ea"
29105-
integrity sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==
29110+
serialize-javascript@^1.4.0:
29111+
version "1.9.1"
29112+
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.9.1.tgz#cfc200aef77b600c47da9bb8149c943e798c2fdb"
29113+
integrity sha512-0Vb/54WJ6k5v8sSWN09S0ora+Hnr+cX40r9F170nT+mSkaxltoE/7R3OrIdBSUv1OoiobH1QoWQbCnAO+e8J1A==
29114+
29115+
serialize-javascript@^2.1.2:
29116+
version "2.1.2"
29117+
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
29118+
integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
29119+
29120+
serialize-javascript@^4.0.0:
29121+
version "4.0.0"
29122+
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
29123+
integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
29124+
dependencies:
29125+
randombytes "^2.1.0"
29126+
29127+
serialize-javascript@^5.0.1:
29128+
version "5.0.1"
29129+
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
29130+
integrity sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==
2910629131
dependencies:
2910729132
randombytes "^2.1.0"
2910829133

0 commit comments

Comments
 (0)