Giter VIP home page Giter VIP logo

stellarexplorer's Issues

Clean up mobile views

Some pretty crazy formatting, wrapping, etc. when I view it on a standard sized android mobile.

Ensure everything fits neatly. Avoid scrolling etc.

Render operation time directly from the operation record

Currently i'm deriving the operation time from the transaction time which requires a server call to grab this. One for each distinct transaction in the operations list. From memory this was because the time was not available in the record however looking at operations it is now there under 'created_at'.

Fix travis build - supress warnings in 'npm run build' step

Travis build is currently failing due to warnings coming out of processing the dependent module 'stellar-base' and it's dependency 'bindings':

Critical dependencies:
76:22-40 the request of a dependency is an expression
76:43-53 the request of a dependency is an expression

Suppress it by using CI=false before the 'npm run build' line. This feature has just recently been enabled in create-react-app so apply this after upgrading (see #1)

Reduce distribution size

Uncompressed the full distribution with required dependencies is 1.45MB.

Try get this down a bit by analysing the bundled dependencies.

Externalise the anchors and exchanges data

We shouldn't need to redeploy the app whenever this metadata changes or when a new anchor launches.

Serve these files from somewhere or just make available on a seperate github project that can be fetched from the app ...

It might makes sense to generate most of this from a script that parses the server.toml files ... Have a script that runs periodically and checks if data has changed too.

Remove redundant data from some views

There are a few but do an audit.

For example:

  • ledger is displayed in every row in the transaction list on the ledger page
  • source account re-rendered on lists on the account page

Stream fails in chromium after a period of time

Streams on the home page work fine for a while and then after a period of about 10 minutes there are repeated failures trying to get a new stream.

Needs investigation as I couldn't figure out what was happening when I saw it.

For now I'm putting a timeout on streams where they will be disabled after 3 minutes. A page reload will restart them.

Don't always redirect in remote server error handling

If an entity not found error is returned from the remote server then redirect to the 404 page otherwise log the error and/or display it to the screen and stay on the page the error occured on. Currently it's redirecting all server errors to the 404 page.

Link both the distribution and issuer account for anchors

Currently anchors list supports just one account per anchor.
Rearrange so we can attach and identify both issuer and distributer.
Account page for each should show the anchor logo.
Anchor page shows the issuer or both issuer and distribution account addresses.

Fix allow trust operation formatting

Currently reads like this "Trust Mobius issuing MOBIAuthorize true" for authorize=true and just "MOBIAuthorize" for the end part when false.

There should be space between asset code and authorize. Additionally that authorize is set to true or false should be clearer.

Change to read like this:
"Trust Mobius issuing MOBI [authorize: true]"
"Trust Mobius issuing MOBI [authorize: false]"

Jest tests fail after dependencies installed with 'yarn install'

If dependencies are installed with "npm install" the tests run fine.

However if installed with "yarn install" they will fail with module resolution failures:

======================================================================

Cannot find module 'stellar-base' from 'account_response.js'
  
  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
  at Object.<anonymous> (node_modules/stellar-sdk/lib/account_response.js:13:19)

FAIL src/lib/tests/utils.test.js
โ— Test suite failed to run

Cannot find module 'stellar-base' from 'account_response.js'
  
  at Resolver.resolveModule (node_modules/jest-resolve/build/index.js:179:17)
  at Object.<anonymous> (node_modules/stellar-sdk/lib/account_response.js:13:19)

=====================================================================

It's not clear to me why this is as "stellar-base" is there under node_modules and require("stellar-base") statement seems fine.

Take a look at jest code and issues ...

Add Trades View

List /trades in a new top level view
List trades for account in a new tab on account view

Setup progressive web app

Add manifest.json
Set icon, theme colors, etc.
Go through the progressive webapp checklist and setup everything
Test with Lighthouse npm script
Test on mobile devices

Indicate when the view is out of sync with the server

It would be nice to indicate the sync is happening whilst it's happing and to flag the data shown is stale.

Maybe a green light / red light sitting in the panel header.

Because if you load the page for the first time after a couple of days it will show data from a couple of days ago as if it's fresh. Then if you wait a few seconds it will rerender with the latest data. But there is not indication that is what is happening.

Run Lighthouse and make improvements

Run the lighthouse report against the site. There are a quite a few things that can be improved including performance hacks and progressive web app tweaks.

Put Operations in a Table

Visually: tables are easier to read. Each row is seperated by a line so it's easy to scan across.
Consistency: Transactions and Ledger are displayed inside table.
Responsive: Table components resize better.

Upgrade react-scripts to 1.0.0 then latest

Upgrading to 1.0.0 breaks the production build (npm run build):

Module not found: Error: Can't resolve 'babel-runtime/helpers/interop-require' in '/home/hatch/projects/stellar/graph/node_modules/js-xdr/lib'

The following code in js-xdr/lib/*.js files is probably where this issue is:

var _interopRequire = require('babel-runtime/helpers/interop-require')[
'default'
]

Page is re-rendering twice on language switch and on network switch

State is updated on switch, the logic waits for the state update to be re-rendered (this is first visible reload) before then initiating a page reload (which is the second visible reload).

Language switcher - this doesn't need to reload the page at all, it's sufficient to update the state and everything will rerender in the new language accordingly

Network switcher - this does need to reload in order to switch domains (steexp.com <---> testnet.steexp.com) however it doesn't need to wait for a rerender from state update. So change the logic to setState then immediately invoke a page reload.

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.