Skip to content

Commit

Permalink
Merge pull request #185 from linearlabs-workspace/fix/disableUsingOri…
Browse files Browse the repository at this point in the history
…ginal-bug

fix: disableUsingOriginal bug
  • Loading branch information
nutboltu authored Aug 16, 2023
2 parents 93dcfd1 + 38c7242 commit 82b3cfd
Show file tree
Hide file tree
Showing 3 changed files with 25 additions and 9 deletions.
11 changes: 8 additions & 3 deletions packages/mock-addon/src/Panel.js
Original file line number Diff line number Diff line change
Expand Up @@ -7,17 +7,21 @@ import { MockItem } from './components/MockItem';
import { ErrorItem } from './components/ErrorItem';

export const Panel = (props) => {
const [mockData, setState] = useAddonState(ADDON_ID, []);
const [state, setState] = useAddonState(ADDON_ID, {
mockData: [],
disableUsingOriginal: false,
});
const emit = useChannel({
[EVENTS.SEND]: (newMockData) => {
setState(newMockData);
[EVENTS.SEND]: (newState) => {
setState(newState);
},
});

const onChange = (item, key, value) => {
emit(EVENTS.UPDATE, { item, key, value });
};

const { mockData, disableUsingOriginal } = state;
if (!mockData || mockData.length === 0) {
return (
<AddonPanel {...props}>
Expand Down Expand Up @@ -51,6 +55,7 @@ export const Panel = (props) => {
onChange={(key, value) =>
onChange(item, key, value)
}
disableUsingOriginal={disableUsingOriginal}
{...rest}
/>
);
Expand Down
4 changes: 2 additions & 2 deletions packages/mock-addon/src/components/MockItem/index.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import React from 'react';
import PropTypes from 'prop-types';
import { useParameter } from '@storybook/manager-api';
import { styled } from '@storybook/theming';
import { ObjectControl, RangeControl } from '@storybook/blocks';
import { Form, Placeholder, TabsState } from '@storybook/components';
Expand Down Expand Up @@ -86,8 +85,8 @@ export const MockItem = ({
response,
delay,
onChange,
disableUsingOriginal,
}) => {
const { disableUsingOriginal } = useParameter();
return (
<Card
onToggle={(value) => onChange('skip', !value)}
Expand Down Expand Up @@ -159,4 +158,5 @@ MockItem.propTypes = {
response: PropTypes.any,
delay: PropTypes.number.isRequired,
onChange: PropTypes.func.isRequired,
disableUsingOriginal: PropTypes.bool.isRequired,
};
19 changes: 15 additions & 4 deletions packages/mock-addon/src/withRoundTrip.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,10 @@ export const withRoundTrip = (storyFn, context) => {
const mockAddonConfigs = getParameter(parameters, GLOBAL_PARAM_KEY, {
refreshStoryOnUpdate: false,
globalMockData: [],
disableUsingOriginal: false,
});
const { globalMockData, refreshStoryOnUpdate } = mockAddonConfigs;
const { globalMockData, refreshStoryOnUpdate, disableUsingOriginal } =
mockAddonConfigs;
const data = [...globalMockData, ...paramData];

/**
Expand All @@ -29,7 +31,10 @@ export const withRoundTrip = (storyFn, context) => {
if (INITIAL_MOUNT_STATE) {
faker.makeInitialRequestMap(data);

channel.emit(EVENTS.SEND, faker.getRequests());
channel.emit(EVENTS.SEND, {
mockData: faker.getRequests(),
disableUsingOriginal,
});

channel.on(STORY_CHANGED, () => {
STORY_CHANGED_STATE = true;
Expand All @@ -38,7 +43,10 @@ export const withRoundTrip = (storyFn, context) => {
channel.on(EVENTS.UPDATE, ({ item, key, value }) => {
faker.update(item, key, value);
const req = faker.getRequests();
channel.emit(EVENTS.SEND, req);
channel.emit(EVENTS.SEND, {
mockData: req,
disableUsingOriginal,
});
refreshStoryOnUpdate && channel.emit(FORCE_RE_RENDER);
});

Expand All @@ -51,7 +59,10 @@ export const withRoundTrip = (storyFn, context) => {
*/
if (STORY_CHANGED_STATE) {
faker.makeInitialRequestMap(data);
channel.emit(EVENTS.SEND, faker.getRequests());
channel.emit(EVENTS.SEND, {
mockData: faker.getRequests(),
disableUsingOriginal,
});
STORY_CHANGED_STATE = false;
}
return storyFn(context);
Expand Down

0 comments on commit 82b3cfd

Please sign in to comment.