From 7ad2e8cc9f5a65c37d74c74ff5a8434a531a354a Mon Sep 17 00:00:00 2001 From: Mohamed Shaaban Date: Sun, 25 Feb 2018 23:10:35 +0100 Subject: [PATCH] Decouple initial viewports from SelectViewport component --- .../viewport/src/manager/components/Panel.js | 9 +++++--- .../src/manager/components/SelectViewport.js | 5 ++-- .../manager/components/tests/Panel.test.js | 23 ++++++++++++++++--- .../components/tests/SelectViewport.test.js | 10 ++++---- .../components/tests/viewportInfo.spec.js | 8 +++---- .../src/manager/components/viewportInfo.js | 2 +- 6 files changed, 40 insertions(+), 17 deletions(-) diff --git a/addons/viewport/src/manager/components/Panel.js b/addons/viewport/src/manager/components/Panel.js index 1056888938d..122c0347266 100644 --- a/addons/viewport/src/manager/components/Panel.js +++ b/addons/viewport/src/manager/components/Panel.js @@ -3,7 +3,7 @@ import PropTypes from 'prop-types'; import { baseFonts } from '@storybook/components'; import { document } from 'global'; -import { viewports, defaultViewport, resetViewport } from './viewportInfo'; +import { initialViewports, defaultViewport, resetViewport } from './viewportInfo'; import { SelectViewport } from './SelectViewport'; import { RotateViewport } from './RotateViewport'; import { UPDATE_VIEWPORT_EVENT_ID } from '../../shared'; @@ -27,6 +27,7 @@ export class Panel extends Component { super(props, context); this.state = { viewport: defaultViewport, + viewports: initialViewports, isLandscape: false, }; @@ -64,7 +65,7 @@ export class Panel extends Component { }; updateIframe = () => { - const { viewport: viewportKey, isLandscape } = this.state; + const { viewports, viewport: viewportKey, isLandscape } = this.state; const viewport = viewports[viewportKey] || resetViewport; if (!this.iframe) { @@ -82,7 +83,7 @@ export class Panel extends Component { }; render() { - const { isLandscape, viewport } = this.state; + const { isLandscape, viewport, viewports } = this.state; const disableDefault = viewport === defaultViewport; const disabledStyles = disableDefault ? styles.disabled : {}; @@ -97,6 +98,8 @@ export class Panel extends Component { return (
this.changeViewport(e.target.value)} /> diff --git a/addons/viewport/src/manager/components/SelectViewport.js b/addons/viewport/src/manager/components/SelectViewport.js index 230e360239d..0312a06263c 100644 --- a/addons/viewport/src/manager/components/SelectViewport.js +++ b/addons/viewport/src/manager/components/SelectViewport.js @@ -1,10 +1,9 @@ import React from 'react'; import PropTypes from 'prop-types'; -import { viewports, defaultViewport } from './viewportInfo'; import * as styles from './styles'; -export function SelectViewport({ activeViewport, onChange }) { +export function SelectViewport({ viewports, defaultViewport, activeViewport, onChange }) { return (