From f8402d46ac3beb7d464e6d308265072fca55d098 Mon Sep 17 00:00:00 2001 From: Miguel Torres <miguelmariatorresrojas@gmail.com> Date: Sun, 29 Jul 2018 21:08:51 +0200 Subject: [PATCH] DevDocs: Gutenberg Components - Load examples dynamically Each example has now a specific class --- .../design/gutenberg-component-example.jsx | 10 ++++++++-- .../devdocs/design/gutenberg-components.jsx | 16 ++++++++++++++++ client/devdocs/design/style.scss | 19 ++++++++++++++----- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/client/devdocs/design/gutenberg-component-example.jsx b/client/devdocs/design/gutenberg-component-example.jsx index 6c10ae4caa530..e77a529623587 100644 --- a/client/devdocs/design/gutenberg-component-example.jsx +++ b/client/devdocs/design/gutenberg-component-example.jsx @@ -10,6 +10,7 @@ import { getSettings } from '@wordpress/date'; import { LiveError, LivePreview, LiveProvider } from 'react-live'; import request from 'superagent'; import codeBlocks from 'gfm-code-blocks'; +import classnames from 'classnames'; class Example extends React.Component { state = { @@ -32,7 +33,7 @@ class Example extends React.Component { format: 'markdown', } ) .then( ( { text } ) => { - let code = codeBlocks( text )[ 0 ].code; + let code = codeBlocks( text ).filter( block => 'jsx' === block.lang )[ 0 ].code; // react-live cannot resolve imports in real time, so we get rid of them // (dependencies will be injected via the scope property) @@ -49,8 +50,13 @@ class Example extends React.Component { withState, getSettings, }; + const className = classnames( + 'design__gutenberg-component-example', + `design__gutenberg-component-example--${ this.props.readmeFilePath }` + ); + return code ? ( - <LiveProvider code={ code } scope={ scope } className="design__gutenberg-component-example"> + <LiveProvider code={ code } scope={ scope } className={ className }> <LiveError /> <LivePreview /> </LiveProvider> diff --git a/client/devdocs/design/gutenberg-components.jsx b/client/devdocs/design/gutenberg-components.jsx index 5878bec3ab9c1..c2047e7a2abac 100644 --- a/client/devdocs/design/gutenberg-components.jsx +++ b/client/devdocs/design/gutenberg-components.jsx @@ -46,10 +46,26 @@ export default class extends React.Component { 'ButtonGroup', 'CheckboxControl', 'ClipboardButton', + 'ColorIndicator', + 'ColorPalette', 'Dashicon', 'Disabled', 'Draggable', [ 'DateTimePicker', { readmeFilePath: 'date-time' } ], + 'DropZone', + 'Dropdown', + 'DropdownMenu', + 'ExternalLink', + 'FocusableIframe', + 'FontSizePicker', + 'FormFileUpload', + 'FormToggle', + 'FormTokenField', + 'IconButton', + 'KeyboardShortcuts', + 'MenuGroup', + 'MenuItem', + 'MenuItemsChoice', ]; return ( diff --git a/client/devdocs/design/style.scss b/client/devdocs/design/style.scss index e9fe459dcb560..6507c527a2958 100644 --- a/client/devdocs/design/style.scss +++ b/client/devdocs/design/style.scss @@ -89,9 +89,18 @@ } } -.design__gutenberg-component-example { - // Styles the contenteditable div included in the Autocomplete example as an input - .components-autocomplete [contenteditable] { - @extend %form-field; - } +// Styles the contenteditable div included in the Gutenberg Autocomplete component example as an input +.design__gutenberg-component-example--autocomplete [contenteditable] { + @extend %form-field; +} + +.design__gutenberg-component-example--drop-zone { + position: relative; + text-align: center; + padding: 50px; +} + +.design__gutenberg-component-example--date-time, +.design__gutenberg-component-example--dropdown { + display: inline-block; }