-
Notifications
You must be signed in to change notification settings - Fork 25
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
chore(state) expose __none__ state #60
base: master
Are you sure you want to change the base?
Conversation
Security InsightsNo security relevant content was detected by automated scans. Action Items
Questions or Comments? Reach out on Slack: #support-infosec. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
hi there, how's going with this one? |
lib/src/state_machine.dart
Outdated
/// bool, true if this state is None, | ||
/// false otherwise | ||
bool get isNone { | ||
return name == _NONE_STATE_NAME; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Instead of adding isNone
to the API for every State
instance, could we add a static
field to represent the none state and use that? Then the isInitial
getter below could be:
bool get isInitial => from == State.none
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should looks better now
@lidio601 if you could run dartfmt and commit the changes, we should be able to get this merged. Thanks! |
Motivation
I'm listening to a state
onEnter
event to perform some database changes when a transition happens.I noticed that this event was triggered also just after the
stm.start(initialState);
line.To cope with this event and ignore this first initial transition I checked the source code and found that this event has a stub
__none__
state.So in my code I ended up with this:
I think this is not the best approach as I'm relying on some internal representation.
That's why I'm exposing this
State.isNone
getter.Changes
State.isNone
getter addedStateChange.isInitial
Release Notes
Exposed
State.isNone
andStateChange.isInitial
to distinguish initial state change events.Review
See CONTRIBUTING.md for more details on review types (+1 / QA +1 / +10) and code review process.
Please review:
QA Checklist
Merge Checklist
While we perform many automated checks before auto-merging, some manual checks are needed: