👌 use common/Button component for IconButton on screens

This commit is contained in:
ghalestrilo 2020-06-29 19:54:48 -03:00
parent 7d24c07fcc
commit 8a0b09d416
4 changed files with 30 additions and 35 deletions

View file

@ -11,8 +11,8 @@ const Header = styled.div`
background: ${background}; background: ${background};
color: ${textColor}; color: ${textColor};
padding: ${remSize(12)}; padding: ${remSize(12)};
padding-left: ${remSize(32)}; padding-left: ${remSize(16)};
padding-right: ${remSize(32)}; padding-right: ${remSize(16)};
z-index: 1; z-index: 1;
display: flex; display: flex;
@ -20,6 +20,11 @@ const Header = styled.div`
flex-direction: row; flex-direction: row;
justify-content: flex-start; justify-content: flex-start;
align-items: center; align-items: center;
// TODO:
svg {
height: 2rem;
}
`; `;
export default Header; export default Header;

View file

@ -7,14 +7,14 @@ const ButtonWrapper = styled(Button)`
width: 3rem; width: 3rem;
> svg { > svg {
width: 100%; width: 100%;
height: auto; height: 100%;
} }
`; `;
const IconButton = ({ children }) => (<ButtonWrapper const IconButton = props => (<ButtonWrapper
aria-label="Add to collection" iconBefore={props.children}
iconBefore={children}
kind={Button.kinds.inline} kind={Button.kinds.inline}
{...{ ...props, children: null }}
/>); />);
IconButton.propTypes = { IconButton.propTypes = {

View file

@ -30,10 +30,13 @@ import Screen from '../../../components/mobile/MobileScreen';
import Footer from '../../../components/mobile/Footer'; import Footer from '../../../components/mobile/Footer';
import IDEWrapper from '../../../components/mobile/IDEWrapper'; import IDEWrapper from '../../../components/mobile/IDEWrapper';
const IconLinkWrapper = styled(Link)` const IconContainer = styled.div`
width: 3rem; marginLeft: 2rem;
margin-right: 1.25rem; display: flex;
margin-left: none; `;
const TitleContainer = styled.div`
`; `;
const isUserOwner = ({ project, user }) => (project.owner && project.owner.id === user.id); const isUserOwner = ({ project, user }) => (project.owner && project.owner.id === user.id);
@ -53,30 +56,22 @@ const IDEViewMobile = (props) => {
return ( return (
<Screen> <Screen>
<Header> <Header>
<IconLinkWrapper to="/" aria-label="Return to original editor"> <IconButton to="/mobile" aria-label="Return to original editor">
<ExitIcon /> <ExitIcon viewBox="0 0 16 16" />
</IconLinkWrapper> </IconButton>
<div> <div style={{ marginLeft: '1rem' }}>
<h2>{project.name}</h2> <h2>{project.name}</h2>
<h3>{selectedFile.name}</h3> <h3>{selectedFile.name}</h3>
</div> </div>
<div style={{ marginLeft: '2rem', display: 'flex' }}> <IconContainer>
<IconButton onClick={() => setOverlay('preferences')}> <IconButton onClick={() => setOverlay('preferences')}>
<PreferencesIcon focusable="false" aria-hidden="true" /> <PreferencesIcon focusable="false" aria-hidden="true" />
</IconButton> </IconButton>
<Link <IconButton to="/mobile/preview" onClick={() => { startSketch(); }}>
to="/mobile/preview"
onClick={() => {
// alert('starting sketch');
startSketch();
}}
>
<IconButton>
<PlayIcon viewBox="-1 -1 7 7" focusable="false" aria-hidden="true" /> <PlayIcon viewBox="-1 -1 7 7" focusable="false" aria-hidden="true" />
</IconButton> </IconButton>
</Link> </IconContainer>
</div>
</Header> </Header>
<IDEWrapper> <IDEWrapper>

View file

@ -5,6 +5,7 @@ import { bindActionCreators } from 'redux';
import { connect } from 'react-redux'; import { connect } from 'react-redux';
import styled from 'styled-components'; import styled from 'styled-components';
import Header from '../../components/mobile/Header'; import Header from '../../components/mobile/Header';
import IconButton from '../../components/mobile/IconButton';
import PreviewFrame from '../IDE/components/PreviewFrame'; import PreviewFrame from '../IDE/components/PreviewFrame';
import Screen from '../../components/mobile/MobileScreen'; import Screen from '../../components/mobile/MobileScreen';
import * as ProjectActions from '../IDE/actions/project'; import * as ProjectActions from '../IDE/actions/project';
@ -25,12 +26,6 @@ const Content = styled.div`
margin-top: ${remSize(68)}; margin-top: ${remSize(68)};
`; `;
const IconLinkWrapper = styled(Link)`
width: 2rem;
margin-right: 1.25rem;
margin-left: none;
`;
const MobileSketchView = (props) => { const MobileSketchView = (props) => {
// TODO: useSelector requires react-redux ^7.1.0 // TODO: useSelector requires react-redux ^7.1.0
// const htmlFile = useSelector(state => getHTMLFile(state.files)); // const htmlFile = useSelector(state => getHTMLFile(state.files));
@ -55,9 +50,9 @@ const MobileSketchView = (props) => {
return ( return (
<Screen> <Screen>
<Header> <Header>
<IconLinkWrapper to="/mobile" aria-label="Return to original editor"> <IconButton to="/mobile" aria-label="Return to original editor">
<ExitIcon viewBox="0 0 16 16" /> <ExitIcon viewBox="0 0 16 16" />
</IconLinkWrapper> </IconButton>
<div> <div>
<h2>{projectName}</h2> <h2>{projectName}</h2>
<h3><br /></h3> <h3><br /></h3>