Merge branch 'master' into no-unsafe-methods

This commit is contained in:
Filipp Riabchun 2018-04-02 15:08:03 +03:00 committed by GitHub
commit a81564dbeb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
20 changed files with 81 additions and 18 deletions

View File

@ -102,7 +102,6 @@ export default class BackgroundPanel extends Component {
this.channel.on('background-unset', () => {
this.setState({ backgrounds: [] });
api.setQueryParams({ background: null });
this.updateIframe('none');
});
}

View File

@ -54,12 +54,12 @@ describe('Background Panel', () => {
expect(mockedApi.getQueryParam).toBeCalledWith('background');
});
it('should unset the query string', () => {
it('should not unset the query string', () => {
const SpiedChannel = new EventEmitter();
mount(<BackgroundPanel channel={SpiedChannel} api={mockedApi} />);
SpiedChannel.emit('background-unset', []);
expect(mockedApi.setQueryParams).toBeCalledWith({ background: null });
expect(mockedApi.setQueryParams).not.toHaveBeenCalled();
});
it('should accept colors through channel and render the correct swatches with a default swatch', () => {

View File

@ -23,6 +23,8 @@ const styles = {
rangeLabel: {
paddingLeft: 5,
paddingRight: 5,
fontSize: 12,
whiteSpace: 'nowrap',
},
rangeWrapper: {
display: 'flex',

View File

@ -3,10 +3,10 @@ import addons from '@storybook/addons';
import marked from 'marked';
import { WithNotes as ReactWithNotes } from './react';
export const withMarkdownNotes = text => {
export const withMarkdownNotes = (text, options) => {
const channel = addons.getChannel();
return getStory => context => {
marked.setOptions({ ...marked.defaults, options });
// send the notes to the channel before the story is rendered
channel.emit('storybook/notes/add_notes', marked(text));
return getStory(context);

View File

@ -33,6 +33,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -42,6 +43,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -34,6 +34,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -43,6 +44,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -33,6 +33,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -42,6 +43,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -32,6 +32,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -41,6 +42,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -34,6 +34,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -43,6 +44,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -33,6 +33,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -42,6 +43,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -66,7 +66,7 @@
"webpack": "^4.4.1",
"webpack-dev-middleware": "^3.1.0",
"webpack-hot-middleware": "^2.21.2",
"ws": "^4.1.0"
"ws": "^5.1.0"
},
"devDependencies": {
"react-native": "^0.52.2"

View File

@ -24,13 +24,6 @@ export default class Server {
}
}
// see https://github.com/websockets/ws/issues/1256#issuecomment-364988689
socket.on('error', err => {
// Ignore network errors like `ECONNRESET`, `EPIPE`, etc.
if (err.errno) return;
throw err;
});
socket.on('message', data => {
this.wsServer.clients.forEach(c => {
if (!this.options.manualId || (socket.pairedId && socket.pairedId === c.pairedId)) {

View File

@ -33,6 +33,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -42,6 +43,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -32,6 +32,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -41,6 +42,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -33,6 +33,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -42,6 +43,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -32,6 +32,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'index.html',
chunks: ['manager'],
chunksSortMode: 'none',
data: {
managerHead: getManagerHeadHtml(configDir),
version,
@ -41,6 +42,7 @@ export default function(configDir) {
new HtmlWebpackPlugin({
filename: 'iframe.html',
excludeChunks: ['manager'],
chunksSortMode: 'none',
data: {
previewHead: getPreviewHeadHtml(configDir),
},

View File

@ -34,6 +34,36 @@ exports[`Storyshots Addons|Links.Link Second 1`] = `
</a>
`;
exports[`Storyshots Addons|Links.Scroll position First 1`] = `
Array [
<div
style="margin-bottom:100vh"
>
Scroll down to see the link
</div>,
<a
href="/"
>
Go to Second
</a>,
]
`;
exports[`Storyshots Addons|Links.Scroll position Second 1`] = `
Array [
<div
style="margin-bottom:100vh"
>
Scroll down to see the link
</div>,
<a
href="/"
>
Go to First
</a>,
]
`;
exports[`Storyshots Addons|Links.Select First 1`] = `
<a
href="/"

View File

@ -34,3 +34,13 @@ storiesOf('Addons|Links.Href', module).add('log', () => {
return <span>See action logger</span>;
});
storiesOf('Addons|Links.Scroll position', module)
.addDecorator(story => (
<React.Fragment>
<div style={{ marginBottom: '100vh' }}>Scroll down to see the link</div>
{story()}
</React.Fragment>
))
.add('First', () => <LinkTo story="Second">Go to Second</LinkTo>)
.add('Second', () => <LinkTo story="First">Go to First</LinkTo>);

View File

@ -1,6 +1,6 @@
import { createStore } from 'redux';
import addons from '@storybook/addons';
import { navigator, window } from 'global';
import { navigator, window, document } from 'global';
import createChannel from '@storybook/channel-postmessage';
import { handleKeyboardShortcuts } from '@storybook/ui/dist/libs/key_events';
@ -52,10 +52,20 @@ export default function start(render, { decorateStory } = {}) {
const { clearDecorators } = clientApi;
const configApi = new ConfigApi({ clearDecorators, ...context });
let prevKind;
let prevStory;
// initialize the UI
const renderUI = () => {
if (isBrowser) {
render(context);
const { selectedKind, selectedStory } = reduxStore.getState();
if (selectedKind !== prevKind || selectedStory !== prevStory) {
// Scroll to top of the page when changing story
document.documentElement.scrollTop = 0;
prevKind = selectedKind;
prevStory = selectedStory;
}
}
};

View File

@ -17297,12 +17297,11 @@ ws@^3.0.0, ws@~3.3.1:
safe-buffer "~5.1.0"
ultron "~1.1.0"
ws@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-4.1.0.tgz#a979b5d7d4da68bf54efe0408967c324869a7289"
ws@^5.1.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/ws/-/ws-5.1.0.tgz#ad7f95a65c625d47c24f2b8e5928018cf965e2a6"
dependencies:
async-limiter "~1.0.0"
safe-buffer "~5.1.0"
x-is-function@^1.0.4:
version "1.0.4"