mirror of
https://github.com/storybookjs/storybook.git
synced 2025-04-08 06:31:47 +08:00
Merge branch 'master' into dependencies.io-update-build-307.0.0
This commit is contained in:
commit
320b9899ef
@ -105,6 +105,11 @@ setOptions({
|
||||
* @type {String}
|
||||
*/
|
||||
selectedAddonPanel: undefined, // The order of addons in the "Addon panel" is the same as you import them in 'addons.js'. The first panel will be opened by default as you run Storybook
|
||||
/**
|
||||
* enable/disable shortcuts
|
||||
* @type {Boolean}
|
||||
*/
|
||||
enableShortcuts: false, // true by default
|
||||
});
|
||||
|
||||
storybook.configure(() => require('./stories'), module);
|
||||
|
@ -76,10 +76,7 @@ const createComponentFromTemplate = (template: string, styles: string[]): Functi
|
||||
})(componentClass);
|
||||
};
|
||||
|
||||
const initModule = (
|
||||
currentStory: IGetStory,
|
||||
reRender: boolean = false
|
||||
): Function => {
|
||||
const initModule = (currentStory: IGetStory, reRender: boolean = false): Function => {
|
||||
const storyObj = currentStory();
|
||||
const { component, template, props, styles, moduleMetadata = {} } = storyObj;
|
||||
|
||||
|
@ -28,8 +28,5 @@ export type NgProvidedData = NgStory | NgError;
|
||||
|
||||
export type IGetStory = () => NgStory;
|
||||
|
||||
export type IRenderStoryFn = (
|
||||
story: IGetStory,
|
||||
reRender?: boolean
|
||||
) => void;
|
||||
export type IRenderStoryFn = (story: IGetStory, reRender?: boolean) => void;
|
||||
export type IRenderErrorFn = (error: Error) => void;
|
||||
|
@ -15,6 +15,7 @@ setOptions({
|
||||
sortStoriesByKind: false,
|
||||
hierarchySeparator: /\./,
|
||||
hierarchyRootSeparator: /\|/,
|
||||
enableShortcuts: false,
|
||||
});
|
||||
|
||||
// deprecated usage of infoAddon
|
||||
|
@ -22,7 +22,7 @@
|
||||
"@storybook/client-logger": "3.4.0-rc.3",
|
||||
"@storybook/node-logger": "3.4.0-rc.3",
|
||||
"@storybook/ui": "3.4.0-rc.3",
|
||||
"autoprefixer": "^7.2.6",
|
||||
"autoprefixer": "^8.0.0",
|
||||
"babel-runtime": "^6.26.0",
|
||||
"chalk": "^2.3.2",
|
||||
"commander": "^2.15.1",
|
||||
|
@ -24,7 +24,6 @@ export function createDefaultWebpackConfig(storybookBaseConfig) {
|
||||
plugins: () => [
|
||||
require('postcss-flexbugs-fixes'), // eslint-disable-line
|
||||
autoprefixer({
|
||||
browsers: ['>1%', 'last 4 versions', 'Firefox ESR', 'not ie < 9'],
|
||||
flexbox: 'no-2009',
|
||||
}),
|
||||
],
|
||||
|
@ -6,20 +6,23 @@ const deprecationMessage = (oldName, newName) =>
|
||||
`The ${oldName} option has been renamed to ${newName} and will not be available in the next major Storybook release. Please update your config.`;
|
||||
|
||||
export function keyEventToOptions(currentOptions, event) {
|
||||
switch (event) {
|
||||
case features.FULLSCREEN:
|
||||
return { goFullScreen: !currentOptions.goFullScreen };
|
||||
case features.ADDON_PANEL:
|
||||
return { showAddonPanel: !currentOptions.showAddonPanel };
|
||||
case features.STORIES_PANEL:
|
||||
return { showStoriesPanel: !currentOptions.showStoriesPanel };
|
||||
case features.SHOW_SEARCH:
|
||||
return { showSearchBox: true };
|
||||
case features.ADDON_PANEL_IN_RIGHT:
|
||||
return { addonPanelInRight: !currentOptions.addonPanelInRight };
|
||||
default:
|
||||
return {};
|
||||
if (currentOptions.enableShortcuts) {
|
||||
switch (event) {
|
||||
case features.FULLSCREEN:
|
||||
return { goFullScreen: !currentOptions.goFullScreen };
|
||||
case features.ADDON_PANEL:
|
||||
return { showAddonPanel: !currentOptions.showAddonPanel };
|
||||
case features.STORIES_PANEL:
|
||||
return { showStoriesPanel: !currentOptions.showStoriesPanel };
|
||||
case features.SHOW_SEARCH:
|
||||
return { showSearchBox: true };
|
||||
case features.ADDON_PANEL_IN_RIGHT:
|
||||
return { addonPanelInRight: !currentOptions.addonPanelInRight };
|
||||
default:
|
||||
return {};
|
||||
}
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
const renamedOptions = {
|
||||
|
@ -9,6 +9,7 @@ export default {
|
||||
showAddonPanel: true,
|
||||
showSearchBox: false,
|
||||
addonPanelInRight: false,
|
||||
enableShortcuts: true,
|
||||
},
|
||||
},
|
||||
};
|
||||
|
@ -50,19 +50,22 @@ const linkStyle = {
|
||||
borderRadius: 2,
|
||||
};
|
||||
|
||||
const Header = ({ openShortcutsHelp, name, url }) => (
|
||||
const Header = ({ openShortcutsHelp, name, url, enableShortcutsHelp }) => (
|
||||
<div style={wrapperStyle}>
|
||||
<a style={linkStyle} href={url} target="_blank" rel="noopener noreferrer">
|
||||
<h3 style={headingStyle}>{name}</h3>
|
||||
</a>
|
||||
<button style={shortcutIconStyle} onClick={openShortcutsHelp}>
|
||||
⌘
|
||||
</button>
|
||||
{enableShortcutsHelp && (
|
||||
<button style={shortcutIconStyle} onClick={openShortcutsHelp}>
|
||||
⌘
|
||||
</button>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
|
||||
Header.defaultProps = {
|
||||
openShortcutsHelp: null,
|
||||
enableShortcutsHelp: true,
|
||||
name: '',
|
||||
url: '',
|
||||
};
|
||||
@ -71,6 +74,7 @@ Header.propTypes = {
|
||||
openShortcutsHelp: PropTypes.func,
|
||||
name: PropTypes.string,
|
||||
url: PropTypes.string,
|
||||
enableShortcutsHelp: PropTypes.bool,
|
||||
};
|
||||
|
||||
export default Header;
|
||||
|
@ -45,11 +45,23 @@ class StoriesPanel extends Component {
|
||||
}
|
||||
|
||||
render() {
|
||||
const { name, onStoryFilter, openShortcutsHelp, storyFilter, url } = this.props;
|
||||
const {
|
||||
name,
|
||||
onStoryFilter,
|
||||
openShortcutsHelp,
|
||||
storyFilter,
|
||||
url,
|
||||
shortcutOptions,
|
||||
} = this.props;
|
||||
|
||||
return (
|
||||
<div style={mainStyle}>
|
||||
<Header name={name} url={url} openShortcutsHelp={openShortcutsHelp} />
|
||||
<Header
|
||||
name={name}
|
||||
url={url}
|
||||
openShortcutsHelp={shortcutOptions.enableShortcuts && openShortcutsHelp}
|
||||
enableShortcutsHelp={shortcutOptions.enableShortcuts}
|
||||
/>
|
||||
<TextFilter
|
||||
text={storyFilter}
|
||||
onClear={() => onStoryFilter('')}
|
||||
@ -68,6 +80,14 @@ StoriesPanel.defaultProps = {
|
||||
openShortcutsHelp: null,
|
||||
name: '',
|
||||
url: '',
|
||||
shortcutOptions: {
|
||||
goFullScreen: false,
|
||||
showStoriesPanel: true,
|
||||
showAddonPanel: true,
|
||||
showSearchBox: false,
|
||||
addonPanelInRight: false,
|
||||
enableShortcuts: true,
|
||||
},
|
||||
};
|
||||
|
||||
StoriesPanel.propTypes = {
|
||||
@ -84,6 +104,14 @@ StoriesPanel.propTypes = {
|
||||
openShortcutsHelp: PropTypes.func,
|
||||
name: PropTypes.string,
|
||||
url: PropTypes.string,
|
||||
shortcutOptions: PropTypes.shape({
|
||||
goFullScreen: PropTypes.bool,
|
||||
showStoriesPanel: PropTypes.bool,
|
||||
showAddonPanel: PropTypes.bool,
|
||||
showSearchBox: PropTypes.bool,
|
||||
addonPanelInRight: PropTypes.bool,
|
||||
enableShortcuts: PropTypes.bool,
|
||||
}),
|
||||
};
|
||||
|
||||
export default StoriesPanel;
|
||||
|
@ -13,7 +13,7 @@ import {
|
||||
export const mapper = (state, props, { actions }) => {
|
||||
const actionMap = actions();
|
||||
|
||||
const { stories, selectedKind, selectedStory, uiOptions, storyFilter } = state;
|
||||
const { stories, selectedKind, selectedStory, uiOptions, storyFilter, shortcutOptions } = state;
|
||||
const {
|
||||
name,
|
||||
url,
|
||||
@ -48,6 +48,7 @@ export const mapper = (state, props, { actions }) => {
|
||||
selectedStory,
|
||||
selectedHierarchy,
|
||||
onSelectStory: actionMap.api.selectStory,
|
||||
shortcutOptions,
|
||||
|
||||
storyFilter,
|
||||
onStoryFilter: actionMap.ui.setStoryFilter,
|
||||
|
30
yarn.lock
30
yarn.lock
@ -1070,12 +1070,12 @@ autoprefixer@^7.2.3:
|
||||
postcss "^6.0.16"
|
||||
postcss-value-parser "^3.2.3"
|
||||
|
||||
autoprefixer@^7.2.6:
|
||||
version "7.2.6"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-7.2.6.tgz#256672f86f7c735da849c4f07d008abb056067dc"
|
||||
autoprefixer@^8.0.0:
|
||||
version "8.0.0"
|
||||
resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-8.0.0.tgz#c19e480f061013127c373df0b01cf46919943f74"
|
||||
dependencies:
|
||||
browserslist "^2.11.3"
|
||||
caniuse-lite "^1.0.30000805"
|
||||
browserslist "^3.0.0"
|
||||
caniuse-lite "^1.0.30000808"
|
||||
normalize-range "^0.1.2"
|
||||
num2fraction "^1.2.2"
|
||||
postcss "^6.0.17"
|
||||
@ -2770,12 +2770,12 @@ browserslist@^2.1.2, browserslist@^2.11.1, browserslist@^2.5.1:
|
||||
caniuse-lite "^1.0.30000789"
|
||||
electron-to-chromium "^1.3.30"
|
||||
|
||||
browserslist@^2.11.3:
|
||||
version "2.11.3"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2"
|
||||
browserslist@^3.0.0:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-3.1.1.tgz#d380fc048bc3a33e60fb87dc135110ebaaa6320a"
|
||||
dependencies:
|
||||
caniuse-lite "^1.0.30000792"
|
||||
electron-to-chromium "^1.3.30"
|
||||
caniuse-lite "^1.0.30000809"
|
||||
electron-to-chromium "^1.3.33"
|
||||
|
||||
bser@1.0.2:
|
||||
version "1.0.2"
|
||||
@ -3024,9 +3024,9 @@ caniuse-lite@^1.0.30000748, caniuse-lite@^1.0.30000789, caniuse-lite@^1.0.300007
|
||||
version "1.0.30000791"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000791.tgz#8e35745efd483a3e23bb7d350990326d2319fc16"
|
||||
|
||||
caniuse-lite@^1.0.30000792, caniuse-lite@^1.0.30000805:
|
||||
version "1.0.30000809"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000809.tgz#1e12c1344b8f74d56737ee2614bcedb648943479"
|
||||
caniuse-lite@^1.0.30000808, caniuse-lite@^1.0.30000809:
|
||||
version "1.0.30000810"
|
||||
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000810.tgz#47585fffce0e9f3593a6feea4673b945424351d9"
|
||||
|
||||
capture-stack-trace@^1.0.0:
|
||||
version "1.0.0"
|
||||
@ -4961,6 +4961,10 @@ electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30:
|
||||
dependencies:
|
||||
electron-releases "^2.1.0"
|
||||
|
||||
electron-to-chromium@^1.3.33:
|
||||
version "1.3.34"
|
||||
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.34.tgz#d93498f40391bb0c16a603d8241b9951404157ed"
|
||||
|
||||
elegant-spinner@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/elegant-spinner/-/elegant-spinner-1.0.1.tgz#db043521c95d7e303fd8f345bedc3349cfb0729e"
|
||||
|
Loading…
x
Reference in New Issue
Block a user