Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
  • Mar 17 19:12
    benkraus closed #72
  • Mar 17 19:12
    benkraus closed #95
  • Mar 17 19:11
    benkraus closed #68
  • Mar 17 19:10
    benkraus closed #73
  • Mar 17 19:10
    benkraus closed #78
  • Dec 20 2019 18:15
    nfcampos closed #111
  • Dec 20 2019 18:14
    nfcampos closed #122
  • Sep 05 2019 04:46
    BenSchwab edited as member
  • Sep 05 2019 04:45
    lelandrichardson edited as member
  • Sep 05 2019 04:44
    gpeal edited as member
  • Jun 27 2019 15:04
    Arlevoy closed #165
  • Jun 27 2019 15:04
    Arlevoy opened #165
  • Mar 26 2019 17:01
    yassinecc closed #164
  • Mar 26 2019 17:01
    yassinecc opened #164
  • Dec 21 2018 12:20
    renatoagds closed #127
  • Nov 10 2018 07:25
    felipecsl added as member
  • Oct 24 2018 07:43
    arufian closed #163
  • Oct 24 2018 07:43
    arufian commented #163
  • Oct 24 2018 04:14
    listenzz commented #163
  • Oct 24 2018 03:11
    arufian opened #163
Ben Kraus
@benkraus
:wave:
Leland Richardson
@lelandrichardson
:wave:
Gustavo Bicalho
@gusbicalho
:wave:
Leland Richardson
@lelandrichardson
@benkraus i added you as a collaborator. going through a couple of PRs and merging them now
i’ve been super sick last couple of days so haven’t really been working
will try to get to creating some GH issues around specific tasks today if i can
one big(ish) task that i want to talk with you about is this idea i have around portals which i think could make this lib wayyy more useful to people in the “greenfield” case
Ben Kraus
@benkraus
Yeah, explain portals some more?
Leland Richardson
@lelandrichardson
basically i want to make it so that people could put arbitrary react views inside of like the nav bar etc.
this isn’t super hard to do on the surface, but building a good API for it has some subtleties
also, animation is tricky
i’d like for people to be able to declare their views and have animations for transitioning between screens
but we need to be able to do the whole screen transition without rerendering
i think this is possible, but it’s definitely going to require some finesse on the native side
Ben Kraus
@benkraus
It's somewhat working though in that regard, right?
The shared elements and whatnot
Though, still a ways from defining your own transitions and whatnot
Nuno Campos
@nfcampos
:wave:
i tried to implement this for custom react views inside the nav bar but couldn't get it to work (admittedly i didn't try too hard)
but i did end up questioning the approach of portals v just rendering a new react root view inside e.g. the nav bar
Nuno Campos
@nfcampos
what's the advantage of using a portal?
Leland Richardson
@lelandrichardson
@nfcampos using a portal would be rendering a new react root view inside the nav bar, but the contents of it would be decided in the render function of a different root view (the screen’s) which is what makes it a portal
Nuno Campos
@nfcampos
ah
then we're speaking of the same thing
you'll find a fairly primitive implementation of this in a PR on the repo. i've since closed the pr because i couldn't get the positioning/transitions working correctly
Leland Richardson
@lelandrichardson
the positioning/transitioning is indeed the tricky part
and i have some ideas around this
i think it would involve making native animated nodes implement CALayer dynamic properties: https://www.objc.io/issues/12-animations/animating-custom-layer-properties/
which would allow us to drive animated values from native, and from things like UITransitionCoordinator
which would be pretty cool
on android i still don’t know exactly how we’d do it but i think it’s possible now that we are using fragments
the portal stuff might be useful even without the transition support though
but obv. not quite as generally applicable
Nuno Campos
@nfcampos
that looks interesting
the portal part i have a fairly good idea of how it can be implemented, ie. how to get this API working <Navigation.Config titleView={<MyCustomView onPress={() => doSomething()} />} />
which would require always on the native side rendering the same Portal component with some id as a prop that then maps on the js side to an element to render
this avoids the props going across the bridge, which would prevent having functions as props etc
this plus some of that transitioning magic should make for a pretty nice experience
Ben Kraus
@benkraus
We actually have functions as props being passed around working. Doing pretty much the same thing as Wix there- a prop "registry" where it sidesteps native
It does essentially that - never sends them over the bridge
Nuno Campos
@nfcampos
i suggest having an element registry so that you don't have to registerComponent all components rendered in a portal, the only one registered is the portal itself
Leland Richardson
@lelandrichardson
yeah we can send function props no problem
but i try to dissuade people from doing so across screens
since we want screens generally to be deep linkable
but sometimes there’s a good reason for it
for things like portals into the navbar and stuff though there would be very good reasons to have function props
Nuno Campos
@nfcampos
yep i want a search bar on the nav bar
on another subject, i'm not sure i agree with the Tabs/Tab api