fix(Settings): Always use ChildContainer

othersize content is rendered off screen
This commit is contained in:
Berkeley Martinez
2018-01-12 16:57:26 -08:00
parent 4a911931d0
commit 8e5275ca56
4 changed files with 207 additions and 177 deletions

View File

@ -19,7 +19,7 @@ const shortString = (
export default function SettingsSkeleton() { export default function SettingsSkeleton() {
return ( return (
<div className={ `${ns}-skeleton` }> <div className={ `${ns}-container ${ns}-skeleton` }>
<Row> <Row>
<Col xs={ 12 }> <Col xs={ 12 }>
<Button <Button

View File

@ -6,15 +6,15 @@ import { createSelector } from 'reselect';
import { Button, Row, Col } from 'react-bootstrap'; import { Button, Row, Col } from 'react-bootstrap';
import FA from 'react-fontawesome'; import FA from 'react-fontawesome';
import ns from './ns.json';
import LockedSettings from './Locked-Settings.jsx'; import LockedSettings from './Locked-Settings.jsx';
import JobSettings from './Job-Settings.jsx'; import JobSettings from './Job-Settings.jsx';
import SocialSettings from './Social-Settings.jsx'; import SocialSettings from './Social-Settings.jsx';
import EmailSettings from './Email-Setting.jsx'; import EmailSettings from './Email-Setting.jsx';
import LanguageSettings from './Language-Settings.jsx'; import LanguageSettings from './Language-Settings.jsx';
import SettingsSkeleton from './Settings-Skeleton.jsx'; import SettingsSkeleton from './Settings-Skeleton.jsx';
import UpdateEmail from './routes/update-email';
import { toggleUserFlag, showUpdateEmailViewSelector } from './redux'; import { toggleUserFlag } from './redux';
import { import {
toggleNightMode, toggleNightMode,
updateTitle, updateTitle,
@ -24,13 +24,11 @@ import {
themeSelector, themeSelector,
hardGoTo hardGoTo
} from '../../redux'; } from '../../redux';
import ChildContainer from '../../Child-Container.jsx';
const mapStateToProps = createSelector( const mapStateToProps = createSelector(
userSelector, userSelector,
themeSelector, themeSelector,
signInLoadingSelector, signInLoadingSelector,
showUpdateEmailViewSelector,
( (
{ {
username, username,
@ -46,7 +44,6 @@ const mapStateToProps = createSelector(
}, },
theme, theme,
showLoading, showLoading,
showUpdateEmailView
) => ({ ) => ({
currentTheme: theme, currentTheme: theme,
email, email,
@ -59,7 +56,6 @@ const mapStateToProps = createSelector(
sendNotificationEmail, sendNotificationEmail,
sendQuincyEmail, sendQuincyEmail,
showLoading, showLoading,
showUpdateEmailView,
username username
}) })
); );
@ -91,7 +87,6 @@ const propTypes = {
sendNotificationEmail: PropTypes.bool, sendNotificationEmail: PropTypes.bool,
sendQuincyEmail: PropTypes.bool, sendQuincyEmail: PropTypes.bool,
showLoading: PropTypes.bool, showLoading: PropTypes.bool,
showUpdateEmailView: PropTypes.bool,
toggleIsAvailableForHire: PropTypes.func.isRequired, toggleIsAvailableForHire: PropTypes.func.isRequired,
toggleIsLocked: PropTypes.func.isRequired, toggleIsLocked: PropTypes.func.isRequired,
toggleMonthlyEmail: PropTypes.func.isRequired, toggleMonthlyEmail: PropTypes.func.isRequired,
@ -137,7 +132,6 @@ export class Settings extends React.Component {
sendNotificationEmail, sendNotificationEmail,
sendQuincyEmail, sendQuincyEmail,
showLoading, showLoading,
showUpdateEmailView,
toggleIsAvailableForHire, toggleIsAvailableForHire,
toggleIsLocked, toggleIsLocked,
toggleMonthlyEmail, toggleMonthlyEmail,
@ -149,12 +143,8 @@ export class Settings extends React.Component {
if (!username && showLoading) { if (!username && showLoading) {
return <SettingsSkeleton />; return <SettingsSkeleton />;
} }
if (showUpdateEmailView) {
return <UpdateEmail />;
}
return ( return (
<ChildContainer> <div className={ `${ns}-container` }>
<div className='container'>
<Row> <Row>
<Col xs={ 12 }> <Col xs={ 12 }>
<Button <Button
@ -323,7 +313,6 @@ export class Settings extends React.Component {
</Col> </Col>
</Row> </Row>
</div> </div>
</ChildContainer>
); );
} }
} }

View File

@ -0,0 +1,38 @@
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import ns from './ns.json';
import { showUpdateEmailViewSelector } from './redux';
import Settings from './Settings.jsx';
import UpdateEmail from './routes/update-email';
import ChildContainer from '../../Child-Container.jsx';
const mapStateToProps = state => ({
showUpdateEmailView: showUpdateEmailViewSelector(state)
});
const mapDispatchToProps = null;
const propTypes = {
showUpdateEmailView: PropTypes.bool
};
export function ShowSettings({ showUpdateEmailView }) {
let Comp = Settings;
if (showUpdateEmailView) {
Comp = UpdateEmail;
}
return (
<ChildContainer>
<div className={ `${ns}-container` }>
<Comp />
</div>
</ChildContainer>
);
}
ShowSettings.displayName = 'ShowSettings';
ShowSettings.propTypes = propTypes;
export default connect(
mapStateToProps,
mapDispatchToProps
)(ShowSettings);

View File

@ -15,6 +15,9 @@
} }
} }
.@{ns}-container {
.center(@value: @container-xl, @padding: @grid-gutter-width);
}
.@{ns}-skeleton { .@{ns}-skeleton {
background-color: #fff; background-color: #fff;
z-index: 10; z-index: 10;