diff --git a/backend/requirements/prod.txt b/backend/requirements/prod.txt index f5b917c1..38a2d0ae 100644 --- a/backend/requirements/prod.txt +++ b/backend/requirements/prod.txt @@ -2,7 +2,7 @@ # Flask Flask==1.0.2 -MarkupSafe==1.0 +MarkupSafe==1.1.1 Werkzeug==0.15.3 Jinja2==2.10.1 itsdangerous==0.24 diff --git a/frontend/client/components/Header/Banner.less b/frontend/client/components/Header/Banner.less new file mode 100644 index 00000000..10745961 --- /dev/null +++ b/frontend/client/components/Header/Banner.less @@ -0,0 +1,99 @@ +.Banner { + padding-left: 10px; + padding-right: 10px; + background-color: #2D2A26; + color: #fff; + overflow-x: hidden; + align-content: center; + justify-content: center; + display: flex; + + @media (max-width: 1000px) { + padding-top: 10px; + padding-bottom: 10px; + flex-direction: column; + } + + &__inner { + display: flex; + padding: .65rem 0; + align-items: center; + justify-content: center; + flex-direction: row; + max-width: 1000px; + align-content: center; + overflow-x: hidden; + margin-bottom: 0.25rem; + + @media (max-width: 1100px) { + max-width: 900px; + margin: 0 auto; + } + + @media (max-width: 1000px) { + max-width: 750px; + text-align: center; + padding: 0px 10px; + } + + @media(max-width: 600px) { + flex-wrap: wrap; + } + } + + &__badge { + padding: 6px 16px; + border-radius: 100px; + font-size: 14px; + line-height: 20px; + background-color: #CF8A00; + font-weight: 700; + text-transform: uppercase; + margin-right: 12px; + margin-top: auto; + margin-bottom: auto; + + @media (max-width: 1000px) { + padding: 6px 16px; + border-radius: 100px; + } + } + + &__link { + color: #fff; + text-decoration: none; + } + + &__body { + display: flex; + align-content: center; + justify-content: center; + padding: 0rem 0.5rem; + max-width: 1000px; + } + + &__body-text { + font-size: 14px; + font-weight: 500; + margin-bottom: 0; + + > * { + margin: 0; + } + + @media (max-width: 800px) { + line-height: 22px; + } + + @media(max-width: 600px) { + font-size: 12px; + line-height: 20px; + margin: 1rem 0; + } + } + + &__body-link { + color: #CF8A00; + text-decoration: none; + } +} diff --git a/frontend/client/components/Header/Banner.tsx b/frontend/client/components/Header/Banner.tsx new file mode 100644 index 00000000..aff37a59 --- /dev/null +++ b/frontend/client/components/Header/Banner.tsx @@ -0,0 +1,18 @@ +import React from 'react'; +import './Banner.less' + +const Banner = (props: any) => ( +
+
+
+ {props.badgeName} +
+
+

{props.body}

