[英]Storybook predefined viewport/parameters for one single story
I have one story including multiple stories.我有一个故事,包括多个故事。 For one story (
mobile
) I want to predefine its viewport - how can I do so?对于一个故事(
mobile
)我想预定义它的视口 - 我该怎么做?
That's what I tried:这就是我尝试过的:
import React from "react";
import {Navigation, NavigationProps} from "./navigation";
import {boolean} from "@storybook/addon-knobs";
export default
{
component: Navigation,
title: "Molecule/Navigation",
};
export const responsive = () => {
const props: NavigationProps = {
isLoggedIn: true,
}
return <Navigation {...props} />;
};
export const mobile = () => {
const props: NavigationProps = {
isLoggedIn: boolean("Angemeldet", false),
}
return <Navigation {...props} />;
};
mobile.paramters = {
viewport: {
defaultViewport: "Small mobile"
}
}
It`s not possible today.今天是不可能的。 If it's important for you, you should create a feature request into the storybook github repository.
如果它对您很重要,您应该在故事书 github 存储库中创建一个功能请求。
However, you can create a decorator which will change the viewport addon properties (honestly, I didn't test it)但是,您可以创建一个装饰器来更改视口插件属性(老实说,我没有测试它)
import { useAddonState } from '@storybook/api';
mobile.decorators = [() => {
const [state, setState] = useAddonState("storybook/viewport");
if (state?.selected !== 'mobile') {
setState({ selected: 'mobile', isRotated: false });
}
return { template: '<story/>' };
}];
Storybook documented this feature on their site using the vieport addon . Storybook 使用vieport 插件在他们的网站上记录了此功能。
Assuming you already have the viewport addon installed in your project, you can use the default viewports , or a custom one, and set it as default.假设您已经在项目中安装了视口插件,您可以使用默认视口或自定义视口,并将其设置为默认值。
Example default viewports for mobile1 height: 568px, width: 320px mobile1 的示例默认视口高度:568 像素,宽度:320 像素
export const mobile = () => {
const props: NavigationProps = {
isLoggedIn: boolean("Angemeldet", false),
}
return <Navigation {...props} />;
};
mobile.paramters = {
viewport: {
defaultViewport: "mobile1"
}
}
Example custom viewports示例自定义视口
const customViewports = {
kindleFire2: {
name: 'Kindle Fire 2',
styles: {
width: '600px',
height: '963px',
},
},
kindleFireHD: {
name: 'Kindle Fire HD',
styles: {
width: '533px',
height: '801px',
},
},
};
export const mobile = () => {
const props: NavigationProps = {
isLoggedIn: boolean("Angemeldet", false),
}
return <Navigation {...props} />;
};
mobile.paramters = {
viewport: {
viewports: customViewports,
defaultViewport: "kindleFireHD"
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.