TOPCODER CONNECT USER AGREEMENT

- Date of Last Revision: Oct 04, 2017 + Date of Last Revision: Oct 04, 2017

This User Agreement (the "Agreement") is a contract between you (referred to herein as "User") and Appirio Inc. and its affiliates, d/b/a Topcoder Inc. ("Topcoder") and applies to User's use and viewing of connect.topcoder.com and related sub-domains ("Topcoder Connect") and all services available through Topcoder Connect (the "Services"). By visiting Topcoder Connect or executing an Order Form (as defined below), User has accepted this Agreement and has agreed to be bound by the terms of this Agreement. Any Custom Software ordered (as defined below) or Services used through Topcoder Connect are also governed by these Terms. Topcoder may amend this Agreement at any time by posting a revised version on Topcoder Connect. The revised version will be effective at the time Topcoder posts it.

    @@ -15,10 +15,10 @@ const ConnectTerms = () => (
    1. Services and Deliverables. The Services may be purchased either on Topcoder Connect or pursuant to an Order Form entered into by you and Topcoder referencing this Agreement (an “Order Form”). Topcoder agrees to provide the Services ordered on Topcoder Connect or described in an Order Form (the "Deliverables").   All Services and Deliverables are created by launching Challenges (as defined below) using Topcoder's crowdsourcing platform, available at the topcoder.com website and online and mobile tools for engaging the Topcoder community through crowdsourced competitions (the “Platform”). For all Deliverables purchased under this Agreement, the crowdsourcing platform will be accessed by a “User Success Manager” which may be either a Topcoder representative or a Topcoder co-pilot, which is a member of Topcoder’s crowdsourcing community who has been directed to by Topcoder to carry out certain of the Services.
    2. Process and Specifications for Online Orders. If ordering the Services and Deliverables online via Topcoder Connect (referred to as an “Online Order”): -
        -
      • To utilize the Services, User has provided specifications with respect to the Deliverables in reasonable detail as prompted in several fields on webpages associated with Topcoder Connect where the User was requested to enter information regarding the intended Deliverable(s) (such information, the "Preliminary Specifications"). After payment of Project Fees (as defined below) associated with the Deliverable, a User Success Manager shall contact User to gather additional information regarding the Deliverables, as may be necessary in Topcoder's sole discretion. Topcoder and User shall mutually agree on a final set of specifications, which shall be referred to herein as the "Specifications". As part of this process, Topcoder may provide services to User on an hourly basis as may be mutually agreed by the parties.
      • -
      • To the extent the parties are not able to reach agreement on the Specifications, including, but not limited to situations where the information provided by User is insufficient to create Specifications or the Preliminary Specifications are outside the scope of the services described on Topcoder Connect, Topcoder shall refund to User any Project Fees paid by User (excluding fees associated with hourly services previously provided) and Topcoder shall have no further liability or obligations under this Agreement.
      • -
      +
        +
      • To utilize the Services, User has provided specifications with respect to the Deliverables in reasonable detail as prompted in several fields on webpages associated with Topcoder Connect where the User was requested to enter information regarding the intended Deliverable(s) (such information, the "Preliminary Specifications"). After payment of Project Fees (as defined below) associated with the Deliverable, a User Success Manager shall contact User to gather additional information regarding the Deliverables, as may be necessary in Topcoder's sole discretion. Topcoder and User shall mutually agree on a final set of specifications, which shall be referred to herein as the "Specifications". As part of this process, Topcoder may provide services to User on an hourly basis as may be mutually agreed by the parties.
      • +
      • To the extent the parties are not able to reach agreement on the Specifications, including, but not limited to situations where the information provided by User is insufficient to create Specifications or the Preliminary Specifications are outside the scope of the services described on Topcoder Connect, Topcoder shall refund to User any Project Fees paid by User (excluding fees associated with hourly services previously provided) and Topcoder shall have no further liability or obligations under this Agreement.
      • +
    3. Services Purchased with an Order Form. If purchasing the Services and Deliverables via an Order Form (an “Order Form Purchase”), the Specifications are those mutually agreed upon specifications as described in the Order Form.
    diff --git a/src/components/Feed/NewPostMobile.jsx b/src/components/Feed/NewPostMobile.jsx index 78edd66a3..b3a0004f6 100644 --- a/src/components/Feed/NewPostMobile.jsx +++ b/src/components/Feed/NewPostMobile.jsx @@ -21,6 +21,9 @@ export const NEW_POST_STEP = { COMMENT: 'COMMENT' } +// we need it to calulate body height based on the actual mobile browser viewport height +const HEADER_HEIGHT = 50 + class NewPostMobile extends React.Component { constructor(props) { super(props) @@ -28,11 +31,26 @@ class NewPostMobile extends React.Component { this.state = { step: props.step, statusValue: '', - commentValue: '' + commentValue: '', + browserActualViewportHeigth: document.documentElement.clientHeight } this.setStep = this.setStep.bind(this) this.onValueChange = this.onValueChange.bind(this) + this.updateBrowserHeight = this.updateBrowserHeight.bind(this) + } + + componentWillMount() { + window.addEventListener('resize', this.updateBrowserHeight) + this.updateBrowserHeight() + } + + componentWillUnmount() { + window.removeEventListener('resize', this.updateBrowserHeight) + } + + updateBrowserHeight() { + this.setState({ browserActualViewportHeigth: document.documentElement.clientHeight }) } componentWillReceiveProps(nextProps) { @@ -64,7 +82,7 @@ class NewPostMobile extends React.Component { statusTitle, commentTitle, commentPlaceholder, submitText, onPost, onClose, isCreating, nextStepText, statusPlaceholder } = this.props - const { step, statusValue, commentValue } = this.state + const { step, statusValue, commentValue, browserActualViewportHeigth } = this.state let value let title @@ -98,7 +116,7 @@ class NewPostMobile extends React.Component {
    {title}
    -
    +