Giter Club home page Giter Club logo

react-ideation's People

Contributors

meandmycode avatar

Stargazers

 avatar

Watchers

 avatar

Forkers

lexnjugz

react-ideation's Issues

React is a behemoth

Should be easy enough to switch over to Preact and should reduce the app size down from 180kb to around 50kb.

Layout not great on smaller mobile devices

When viewing on a smaller mobile device (such as an iPhone 5 class device) then the layout becomes single column:

image

We can probably fit two ideas in here, but we should also consider how this works on device, especially when invoking the keyboard, how the view zooms and how janky the experience feels when switching between different inputs.

UX for issues with persisting ideas is poor

Currently we highlight ideas that cannot persist with an redish orange ring:

image

The idea here is to draw attention that the item cannot be saved, this could be for various reasons though:

  1. You are offline, the API cannot be reached right now
  2. The API is offline or broken
  3. The API rejected the changes because they didn't pass entity validation (such as the body being too long)

We should have error codes to identify the types of errors and think about how to handle each case, for being offline we should look into things like Google docs and how their offline UX looks..

Finally, we should consider using service workers to handle persisting ideas once the user comes online, even if the web application is not running, we should then consider sending local notifications to inform the user their changes are saved.

Bug when textarea ends with trailing spaces

When an overspilling textarea ends with trailing spaces the layout between the real input and the spoof (which is used to display the overspill highlight) fall out of sync:

image

This is likely due to some subtle differences with how CSS white-space is being handled between the input and spoof element.

Avoid manually adding prefixes in CSS

Since we're targeting modern browsers we skipped adding autoprefixer as it would add nothing, however - one CSS feature we're using that has still failed to be fully standardised yet is appearance and so we have a couple of places that are manually using prefixes.

Delete button not obvious on touch devices

Since we use :hover for the delete button, then the first tap onto an idea is either swallowed to then switch to the hover state (then showing the delete button), and then subsequent tap then enables editing.. on some devices the hover state and editing state happen within the first tap together.

The UX here is inconsistent and doesn't fall in line with user expectations with touch devices, where secondary operations are often triggered via gestures or become available within a details view of the item.

We could play around with a few ideas to see what works best, either making ideas in the listing view non-editable on touch devices, and using tap to open an editing view of the item, or to use gestures such as side swipes, or tap and hold to bring up additional context.

image

image

Entity manager needs documentation, unit tests and better conflict resolution handling

The entity manager handles state transitions for a set of remotely (async) persisted entities, in its current state there are a few edge cases that may cause subtle UX issues (such as a slow API call returning an updated remote entity that overwrites the local version).

To solve this there needs to be a configurable conflict resolution strategy and our application will need to allow the local version to override the remote (bar certain fields, such as the primary key), in these cases the local version then needs to be considered dirty, essentially this becomes a merge (similar to git), for most cases this will be fine, but we'll probably want to allow conflict data to be included with the entity object, so that the view layer can provide a user interface into conflict resolution (such as a side-by-side).

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.