Skip to content

Commit 3563029

Browse files
feat(storybook): add support for Storybook React Native v9 (#1118)
1 parent 607594a commit 3563029

File tree

10 files changed

+97
-3
lines changed

10 files changed

+97
-3
lines changed
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import { view } from './storybook.requires';
2+
import AsyncStorage from '@react-native-async-storage/async-storage';
3+
4+
const StorybookUIRoot = view.getStorybookUI({
5+
storage: {
6+
getItem: AsyncStorage.getItem,
7+
setItem: AsyncStorage.setItem,
8+
},
9+
});
10+
11+
export default StorybookUIRoot;
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import { StorybookConfig } from '@storybook/react-native';
2+
3+
const main: StorybookConfig = {
4+
stories: ['../components/**/*.stories.?(ts|tsx|js|jsx)'],
5+
addons: [
6+
'@storybook/addon-ondevice-notes',
7+
'@storybook/addon-ondevice-controls',
8+
'@storybook/addon-ondevice-backgrounds',
9+
'@storybook/addon-ondevice-actions',
10+
],
11+
};
12+
13+
export default main;
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
import { withBackgrounds } from '@storybook/addon-ondevice-backgrounds';
2+
import { Preview } from '@storybook/react';
3+
4+
const preview: Preview = {
5+
decorators: [withBackgrounds],
6+
};
7+
8+
export default preview;

packages/knip/fixtures/plugins/storybook2/.rnstorybook/storybook.requires.ts

Whitespace-only changes.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import type { Meta, StoryObj } from '@storybook/react';
2+
import { fn } from 'storybook/test';
3+
import { MyButton } from './Button';
4+
5+
const meta = {
6+
component: MyButton,
7+
} satisfies Meta<typeof MyButton>;
8+
9+
export default meta;
10+
11+
type Story = StoryObj<typeof meta>;
12+
13+
export const Basic: Story = {
14+
args: {
15+
text: 'Hello World',
16+
color: 'purple',
17+
onPress: fn(),
18+
},
19+
};

packages/knip/fixtures/plugins/storybook2/components/Button/Button.tsx

Whitespace-only changes.

packages/knip/fixtures/plugins/storybook2/node_modules/storybook/package.json

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
{
2+
"name": "@plugins/storybook",
3+
"scripts": {
4+
"storybook": "storybook"
5+
},
6+
"dependencies": {
7+
"@react-native-async-storage/async-storage": "*"
8+
},
9+
"devDependencies": {
10+
"@storybook/addon-ondevice-actions": "*",
11+
"@storybook/addon-ondevice-backgrounds": "*",
12+
"@storybook/addon-ondevice-controls": "*",
13+
"@storybook/addon-ondevice-notes": "*",
14+
"@storybook/react": "*",
15+
"@storybook/react-native": "*",
16+
"storybook": "*"
17+
}
18+
}

packages/knip/src/plugins/storybook/index.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,15 +12,15 @@ const enablers = [/^@storybook\//, '@nrwl/storybook'];
1212

1313
const isEnabled: IsPluginEnabled = ({ dependencies }) => hasDependency(dependencies, enablers);
1414

15-
const config = ['.storybook/{main,test-runner}.{js,ts,mts}'];
15+
const config = ['.{storybook,rnstorybook}/{main,test-runner}.{js,ts,mts}'];
1616

1717
const stories = ['**/*.@(mdx|stories.@(mdx|js|jsx|mjs|ts|tsx))'];
1818

19-
const restEntry = ['.storybook/{manager,preview}.{js,jsx,ts,tsx}'];
19+
const restEntry = ['.{storybook,rnstorybook}/{manager,preview,index}.{js,jsx,ts,tsx}'];
2020

2121
const entry = [...restEntry, ...stories];
2222

23-
const project = ['.storybook/**/*.{js,jsx,ts,tsx,mts}'];
23+
const project = ['.{storybook,rnstorybook}/**/*.{js,jsx,ts,tsx,mts}'];
2424

2525
const resolveConfig: ResolveConfig<StorybookConfig> = async (localConfig, options) => {
2626
const { cwd, configFileDir } = options;
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { test } from 'bun:test';
2+
import assert from 'node:assert/strict';
3+
import { main } from '../../src/index.js';
4+
import { resolve } from '../../src/util/path.js';
5+
import baseArguments from '../helpers/baseArguments.js';
6+
import baseCounters from '../helpers/baseCounters.js';
7+
8+
const cwd = resolve('fixtures/plugins/storybook2');
9+
10+
test('Find dependencies with the Storybook plugin (2)', async () => {
11+
const { counters } = await main({
12+
...baseArguments,
13+
cwd,
14+
});
15+
16+
assert.deepEqual(counters, {
17+
...baseCounters,
18+
processed: 6,
19+
total: 6,
20+
});
21+
});

0 commit comments

Comments
 (0)