Comments (10)
Cool thanks @bouteminequalid I'm sure Rodney will take it into consideration
from rfcs.
A few thoughts on this:
-
It seems like ModalStack and PageStack act more like Behaviors (i.e. properties that always have a current value), so it would probably be way more ergonomic if IRoutingStack was a ReactiveObject that you can WhenAny on. This simplifies TopModal and TopPage too because it can just be an OAPH
-
A lot of these fancy list types just get in the way, a regular IEnumerable is probably fine here (or IReadOnlyList maybe). tbh I'd probably just use a regular List.
-
While Xamarin lets you have a stack of modal dialogs, is that really a Good Idea from a UX perspective? I would argue that you should have exactly One modal dialog slot active at any time, and that calling PushModal when a Modal is already active should just replace the previous one completely.
Do we allow consumers to implement their own IRoutingStack and register it for use with ReactiveUI?
I'd argue RoutingStack is more like List or String - it's really just a Bag of Data, so people shouldn't need to write a custom implementation (just like we don't have IString). People will ask for it, and you should Tell Them No :) Instead, make RoutingStack so easy to construct (i.e. with a constructor that optionally lets you fill in the stack explicitly for test time) and hackable that people won't need to.
from rfcs.
@paulcbetts The moments where words matter. IRoutingStack
should have been IRoutingStackService
or IRouter
.
I agree that the collection of data can be as basic as possible.
- ... I would argue that you should have exactly one modal dialog slot active at any time, and that calling PushModal when a Modal is already active should just replace the previous one completely.
I agree with there should only ever be a single modal present at a time. I am not sure that ReactiveUI should impose a limit in it's implementation that doesn't exist on the target platform.
from rfcs.
I would seperate the concepts of modal and navigation into two instances of the same interface. That way it's easier for the user to add new stacks to support y platform.
from rfcs.
Also reduces the number of methods in your interfaces eg navigation.Modal.Pop(true)
from rfcs.
- As discussed offline it would be useful if we can separate out the concept of "animate" to it's own interface.
- Support for Push and remove as per https://github.com/reactiveui/ReactiveUI/issues/1856
- Why IObservable over ReactiveCommand's? ReactiveCommand's have re-entrance protection.
from rfcs.
Hello everyone,
I think these features are worth adding to the framework:
- Navigate back with X hops.
- Navigation back to a target vm already in the stack.
- Navigation forward to a vm and removing x previous pages from the stack.
from rfcs.
@BoutemineOualid All of these I believe are already captured on the Sextant Repository . If not feel free to make sure they are captured.
from rfcs.
- The API seems to lack 'forward view' stack. Platforms like WPF - frame based navigation support these
- Additionally, these platforms persist the 'view' state/visual tree - on their corresponding stacks. Thus the there are two stack model - one based on identity and other based on content. Which would the 'view model' navigation support ? is the view model re-created or cached ?
- Don't think there should be separate stack for modal and non-modal. The modal entries should stack on non-modal.
- what about memory cleanup - either of the views or view models in all scenarios
I have a working WPF version, based on WPF-Frame.
from rfcs.
- I am not sure I understand. I've not worked much with WPF
- My thought would be the content. The ViewModel should be persisted as the binding context? I wouldn't want to recreate that state everytime you Pop from the stack.
- This initial API was based on Xamarin's
INavigation
interface. I think WPF doesn't care, and @glennawatson has pointed out that WPF would prefer these concerns separated out because it doesn't make sense. - Currently there is support for Destroying ViewModels in Sextant. I have been asked to open support for Views as well. I think providing an extension point for clean up is extremely important.
from rfcs.
Related Issues (20)
- RFC: Make ReactiveList obselete and promote DynamicData HOT 8
- RFC: [Core Team] Standardise English dialect HOT 4
- RFC: What's the plan with the monies? HOT 4
- RFC: What are pain points with the ReactiveUI project as a user? HOT 8
- RFC: How to support DI containers other than Splat HOT 20
- RFC: UWP View First gets rid of animation transition, how do we fix
- RFC: Nuget Packages confusing to users with separate platforms HOT 4
- RFC: Make mobile more accessible HOT 3
- RFC: Turn on Analyzers HOT 4
- RFC: Remove ReactiveCommand abstract base class HOT 2
- RFC: Contribute to dependency OpenCollective funds HOT 3
- Application Performance Monitoring Integration HOT 9
- RFC: Order more stickers via OpenCollective HOT 2
- RFC: Create SECURITY.md HOT 2
- funding: what sort of sponsors are unacceptable? HOT 9
- funding: 3000USD payment to Geoffrey Huntley HOT 7
- RFC: [Xamarin Forms] When should we adopt Xamarin Forms v3.0.0 as minver? HOT 5
- RFC: [Learning Team] Interactive Documentation HOT 5
- RFC: [Core Team] Improving list-based databinding, documentation and standardising (mobile) platforms HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from rfcs.