Code Monkey home page Code Monkey logo

Comments (14)

rrousselGit avatar rrousselGit commented on May 11, 2024 6

Actually the pagination is outdated and can be simplified. Families weren't implemented at the time of writing.
I'll also include a "auto cancel HTTP requests if the request is no-longer needed by the UI" and some navigation.

from riverpod.

rrousselGit avatar rrousselGit commented on May 11, 2024 6

Ah good idea too

So:

  • debounce on search (currently we have a search, just not denounced)
  • retry
  • pull to refresh
  • offline
  • cancel HTTP requests when no-longer-used
  • data normalization
  • deep-link to a character

That should keep me occupied for this weekend

from riverpod.

rrousselGit avatar rrousselGit commented on May 11, 2024 5

SmartSelect_20200705-140812

I opted for a separate list for the search bar

What do you think of it?
I like it as it demonstrate having two separate states in parallel - which is done by default with Riverpod's families

The main list is obtained with:

useProvider(characters(''));

And the filtered list with:

useProvider(characters(search));

from riverpod.

rrousselGit avatar rrousselGit commented on May 11, 2024

Good idea!
Any other things you'd like in it?

from riverpod.

davidmartos96 avatar davidmartos96 commented on May 11, 2024

@rrousselGit Not really, debounce is something that came to my head because I use it all the time on my projects (although relying on rxdart).

The existing pagination example is very nice + the combination with freezed for the API responses.
I can't think of other common use cases at the moment.

from riverpod.

hpoul avatar hpoul commented on May 11, 2024

How about a Retry on errors? As far as I can see the error would only be shown, without a way to get rid of it? Not sure how this fits into the pagination

from riverpod.

smiLLe avatar smiLLe commented on May 11, 2024

Saving state to disk and recreate the state when come back later :)
I wish there was a sync way to do it :(

from riverpod.

rrousselGit avatar rrousselGit commented on May 11, 2024

You could technically use File.writeSync

Do you want to though... Haha

from riverpod.

smiLLe avatar smiLLe commented on May 11, 2024

Uhhhhhh :D

class Foo extends StateNotifier<FooState> {
   Foo(): super(FooState.fromJson(file.readAsStringSync()) ?? Foo())
}

from riverpod.

rrousselGit avatar rrousselGit commented on May 11, 2024

I'm honestly considering making a wrapper around a DB, such that we'd have:

final provider = StreamProvider((ref) async* {
  final json = await ref.deserialize();
  yield Value.fromJson(json);
}, name: "ID", serialize: (value) => value.toJson());

from riverpod.

hpoul avatar hpoul commented on May 11, 2024

off topic, but this sounds a bit like why I made https://github.com/hpoul/simple_json_persistence#usage-in-flutter-streambuilder which basically produces a json backed ValueStream.. only that you'd have call save to update the state, instead of calling the setter..

from riverpod.

rrousselGit avatar rrousselGit commented on May 11, 2024

I updated the marvel example a bit.

I'm not done yet, but it's a pretty big simplification of how the pagination was done before

from riverpod.

smiLLe avatar smiLLe commented on May 11, 2024

Looking good. Can't wait to see how you solve reloading the character page on error :)

from riverpod.

rrousselGit avatar rrousselGit commented on May 11, 2024

Closing for now. The current example does include a denounced search.

I will implement the remaining points in different examples.

from riverpod.

Related Issues (20)

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.