Merge pull request #1430 from processing/semantic-elements
Add <main> to all pages, add semantic HTML updates
This commit is contained in:
commit
ec16905ff0
16 changed files with 403 additions and 405 deletions
|
@ -682,21 +682,12 @@ class Nav extends React.PureComponent {
|
||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<nav className="nav" title="main-navigation" ref={(node) => { this.node = node; }}>
|
<header>
|
||||||
{this.renderLeftLayout(navDropdownState)}
|
<nav className="nav" title="main-navigation" ref={(node) => { this.node = node; }}>
|
||||||
{this.renderUserMenu(navDropdownState)}
|
{this.renderLeftLayout(navDropdownState)}
|
||||||
{/*
|
{this.renderUserMenu(navDropdownState)}
|
||||||
<div className="nav__announce">
|
</nav>
|
||||||
This is a preview version of the editor, that has not yet been officially released.
|
</header>
|
||||||
It is in development, you can report bugs <a
|
|
||||||
href="https://github.com/processing/p5.js-web-editor/issues"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
>here</a>.
|
|
||||||
Please use with caution.
|
|
||||||
</div>
|
|
||||||
*/}
|
|
||||||
</nav>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,344 +1,346 @@
|
||||||
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
||||||
|
|
||||||
exports[`Nav renders correctly 1`] = `
|
exports[`Nav renders correctly 1`] = `
|
||||||
<nav
|
<header>
|
||||||
className="nav"
|
<nav
|
||||||
title="main-navigation"
|
className="nav"
|
||||||
>
|
title="main-navigation"
|
||||||
<ul
|
|
||||||
className="nav__items-left"
|
|
||||||
>
|
>
|
||||||
<li
|
<ul
|
||||||
className="nav__item-logo"
|
className="nav__items-left"
|
||||||
>
|
>
|
||||||
<test-file-stub
|
<li
|
||||||
aria-label="p5.js Logo"
|
className="nav__item-logo"
|
||||||
className="svg__logo"
|
|
||||||
focusable="false"
|
|
||||||
role="img"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav__item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
onMouseOver={[Function]}
|
|
||||||
>
|
>
|
||||||
<span
|
|
||||||
className="nav__item-header"
|
|
||||||
>
|
|
||||||
File
|
|
||||||
</span>
|
|
||||||
<test-file-stub
|
<test-file-stub
|
||||||
aria-hidden="true"
|
aria-label="p5.js Logo"
|
||||||
className="nav__item-header-triangle"
|
className="svg__logo"
|
||||||
focusable="false"
|
focusable="false"
|
||||||
|
role="img"
|
||||||
/>
|
/>
|
||||||
</button>
|
</li>
|
||||||
<ul
|
<li
|
||||||
className="nav__dropdown"
|
className="nav__item"
|
||||||
>
|
>
|
||||||
<li
|
<button
|
||||||
className="nav__dropdown-item"
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
onMouseOver={[Function]}
|
||||||
>
|
>
|
||||||
<button
|
<span
|
||||||
onBlur={[Function]}
|
className="nav__item-header"
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
New
|
File
|
||||||
</button>
|
</span>
|
||||||
</li>
|
<test-file-stub
|
||||||
<li
|
aria-hidden="true"
|
||||||
className="nav__dropdown-item"
|
className="nav__item-header-triangle"
|
||||||
|
focusable="false"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<ul
|
||||||
|
className="nav__dropdown"
|
||||||
>
|
>
|
||||||
<button
|
<li
|
||||||
onBlur={[Function]}
|
className="nav__dropdown-item"
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Duplicate
|
<button
|
||||||
</button>
|
onBlur={[Function]}
|
||||||
</li>
|
onClick={[Function]}
|
||||||
<li
|
onFocus={[Function]}
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
|
||||||
Share
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
|
||||||
Download
|
|
||||||
</button>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<a
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
style={Object {}}
|
|
||||||
>
|
|
||||||
Open
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
className="nav__item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
onMouseOver={[Function]}
|
|
||||||
>
|
|
||||||
<span
|
|
||||||
className="nav__item-header"
|
|
||||||
>
|
|
||||||
Edit
|
|
||||||
</span>
|
|
||||||
<test-file-stub
|
|
||||||
aria-hidden="true"
|
|
||||||
className="nav__item-header-triangle"
|
|
||||||
focusable="false"
|
|
||||||
/>
|
|
||||||
</button>
|
|
||||||
<ul
|
|
||||||
className="nav__dropdown"
|
|
||||||
>
|
|
||||||
<li
|
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
|
||||||
Tidy Code
|
|
||||||
<span
|
|
||||||
className="nav__keyboard-shortcut"
|
|
||||||
>
|
>
|
||||||
⇧
|
New
|
||||||
+Tab
|
</button>
|
||||||
</span>
|
</li>
|
||||||
</button>
|
<li
|
||||||
</li>
|
className="nav__dropdown-item"
|
||||||
<li
|
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Find
|
<button
|
||||||
<span
|
onBlur={[Function]}
|
||||||
className="nav__keyboard-shortcut"
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
>
|
>
|
||||||
⌃
|
Duplicate
|
||||||
+F
|
</button>
|
||||||
</span>
|
</li>
|
||||||
</button>
|
<li
|
||||||
</li>
|
className="nav__dropdown-item"
|
||||||
<li
|
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Find Next
|
<button
|
||||||
<span
|
onBlur={[Function]}
|
||||||
className="nav__keyboard-shortcut"
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
>
|
>
|
||||||
⌃
|
Share
|
||||||
+G
|
</button>
|
||||||
</span>
|
</li>
|
||||||
</button>
|
<li
|
||||||
</li>
|
className="nav__dropdown-item"
|
||||||
<li
|
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Find Previous
|
<button
|
||||||
<span
|
onBlur={[Function]}
|
||||||
className="nav__keyboard-shortcut"
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
>
|
>
|
||||||
⇧
|
Download
|
||||||
+
|
</button>
|
||||||
⌃
|
</li>
|
||||||
+G
|
<li
|
||||||
</span>
|
className="nav__dropdown-item"
|
||||||
</button>
|
>
|
||||||
</li>
|
<a
|
||||||
</ul>
|
onBlur={[Function]}
|
||||||
</li>
|
onClick={[Function]}
|
||||||
<li
|
onFocus={[Function]}
|
||||||
className="nav__item"
|
style={Object {}}
|
||||||
>
|
>
|
||||||
<button
|
Open
|
||||||
onBlur={[Function]}
|
</a>
|
||||||
onClick={[Function]}
|
</li>
|
||||||
onFocus={[Function]}
|
</ul>
|
||||||
onMouseOver={[Function]}
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__item"
|
||||||
>
|
>
|
||||||
<span
|
<button
|
||||||
className="nav__item-header"
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
onMouseOver={[Function]}
|
||||||
>
|
>
|
||||||
Sketch
|
<span
|
||||||
</span>
|
className="nav__item-header"
|
||||||
<test-file-stub
|
|
||||||
aria-hidden="true"
|
|
||||||
className="nav__item-header-triangle"
|
|
||||||
focusable="false"
|
|
||||||
/>
|
|
||||||
</button>
|
|
||||||
<ul
|
|
||||||
className="nav__dropdown"
|
|
||||||
>
|
|
||||||
<li
|
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Add File
|
Edit
|
||||||
</button>
|
</span>
|
||||||
</li>
|
<test-file-stub
|
||||||
<li
|
aria-hidden="true"
|
||||||
className="nav__dropdown-item"
|
className="nav__item-header-triangle"
|
||||||
|
focusable="false"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<ul
|
||||||
|
className="nav__dropdown"
|
||||||
>
|
>
|
||||||
<button
|
<li
|
||||||
onBlur={[Function]}
|
className="nav__dropdown-item"
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Add Folder
|
<button
|
||||||
</button>
|
onBlur={[Function]}
|
||||||
</li>
|
onClick={[Function]}
|
||||||
<li
|
onFocus={[Function]}
|
||||||
className="nav__dropdown-item"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
|
||||||
Run
|
|
||||||
<span
|
|
||||||
className="nav__keyboard-shortcut"
|
|
||||||
>
|
>
|
||||||
⌃
|
Tidy Code
|
||||||
+Enter
|
<span
|
||||||
</span>
|
className="nav__keyboard-shortcut"
|
||||||
</button>
|
>
|
||||||
</li>
|
⇧
|
||||||
<li
|
+Tab
|
||||||
className="nav__dropdown-item"
|
</span>
|
||||||
>
|
</button>
|
||||||
<button
|
</li>
|
||||||
onBlur={[Function]}
|
<li
|
||||||
onClick={[Function]}
|
className="nav__dropdown-item"
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Stop
|
<button
|
||||||
<span
|
onBlur={[Function]}
|
||||||
className="nav__keyboard-shortcut"
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
>
|
>
|
||||||
⇧
|
Find
|
||||||
+
|
<span
|
||||||
⌃
|
className="nav__keyboard-shortcut"
|
||||||
+Enter
|
>
|
||||||
</span>
|
⌃
|
||||||
</button>
|
+F
|
||||||
</li>
|
</span>
|
||||||
</ul>
|
</button>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
className="nav__item"
|
className="nav__dropdown-item"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
onBlur={[Function]}
|
onBlur={[Function]}
|
||||||
onClick={[Function]}
|
onClick={[Function]}
|
||||||
onFocus={[Function]}
|
onFocus={[Function]}
|
||||||
onMouseOver={[Function]}
|
>
|
||||||
|
Find Next
|
||||||
|
<span
|
||||||
|
className="nav__keyboard-shortcut"
|
||||||
|
>
|
||||||
|
⌃
|
||||||
|
+G
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__dropdown-item"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
>
|
||||||
|
Find Previous
|
||||||
|
<span
|
||||||
|
className="nav__keyboard-shortcut"
|
||||||
|
>
|
||||||
|
⇧
|
||||||
|
+
|
||||||
|
⌃
|
||||||
|
+G
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__item"
|
||||||
>
|
>
|
||||||
<span
|
<button
|
||||||
className="nav__item-header"
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
onMouseOver={[Function]}
|
||||||
>
|
>
|
||||||
Help
|
<span
|
||||||
</span>
|
className="nav__item-header"
|
||||||
<test-file-stub
|
>
|
||||||
aria-hidden="true"
|
Sketch
|
||||||
className="nav__item-header-triangle"
|
</span>
|
||||||
focusable="false"
|
<test-file-stub
|
||||||
/>
|
aria-hidden="true"
|
||||||
</button>
|
className="nav__item-header-triangle"
|
||||||
<ul
|
focusable="false"
|
||||||
className="nav__dropdown"
|
/>
|
||||||
|
</button>
|
||||||
|
<ul
|
||||||
|
className="nav__dropdown"
|
||||||
|
>
|
||||||
|
<li
|
||||||
|
className="nav__dropdown-item"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
>
|
||||||
|
Add File
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__dropdown-item"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
>
|
||||||
|
Add Folder
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__dropdown-item"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
>
|
||||||
|
Run
|
||||||
|
<span
|
||||||
|
className="nav__keyboard-shortcut"
|
||||||
|
>
|
||||||
|
⌃
|
||||||
|
+Enter
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__dropdown-item"
|
||||||
|
>
|
||||||
|
<button
|
||||||
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
>
|
||||||
|
Stop
|
||||||
|
<span
|
||||||
|
className="nav__keyboard-shortcut"
|
||||||
|
>
|
||||||
|
⇧
|
||||||
|
+
|
||||||
|
⌃
|
||||||
|
+Enter
|
||||||
|
</span>
|
||||||
|
</button>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__item"
|
||||||
>
|
>
|
||||||
<li
|
<button
|
||||||
className="nav__dropdown-item"
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
onMouseOver={[Function]}
|
||||||
>
|
>
|
||||||
<button
|
<span
|
||||||
onBlur={[Function]}
|
className="nav__item-header"
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
>
|
>
|
||||||
Keyboard Shortcuts
|
Help
|
||||||
</button>
|
</span>
|
||||||
</li>
|
<test-file-stub
|
||||||
<li
|
aria-hidden="true"
|
||||||
className="nav__dropdown-item"
|
className="nav__item-header-triangle"
|
||||||
|
focusable="false"
|
||||||
|
/>
|
||||||
|
</button>
|
||||||
|
<ul
|
||||||
|
className="nav__dropdown"
|
||||||
>
|
>
|
||||||
<a
|
<li
|
||||||
href="https://p5js.org/reference/"
|
className="nav__dropdown-item"
|
||||||
onBlur={[Function]}
|
|
||||||
onClick={[Function]}
|
|
||||||
onFocus={[Function]}
|
|
||||||
rel="noopener noreferrer"
|
|
||||||
target="_blank"
|
|
||||||
>
|
>
|
||||||
Reference
|
<button
|
||||||
</a>
|
onBlur={[Function]}
|
||||||
</li>
|
onClick={[Function]}
|
||||||
<li
|
onFocus={[Function]}
|
||||||
className="nav__dropdown-item"
|
>
|
||||||
>
|
Keyboard Shortcuts
|
||||||
<a
|
</button>
|
||||||
onBlur={[Function]}
|
</li>
|
||||||
onClick={[Function]}
|
<li
|
||||||
onFocus={[Function]}
|
className="nav__dropdown-item"
|
||||||
style={Object {}}
|
|
||||||
>
|
>
|
||||||
About
|
<a
|
||||||
</a>
|
href="https://p5js.org/reference/"
|
||||||
</li>
|
onBlur={[Function]}
|
||||||
</ul>
|
onClick={[Function]}
|
||||||
</li>
|
onFocus={[Function]}
|
||||||
</ul>
|
rel="noopener noreferrer"
|
||||||
</nav>
|
target="_blank"
|
||||||
|
>
|
||||||
|
Reference
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li
|
||||||
|
className="nav__dropdown-item"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
onBlur={[Function]}
|
||||||
|
onClick={[Function]}
|
||||||
|
onFocus={[Function]}
|
||||||
|
style={Object {}}
|
||||||
|
>
|
||||||
|
About
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</nav>
|
||||||
|
</header>
|
||||||
`;
|
`;
|
||||||
|
|
|
@ -175,7 +175,7 @@ class AssetList extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
const { assetList } = this.props;
|
const { assetList } = this.props;
|
||||||
return (
|
return (
|
||||||
<div className="asset-table-container">
|
<article className="asset-table-container">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>{this.getAssetsTitle()}</title>
|
<title>{this.getAssetsTitle()}</title>
|
||||||
</Helmet>
|
</Helmet>
|
||||||
|
@ -195,7 +195,7 @@ class AssetList extends React.Component {
|
||||||
{assetList.map(asset => <AssetListRow asset={asset} key={asset.key} />)}
|
{assetList.map(asset => <AssetListRow asset={asset} key={asset.key} />)}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>}
|
</table>}
|
||||||
</div>
|
</article>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -129,7 +129,7 @@ class CollectionList extends React.Component {
|
||||||
const username = this.props.username !== undefined ? this.props.username : this.props.user.username;
|
const username = this.props.username !== undefined ? this.props.username : this.props.user.username;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="sketches-table-container">
|
<article className="sketches-table-container">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>{this.getTitle()}</title>
|
<title>{this.getTitle()}</title>
|
||||||
</Helmet>
|
</Helmet>
|
||||||
|
@ -176,7 +176,7 @@ class CollectionList extends React.Component {
|
||||||
</Overlay>
|
</Overlay>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
</div>
|
</article>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -86,8 +86,8 @@ class Console extends React.Component {
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={consoleClass} role="main">
|
<section className={consoleClass} >
|
||||||
<div className="preview-console__header">
|
<header className="preview-console__header">
|
||||||
<h2 className="preview-console__header-title">Console</h2>
|
<h2 className="preview-console__header-title">Console</h2>
|
||||||
<div className="preview-console__header-buttons">
|
<div className="preview-console__header-buttons">
|
||||||
<button className="preview-console__clear" onClick={this.props.clearConsole} aria-label="Clear console">
|
<button className="preview-console__clear" onClick={this.props.clearConsole} aria-label="Clear console">
|
||||||
|
@ -104,7 +104,7 @@ class Console extends React.Component {
|
||||||
<UpArrowIcon focusable="false" aria-hidden="true" />
|
<UpArrowIcon focusable="false" aria-hidden="true" />
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</header>
|
||||||
<div ref={(element) => { this.consoleMessages = element; }} className="preview-console__messages">
|
<div ref={(element) => { this.consoleMessages = element; }} className="preview-console__messages">
|
||||||
{this.props.consoleEvents.map((consoleEvent) => {
|
{this.props.consoleEvents.map((consoleEvent) => {
|
||||||
const { method, times } = consoleEvent;
|
const { method, times } = consoleEvent;
|
||||||
|
@ -127,7 +127,7 @@ class Console extends React.Component {
|
||||||
);
|
);
|
||||||
})}
|
})}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</section>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -314,10 +314,7 @@ class Editor extends React.Component {
|
||||||
});
|
});
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section
|
<section className={editorSectionClass} >
|
||||||
role="main"
|
|
||||||
className={editorSectionClass}
|
|
||||||
>
|
|
||||||
<header className="editor__header">
|
<header className="editor__header">
|
||||||
<button
|
<button
|
||||||
aria-label="Open Sketch files navigation"
|
aria-label="Open Sketch files navigation"
|
||||||
|
@ -348,8 +345,8 @@ class Editor extends React.Component {
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</header>
|
</header>
|
||||||
<div ref={(element) => { this.codemirrorContainer = element; }} className={editorHolderClass} >
|
<article ref={(element) => { this.codemirrorContainer = element; }} className={editorHolderClass} >
|
||||||
</div>
|
</article>
|
||||||
<EditorAccessibility
|
<EditorAccessibility
|
||||||
lintMessages={this.props.lintMessages}
|
lintMessages={this.props.lintMessages}
|
||||||
/>
|
/>
|
||||||
|
|
|
@ -68,8 +68,8 @@ class Sidebar extends React.Component {
|
||||||
const rootFile = this.props.files.filter(file => file.name === 'root')[0];
|
const rootFile = this.props.files.filter(file => file.name === 'root')[0];
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<nav className={sidebarClass} title="file-navigation" >
|
<section className={sidebarClass}>
|
||||||
<div className="sidebar__header" onContextMenu={this.toggleProjectOptions}>
|
<header className="sidebar__header" onContextMenu={this.toggleProjectOptions}>
|
||||||
<h3 className="sidebar__title">
|
<h3 className="sidebar__title">
|
||||||
<span>Sketch Files</span>
|
<span>Sketch Files</span>
|
||||||
</h3>
|
</h3>
|
||||||
|
@ -130,12 +130,12 @@ class Sidebar extends React.Component {
|
||||||
}
|
}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</header>
|
||||||
<ConnectedFileNode
|
<ConnectedFileNode
|
||||||
id={rootFile.id}
|
id={rootFile.id}
|
||||||
canEdit={canEditProject}
|
canEdit={canEditProject}
|
||||||
/>
|
/>
|
||||||
</nav>
|
</section>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -414,7 +414,7 @@ class SketchList extends React.Component {
|
||||||
render() {
|
render() {
|
||||||
const username = this.props.username !== undefined ? this.props.username : this.props.user.username;
|
const username = this.props.username !== undefined ? this.props.username : this.props.user.username;
|
||||||
return (
|
return (
|
||||||
<div className="sketches-table-container">
|
<article className="sketches-table-container">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>{this.getSketchesTitle()}</title>
|
<title>{this.getSketchesTitle()}</title>
|
||||||
</Helmet>
|
</Helmet>
|
||||||
|
@ -457,7 +457,7 @@ class SketchList extends React.Component {
|
||||||
/>
|
/>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
}
|
}
|
||||||
</div>
|
</article>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,7 +25,7 @@ class FullView extends React.Component {
|
||||||
owner={{ username: this.props.project.owner ? `${this.props.project.owner.username}` : '' }}
|
owner={{ username: this.props.project.owner ? `${this.props.project.owner.username}` : '' }}
|
||||||
project={{ name: this.props.project.name, id: this.props.params.project_id }}
|
project={{ name: this.props.project.name, id: this.props.params.project_id }}
|
||||||
/>
|
/>
|
||||||
<div className="preview-frame-holder">
|
<main className="preview-frame-holder">
|
||||||
<PreviewFrame
|
<PreviewFrame
|
||||||
htmlFile={this.props.htmlFile}
|
htmlFile={this.props.htmlFile}
|
||||||
jsFiles={this.props.jsFiles}
|
jsFiles={this.props.jsFiles}
|
||||||
|
@ -48,7 +48,7 @@ class FullView extends React.Component {
|
||||||
expandConsole={this.ident}
|
expandConsole={this.ident}
|
||||||
clearConsole={this.ident}
|
clearConsole={this.ident}
|
||||||
/>
|
/>
|
||||||
</div>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -239,7 +239,7 @@ class IDEView extends React.Component {
|
||||||
/>
|
/>
|
||||||
</Overlay>
|
</Overlay>
|
||||||
}
|
}
|
||||||
<div className="editor-preview-container">
|
<main className="editor-preview-container">
|
||||||
<SplitPane
|
<SplitPane
|
||||||
split="vertical"
|
split="vertical"
|
||||||
size={this.state.sidebarSize}
|
size={this.state.sidebarSize}
|
||||||
|
@ -327,7 +327,7 @@ class IDEView extends React.Component {
|
||||||
theme={this.props.preferences.theme}
|
theme={this.props.preferences.theme}
|
||||||
/>
|
/>
|
||||||
</SplitPane>
|
</SplitPane>
|
||||||
<div className="preview-frame-holder">
|
<section className="preview-frame-holder">
|
||||||
<header className="preview-frame__header">
|
<header className="preview-frame__header">
|
||||||
<h2 className="preview-frame__title">Preview</h2>
|
<h2 className="preview-frame__title">Preview</h2>
|
||||||
</header>
|
</header>
|
||||||
|
@ -370,10 +370,10 @@ class IDEView extends React.Component {
|
||||||
cmController={this.cmController}
|
cmController={this.cmController}
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</section>
|
||||||
</SplitPane>
|
</SplitPane>
|
||||||
</SplitPane>
|
</SplitPane>
|
||||||
</div>
|
</main>
|
||||||
{ this.props.ide.modalIsVisible &&
|
{ this.props.ide.modalIsVisible &&
|
||||||
<NewFileModal />
|
<NewFileModal />
|
||||||
}
|
}
|
||||||
|
|
|
@ -227,7 +227,7 @@ class Collection extends React.Component {
|
||||||
// };
|
// };
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={`collection-metadata ${this.isOwner() ? 'collection-metadata--is-owner' : ''}`}>
|
<header className={`collection-metadata ${this.isOwner() ? 'collection-metadata--is-owner' : ''}`}>
|
||||||
<div className="collection-metadata__columns">
|
<div className="collection-metadata__columns">
|
||||||
<div className="collection-metadata__column--left">
|
<div className="collection-metadata__column--left">
|
||||||
<h2 className="collection-metadata__name">
|
<h2 className="collection-metadata__name">
|
||||||
|
@ -270,7 +270,7 @@ class Collection extends React.Component {
|
||||||
}
|
}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</header>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,54 +344,56 @@ class Collection extends React.Component {
|
||||||
const title = this.hasCollection() ? this.getCollectionName() : null;
|
const title = this.hasCollection() ? this.getCollectionName() : null;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<section className="collection-container" data-has-items={this.hasCollectionItems() ? 'true' : 'false'}>
|
<main className="collection-container" data-has-items={this.hasCollectionItems() ? 'true' : 'false'}>
|
||||||
<Helmet>
|
<article className="collection">
|
||||||
<title>{this.getTitle()}</title>
|
<Helmet>
|
||||||
</Helmet>
|
<title>{this.getTitle()}</title>
|
||||||
{this._renderLoader()}
|
</Helmet>
|
||||||
{this.hasCollection() && this._renderCollectionMetadata()}
|
{this._renderLoader()}
|
||||||
<div className="collection-content">
|
{this.hasCollection() && this._renderCollectionMetadata()}
|
||||||
<div className="collection-table-wrapper">
|
<article className="collection-content">
|
||||||
{this._renderEmptyTable()}
|
<div className="collection-table-wrapper">
|
||||||
{this.hasCollectionItems() &&
|
{this._renderEmptyTable()}
|
||||||
<table className="sketches-table" summary="table containing all collections">
|
{this.hasCollectionItems() &&
|
||||||
<thead>
|
<table className="sketches-table" summary="table containing all collections">
|
||||||
<tr>
|
<thead>
|
||||||
{this._renderFieldHeader('name', 'Name')}
|
<tr>
|
||||||
{this._renderFieldHeader('createdAt', 'Date Added')}
|
{this._renderFieldHeader('name', 'Name')}
|
||||||
{this._renderFieldHeader('user', 'Owner')}
|
{this._renderFieldHeader('createdAt', 'Date Added')}
|
||||||
<th scope="col"></th>
|
{this._renderFieldHeader('user', 'Owner')}
|
||||||
</tr>
|
<th scope="col"></th>
|
||||||
</thead>
|
</tr>
|
||||||
<tbody>
|
</thead>
|
||||||
{this.props.collection.items.map(item =>
|
<tbody>
|
||||||
(<CollectionItemRow
|
{this.props.collection.items.map(item =>
|
||||||
key={item.id}
|
(<CollectionItemRow
|
||||||
item={item}
|
key={item.id}
|
||||||
user={this.props.user}
|
item={item}
|
||||||
username={this.getUsername()}
|
user={this.props.user}
|
||||||
collection={this.props.collection}
|
username={this.getUsername()}
|
||||||
/>))}
|
collection={this.props.collection}
|
||||||
</tbody>
|
/>))}
|
||||||
</table>
|
</tbody>
|
||||||
}
|
</table>
|
||||||
{
|
}
|
||||||
this.state.isAddingSketches && (
|
{
|
||||||
<Overlay
|
this.state.isAddingSketches && (
|
||||||
title="Add sketch"
|
<Overlay
|
||||||
actions={<SketchSearchbar />}
|
title="Add sketch"
|
||||||
closeOverlay={this.hideAddSketches}
|
actions={<SketchSearchbar />}
|
||||||
isFixedHeight
|
closeOverlay={this.hideAddSketches}
|
||||||
>
|
isFixedHeight
|
||||||
<div className="collection-add-sketch">
|
>
|
||||||
<AddToCollectionSketchList username={this.props.username} collection={this.props.collection} />
|
<div className="collection-add-sketch">
|
||||||
</div>
|
<AddToCollectionSketchList username={this.props.username} collection={this.props.collection} />
|
||||||
</Overlay>
|
</div>
|
||||||
)
|
</Overlay>
|
||||||
}
|
)
|
||||||
</div>
|
}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</article>
|
||||||
|
</article>
|
||||||
|
</main>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,7 +46,7 @@ class AccountView extends React.Component {
|
||||||
|
|
||||||
<Nav layout="dashboard" />
|
<Nav layout="dashboard" />
|
||||||
|
|
||||||
<section className="account-settings">
|
<main className="account-settings">
|
||||||
<header className="account-settings__header">
|
<header className="account-settings__header">
|
||||||
<h1 className="account-settings__title">Account Settings</h1>
|
<h1 className="account-settings__title">Account Settings</h1>
|
||||||
</header>
|
</header>
|
||||||
|
@ -67,7 +67,7 @@ class AccountView extends React.Component {
|
||||||
</Tabs>
|
</Tabs>
|
||||||
}
|
}
|
||||||
{ !accessTokensUIEnabled && <SocialLoginPanel {...this.props} /> }
|
{ !accessTokensUIEnabled && <SocialLoginPanel {...this.props} /> }
|
||||||
</section>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -117,7 +117,7 @@ class DashboardView extends React.Component {
|
||||||
<div className="dashboard">
|
<div className="dashboard">
|
||||||
<Nav layout="dashboard" />
|
<Nav layout="dashboard" />
|
||||||
|
|
||||||
<section className="dashboard-header">
|
<main className="dashboard-header">
|
||||||
<div className="dashboard-header__header">
|
<div className="dashboard-header__header">
|
||||||
<h2 className="dashboard-header__header__title">{this.ownerName()}</h2>
|
<h2 className="dashboard-header__header__title">{this.ownerName()}</h2>
|
||||||
<div className="dashboard-header__nav">
|
<div className="dashboard-header__nav">
|
||||||
|
@ -133,7 +133,7 @@ class DashboardView extends React.Component {
|
||||||
<div className="dashboard-content">
|
<div className="dashboard-content">
|
||||||
{this.renderContent(currentTab, username)}
|
{this.renderContent(currentTab, username)}
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</main>
|
||||||
{this.isCollectionCreate() &&
|
{this.isCollectionCreate() &&
|
||||||
<Overlay
|
<Overlay
|
||||||
title="Create collection"
|
title="Create collection"
|
||||||
|
|
|
@ -33,7 +33,7 @@ class LoginView extends React.Component {
|
||||||
return (
|
return (
|
||||||
<div className="login">
|
<div className="login">
|
||||||
<Nav layout="dashboard" />
|
<Nav layout="dashboard" />
|
||||||
<div className="form-container">
|
<main className="form-container">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>p5.js Web Editor | Login</title>
|
<title>p5.js Web Editor | Login</title>
|
||||||
</Helmet>
|
</Helmet>
|
||||||
|
@ -52,7 +52,7 @@ class LoginView extends React.Component {
|
||||||
<Link className="form__reset-password-button" to="/reset-password">Reset your password</Link>
|
<Link className="form__reset-password-button" to="/reset-password">Reset your password</Link>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -26,7 +26,7 @@ class SignupView extends React.Component {
|
||||||
return (
|
return (
|
||||||
<div className="signup">
|
<div className="signup">
|
||||||
<Nav layout="dashboard" />
|
<Nav layout="dashboard" />
|
||||||
<div className="form-container">
|
<main className="form-container">
|
||||||
<Helmet>
|
<Helmet>
|
||||||
<title>p5.js Web Editor | Signup</title>
|
<title>p5.js Web Editor | Signup</title>
|
||||||
</Helmet>
|
</Helmet>
|
||||||
|
@ -38,7 +38,7 @@ class SignupView extends React.Component {
|
||||||
<Link className="form__login-button" to="/login">Log In</Link>
|
<Link className="form__login-button" to="/login">Log In</Link>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</main>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,6 +7,12 @@
|
||||||
flex-direction:column;
|
flex-direction:column;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.collection {
|
||||||
|
height: 100%;
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
}
|
||||||
|
|
||||||
.collection-metadata {
|
.collection-metadata {
|
||||||
max-width: #{1012 / $base-font-size}rem;
|
max-width: #{1012 / $base-font-size}rem;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
|
Loading…
Reference in a new issue