+
+
+
+) + + +export default Banner \ No newline at end of file diff --git a/frontend/client/components/Header/Drawer.tsx b/frontend/client/components/Header/Drawer.tsx index 836b5764..435a03e1 100644 --- a/frontend/client/components/Header/Drawer.tsx +++ b/frontend/client/components/Header/Drawer.tsx @@ -80,9 +80,9 @@ class HeaderDrawer extends React.Component { Browse proposals - - Start a proposal - + {/**/} + {/* Start a proposal*/} + {/**/} diff --git a/frontend/client/components/Header/index.tsx b/frontend/client/components/Header/index.tsx index 122575c0..e5282dbd 100644 --- a/frontend/client/components/Header/index.tsx +++ b/frontend/client/components/Header/index.tsx @@ -1,141 +1,151 @@ import React from 'react'; -import { Link } from 'react-router-dom'; +import {Link} from 'react-router-dom'; import classnames from 'classnames'; import HeaderAuth from './Auth'; import HeaderDrawer from './Drawer'; import MenuIcon from 'static/images/menu.svg'; import Logo from 'static/images/logo-name.svg'; import './style.less'; -import { Button } from 'antd'; -import { connect } from 'react-redux'; -import { AppState } from 'store/reducers'; -import { ccrActions } from 'modules/ccr'; -import { createActions } from 'modules/create'; - -import { compose } from 'recompose'; -import { withRouter } from 'react-router'; -import { fetchCCRDrafts } from 'modules/ccr/actions'; -import { fetchDrafts } from 'modules/create/actions'; +import Banner from "components/Header/Banner"; +import {Button} from 'antd'; +import {connect} from 'react-redux'; +import {AppState} from 'store/reducers'; +import {ccrActions} from 'modules/ccr'; +import {createActions} from 'modules/create'; + +import {compose} from 'recompose'; +import {withRouter} from 'react-router'; +import {fetchCCRDrafts} from 'modules/ccr/actions'; +import {fetchDrafts} from 'modules/create/actions'; interface StateProps { - hasCheckedUser: AppState['auth']['hasCheckedUser']; - ccrDrafts: AppState['ccr']['drafts']; - proposalDrafts: AppState['create']['drafts']; + hasCheckedUser: AppState['auth']['hasCheckedUser']; + ccrDrafts: AppState['ccr']['drafts']; + proposalDrafts: AppState['create']['drafts']; } interface OwnProps { - isTransparent?: boolean; + isTransparent?: boolean; } interface State { - isDrawerOpen: boolean; + isDrawerOpen: boolean; } interface DispatchProps { - fetchCCRDrafts: typeof fetchCCRDrafts; - fetchDrafts: typeof fetchDrafts; + fetchCCRDrafts: typeof fetchCCRDrafts; + fetchDrafts: typeof fetchDrafts; } type Props = StateProps & OwnProps & DispatchProps; class Header extends React.Component { - state: State = { - isDrawerOpen: false, - }; - - componentDidMount = () => { - this.props.fetchCCRDrafts(); - this.props.fetchDrafts(); - }; - - render() { - const { isTransparent, ccrDrafts, proposalDrafts, hasCheckedUser } = this.props; - const { isDrawerOpen } = this.state; - - return ( -
-
-
- - Proposals - - - Requests - - - Guide - -
- -
- -
- - - - - - {!hasCheckedUser && (ccrDrafts === null || proposalDrafts === null) ? null : ( -
-
- - {Array.isArray(proposalDrafts) && proposalDrafts.length > 0 ? ( - - ) : ( - - )} - -
-
- - {Array.isArray(ccrDrafts) && ccrDrafts.length > 0 ? ( - - ) : ( - - )} - -
- - + state: State = { + isDrawerOpen: false, + }; + + componentDidMount = () => { + this.props.fetchCCRDrafts(); + this.props.fetchDrafts(); + }; + + render() { + const {isTransparent, ccrDrafts, proposalDrafts, hasCheckedUser} = this.props; + const {isDrawerOpen} = this.state; + + return ( +
+ The Zcash Foundation is not currently accepting any new grants; we are awaiting the + formation of the Major Grant Review Committee to help guide our future grant strategy. + For + more information, please email contact@zfnd.org

}/> +
+
+
+ + Proposals + + + Requests + + + Guide + +
+ +
+ +
+ + + + + + {!hasCheckedUser && (ccrDrafts === null || proposalDrafts === null) ? null : ( +
+
+ + {Array.isArray(proposalDrafts) && proposalDrafts.length > 0 ? ( + + ) : ( + null // + )} + +
+
+ + {Array.isArray(ccrDrafts) && ccrDrafts.length > 0 ? ( + + ) : ( + + )} + +
+ + +
+ )} + + + + {process.env.TESTNET && ( +
+ Testnet +
+ )} +
+
- )} - - + ); + } - {process.env.TESTNET && ( -
- Testnet -
- )} -
-
- ); - } - - private openDrawer = () => this.setState({ isDrawerOpen: true }); - private closeDrawer = () => this.setState({ isDrawerOpen: false }); + private openDrawer = () => this.setState({isDrawerOpen: true}); + private closeDrawer = () => this.setState({isDrawerOpen: false}); } const withConnect = connect( - (state: AppState) => ({ - hasCheckedUser: state.auth.hasCheckedUser, - ccrDrafts: state.ccr.drafts, - proposalDrafts: state.create.drafts, - }), - { - fetchCCRDrafts: ccrActions.fetchCCRDrafts, - fetchDrafts: createActions.fetchDrafts, - }, + (state: AppState) => ({ + hasCheckedUser: state.auth.hasCheckedUser, + ccrDrafts: state.ccr.drafts, + proposalDrafts: state.create.drafts, + }), + { + fetchCCRDrafts: ccrActions.fetchCCRDrafts, + fetchDrafts: createActions.fetchDrafts, + }, ); export default compose( - withRouter, - withConnect, + withRouter, + withConnect, )(Header); diff --git a/frontend/client/components/Header/style.less b/frontend/client/components/Header/style.less index 68cd3351..a618c080 100644 --- a/frontend/client/components/Header/style.less +++ b/frontend/client/components/Header/style.less @@ -25,7 +25,7 @@ transition: box-shadow @header-transition ease; &.is-transparent { - position: absolute; + //position: absolute; background: transparent; box-shadow: none; } diff --git a/frontend/client/components/RFP/index.tsx b/frontend/client/components/RFP/index.tsx index 4207c11f..4ad3f1c4 100644 --- a/frontend/client/components/RFP/index.tsx +++ b/frontend/client/components/RFP/index.tsx @@ -2,7 +2,7 @@ import React from 'react'; import moment from 'moment'; import { connect } from 'react-redux'; import { Link } from 'react-router-dom'; -import { Icon, Button, Affix, Tag } from 'antd'; +import { Icon, Tag } from 'antd'; import ExceptionPage from 'components/ExceptionPage'; import { fetchRfp } from 'modules/rfps/actions'; import { getRfp } from 'modules/rfps/selectors'; @@ -153,26 +153,6 @@ export class RFPDetail extends React.Component { ))}
)} - - {isLive && ( -
- -
- Ready to take on this request?{' '} - - - -
-
-
- )} ); } diff --git a/frontend/client/pages/email-verify.tsx b/frontend/client/pages/email-verify.tsx index f9d41cb8..971edddf 100644 --- a/frontend/client/pages/email-verify.tsx +++ b/frontend/client/pages/email-verify.tsx @@ -51,11 +51,11 @@ class VerifyEmail extends React.Component { const actions = (
- - - + {/**/} + {/* */} + {/**/}