diff --git a/src/pages/auth/AuthPage.jsx b/src/pages/auth/AuthPage.jsx index 6b5e25b..e9016c9 100644 --- a/src/pages/auth/AuthPage.jsx +++ b/src/pages/auth/AuthPage.jsx @@ -37,7 +37,7 @@ class AuthPage extends Component { }} > {(items) => ( -
+
{Object.keys(items).map((path) => { const {children, x} = items[path]; @@ -58,6 +58,7 @@ class AuthPage extends Component {
)} +
); @@ -78,6 +79,244 @@ class AuthPage extends Component { } } + +import { FormattedMessage as Message } from 'react-intl'; +import Helmet from 'react-helmet'; + +import panelStyles from 'components/ui/panel.scss'; +import buttons from 'components/ui/buttons.scss'; +import icons from 'components/ui/icons.scss'; +import { Panel, PanelBody, PanelFooter, PanelHeader } from 'components/ui/Panel'; +import { Input, Checkbox } from 'components/ui/Form'; + +import messages from 'components/auth/Login.messages'; +import regMessages from 'components/auth/Register.messages'; +import {helpLinks as helpLinksStyles} from 'components/auth/helpLinks.scss'; +import passwordMessages from 'components/auth/Password.messages'; + +const opacitySpringConfig = [60, 15]; +const heightSpringConfig = springConfig; +const transformSpringConfig = [400, 15]; +const firstPageHeight = 70; +const secondPageHeight = 280; + +class TheDemo extends Component { + state = { + isFirstPage: true + }; + + render() { + var {isFirstPage} = this.state; + + return ( + + {(items) => { + var keys = Object.keys(items).filter((key) => key !== 'common'); + return ( +
+ + +
+ {keys.map((key) => this.getHeader(key, items[key]))} +
+
+ +
+ {keys.map((key) => this.getBody(key, items[key]))} +
+
+ +
+ {keys.map((key) => this.getFooter(key, items[key]))} +
+
+
+
+ {keys.map((key) => this.getLinks(key, items[key]))} +
+
+ ); + }} +
+ ); + } + + willEnter = (key, styles) => { + var sign = this.state.isFirstPage ? -1 : 1; + + return { + ...styles, + transformSpring: spring(sign * 100, transformSpringConfig), + opacitySpring: spring(1, opacitySpringConfig) + }; + }; + + willLeave = (key, styles) => { + var sign = this.state.isFirstPage ? -1 : 1; + + return { + ...styles, + transformSpring: spring(sign * -100, transformSpringConfig), + opacitySpring: spring(0, opacitySpringConfig) + }; + }; + + getBody(key, props) { + var {isFirstPage, transformSpring, opacitySpring} = props; + + var style = { + position: 'absolute', + top: 0, + left: 0, + width: '100%', + transform: `translateX(${transformSpring}%)`, + opacity: opacitySpring + }; + + return (isFirstPage ? ( +
+ +
+ ) : ( +
+ + + + + + + + + ) + }} /> + } /> +
+ )); + } + + getFooter(key, props) { + var {isFirstPage, opacitySpring} = props; + + var style = { + position: 'absolute', + top: 0, + left: 0, + width: '100%', + opacity: opacitySpring + }; + + return (isFirstPage ? ( + + ) : ( + + )); + } + + getHeader(key, props) { + var {isFirstPage, transformSpring} = props; + + var style = { + position: 'absolute', + top: 0, + left: 0, + width: '100%' + }; + + var scrollStyle = { + transform: `translateY(${transformSpring}%)` + }; + + var sideScrollStyle = { + position: 'relative', + zIndex: 2, + transform: `translateX(${-Math.abs(transformSpring)}%)` + }; + + return (isFirstPage ? ( +
+ + {(msg) =>
{msg}
} +
+
+ ) : ( +
+ + + {(msg) =>
{msg}
} +
+
+ )); + } + + getLinks(key, props) { + var {isFirstPage, opacitySpring} = props; + + var style = { + position: 'absolute', + top: 0, + left: 0, + width: '100%', + opacity: opacitySpring + }; + + return (isFirstPage ? ( +
+ + + +
+ ) : ( +
+ + {'test 123'} + +
+ )); + } + + onSwitchViews = (event) => { + event.preventDefault(); + + this.setState({ + isFirstPage: !this.state.isFirstPage + }); + }; +} + export default connect((state) => ({ path: state.routing.location.pathname }))(AuthPage);