mirror of
https://github.com/priyanshujain/sanderling.git
synced 2026-10-02 19:17:10 +00:00
refactor(hierarchy): name no screen for a tree Transitional calls a cross-fade
ScreenName kept its own reading of the route markers and disagreed with Transitional on a marker repeated by a nested node: it named the screen on a step the runner was skipping as unsettled. One reading now.
This commit is contained in:
1 parent
8dc4d08bc1
commit
db43f450bc
2 files changed
+7
-20
No files matched your search
@@ -669,9 +669,7 @@ func (t *Tree) Transitional() bool {
|
||||
|
||||
// ScreenName names the route this tree shows: the driver-set screen when the
|
||||
// platform reports one (web), otherwise the resource id ending in "Screen" that
|
||||
// marks the route composable. A tree carrying two different route ids is a
|
||||
// cross-fade in flight and names no screen, which is the same reading
|
||||
// Transitional gives it.
|
||||
// marks the route composable. A transitional tree names no screen.
|
||||
func (t *Tree) ScreenName() string {
|
||||
if t == nil || len(t.Elements) == 0 {
|
||||
return ""
|
||||
@@ -679,17 +677,15 @@ func (t *Tree) ScreenName() string {
|
||||
if screen := t.Elements[0].Screen; screen != "" {
|
||||
return screen
|
||||
}
|
||||
name := ""
|
||||
for _, element := range t.Elements {
|
||||
if !strings.HasSuffix(element.ResourceID, "Screen") {
|
||||
continue
|
||||
}
|
||||
if name != "" && name != element.ResourceID {
|
||||
if t.Transitional() {
|
||||
return ""
|
||||
}
|
||||
name = element.ResourceID
|
||||
for _, element := range t.Elements {
|
||||
if strings.HasSuffix(element.ResourceID, "Screen") {
|
||||
return element.ResourceID
|
||||
}
|
||||
return name
|
||||
}
|
||||
return ""
|
||||
}
|
||||
|
||||
// Find returns the first element matching the selector, or nil.
|
||||
|
||||
@@ -1840,15 +1840,6 @@ func TestScreenNameNamesTheRouteTheTreeShows(t *testing.T) {
|
||||
]}`,
|
||||
"HomeScreen",
|
||||
},
|
||||
{
|
||||
"route marker repeated by a nested node",
|
||||
`{"attributes": {"bounds": "[0,0,10,10]"}, "children": [
|
||||
{"attributes": {"resource-id": "HomeScreen", "bounds": "[0,0,10,10]"}, "children": [
|
||||
{"attributes": {"resource-id": "HomeScreen", "bounds": "[0,0,10,5]"}, "children": []}
|
||||
]}
|
||||
]}`,
|
||||
"HomeScreen",
|
||||
},
|
||||
{
|
||||
"cross-fade names no screen",
|
||||
`{"attributes": {"bounds": "[0,0,10,10]"}, "children": [
|
||||
|
||||
Reference in new issue
Block a user