Coder Social home page Coder Social logo

augur-ui-react-components's People

Contributors

joeykrug avatar johndanz avatar paullinator avatar priecint avatar stephensprinkle avatar stephensprinkle-zz avatar teneighty avatar thinkloop avatar tinybike avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

augur-ui-react-components's Issues

React error when navigating from market detail page to markets listing

If I'm on a market's detail page and then go to the main markets listing, I get the following error:

components.jsx:15: Uncaught Invariant Violation: Minified React error #34; visit http://facebook.github.io/react/docs/error-decoder.html?invariant=34 for the full message or use the non-minified dev environment for full errors and additional helpful warnings.

If you follow that link, the full error message is:

React DOM tree root should always have a node reference.

This happens on both https://augur-dev.firebaseapp.com as well as on the latest augur+AURC master branches.

Don't include assertions in build

assertions are only used in augur tests so there is no need to send them to browser (i.e. bundle them with UI components).

Instead of
import { assertions } from 'augur-ui-react-components';
we can have something like
import assertions from 'augur-ui-react-components/lib/assertions';

Figure out and setup architecture for shared selector tests to be able to communicate and test selectors in both repos

Per last meeting, the leading strategy so far is to create selector tests inside the ui repo that test the shape of the selector, then build another similar test in the augur repo that transforms state into the selector then runs the ui selector to test its shape. We don't want to duplicate any portion of these tests. Let's see if we can implement this nicely.

Once we nail down the strategy we should move the relevant test portions from the augur repo to the ui repo.

Update createMarketForm assertions

The assertions associated with the create-market-form selector need to be updated for congruence to the new assertion approach in AURC.

Update registration flow to generate login id

New registration flow:

name: 
password: 
confirm-password:

[GENERATE ACCOUNT]

next page:

Your account has been generated locally. We do not retain a copy. 
*It is critical that you save this information in a safe place.*

secure login id: XANDWONDWQDNQDOQDJQKDQO
password: ....... (show password)

Next send to login screen to make sure they properly recorded their information (do not auto-login)

Login screen label "username" should be changed to "secure login id".

Update and improve Reporting UI

  • Move reports from markets to main site nav
  • Show previous reports with results of how others voted, and how it affected income and rep
  • Show pending reports requiring reporting

Implement phase 1 limit/orderbook trading

Trading is moving to be limit and order-book based. An initial implementation exists commented in the code. Bring back this implementation, including bids/asks views, completing and fixing any missing or broken pieces.

Fill in selectors file to make components app fully functional

The selectors file provides the dummy model for the components app to render and do stuff. It is composed of two main parts, the data, and the handlers that allow for interaction.

The data should match the selectors in the core app, visible by inspecting window.selectors.

Handlers are implemented very simply using selectors.update({ statePiece1: newValue }) function. It works by passing in some selector state that needs to be mutated, then the function re-renders the app.

For example, one of our selector keys is activePage. This holds a string specifying which main page we are on. We want to be able to update this key by clicking on various links in the site-header so we can switch pages in the ui. To do this, for the login link, we have: onClick: () => module.exports.update({ activePage: LOGIN }). That basically says, when the login link is clicked, set activePage to LOGIN then re-render the site.

This issue is about filling in all the missing props and handlers to make the components site work similarly to the live site.

Research non-fb based iframed id-oriented (not account) comment system or use FB

The disqus implementation we have has two problems:

  1. it doesn't run in an iframe opening a vector for attack
  2. it is based on an owned augur account in their system

We need a comment solution that uses iframes, and manages conversations based on a provided id, not an account or page url (because ipfs urls will change on version updates)

If after some quick research nothing obvious pops up, implement the facebook comment system (as long as it is confirmed the above is true)

Account page should display account address

There are many reasons a user might want to see their account's Ethereum address (e.g., so they can ask someone else to send them ether). This should be displayed somewhere on the accounts page.

Update create market form to include ui for liquidity, and remove no longer needed

The create market form can be opened using the "make a market" button:

image

The "additional market info" page has some elements that are no longer needed, confirm with jack whcih ones need to be removed/changed/added:

image

Also, some new ui has to be added somewhere to ask the user how much initial liquidity they want to provide, and in what distribution. Ask joey/jack for details on that.

The first part of this issue is researching what the specific requirements are, posted in a comment here, so we can discuss as a team how to proceed.

Add checkbox for generating an order book during market creation

Right now, generating an initial order book is a required part of market creation. It should be decoupled so that it is available, but not required. Suggested way of doing this is to add a checkbox somewhere in the create market process:

  • Set up initial buy/sell orders for this market

If checked, the generateOrderBook form appears. If unchecked, then the market is created without automatically calling augur.generateOrderBook.

Account page improvements

  • Account page should display the entire address by default (shouldn't be click-to-reveal, shouldn't show the truncated address by default)
  • The text for the download account button should be changed to something like: "Download your account data. You should always save a backup of your account data somewhere safe! (Note: running a local Ethereum node? If you download your account data to your keystore folder, you can use your Augur account on your local node.)"

Implement disqus commenting system on market details page

Some suggestions:

  • meta comment widget that aloows sign-in to various commenting systems like disqus, fb, etc.
  • disqus alone might be less confusing and more usable, but all part of the investigation of this ticket
  • some other competing service

Once we agree on a service, we will want to implement it in the ui, tied to market.id, and display in the /market view (market-page.jsx) in all states except reporting

Add drop-downs for tags during market creation process

We would like to add an auto-complete type enhancement to the tag inputs during the market creation process, to encourage users to centralize on popular tags people have been choosing. Every market has up to 3 tags, the auto-complete for the first tag input, should use a list generated from the first tag of the markets sorted by popularity and filtered down as they type characters, the second tag input from the second tag in markets, etc. The ideal situation is for users to be encouraged to create hierarchical structures like:

Tag1

Sports
Finance
Law
etc.

Tag2

Football
Soccer
Tennis
etc.

We can't force any of this, so the inputs still have to be free-form and allow any input, but we do want to try to encourage it.

To accomplish this in the UI:

  • display tags horizontally so that the drop-down doesn't interfere with the next tags
  • add props that represent each list (need 3 lists here, one for each tier of tag (ie tag1Popular, tag2Popular, tag3Popular)
  • display the lists under each tag as they type, items should be clickable to select, try to use regular html and not introduce a 3rd party auto-complete component
  • try to generalize the auto-complete component like we did for DropDown so we can re-use it

The rest of the logic will be handled in augur repo.

Add ability to send ether and rep

Sending crypto requires two inputs:

  • amount to send
  • destination address

A cute little form on the right side of the dark header area would be good. Option to send ether or rep.

Implement charts

The current live beta ui located at augur.net has a charts component on every market detail page. We would like to pull out that code from the live ui and put it in this augur2 ui.

  1. find component in live project in the 'develop' branch of the main repo: https://github.com/AugurProject/augur/tree/develop
  2. simplify it to only include the minimum raw data needed to render it - remove all calculations, processing
  3. add selector prop on markets to hold the simplified data to render the chart (ie array of historical prices)
  4. make a component for the chart called chart.jsx in /market/components
  5. display chart by including component in market-page

Warning: unknown prop 'text'

I get this warning on the main markets listing:

components.jsx:1251: Warning: Unknown prop `text` on <a> tag. Remove this prop from the element. For details, see https://fb.me/react-unknown-prop
    in a (created by Link)
    in Link (created by MarketItem)
    in div (created by MarketItem)
    in div (created by MarketItem)
    in article (created by MarketItem)
    in MarketItem (created by Markets)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.