Ver código fonte

fix sitemaps for unclosed nests

Evan Almloff 1 ano atrás
pai
commit
86cd0ec81c
1 arquivos alterados com 18 adições e 0 exclusões
  1. 18 0
      packages/router-macro/src/lib.rs

+ 18 - 0
packages/router-macro/src/lib.rs

@@ -446,6 +446,24 @@ impl RouteEnum {
             routes.push(route);
         }
 
+        // pop any remaining site map segments
+        while let Some(segment) = site_map_stack.pop() {
+            let children = site_map_stack
+                .last_mut()
+                .map(|seg| &mut seg.last_mut().unwrap().children)
+                .unwrap_or(&mut site_map);
+
+            // Turn the list of segments in the segments stack into a tree
+            let mut iter = segment.into_iter().rev();
+            let mut current = iter.next().unwrap();
+            for mut segment in iter {
+                segment.children.push(current);
+                current = segment;
+            }
+
+            children.push(current);
+        }
+
         let myself = Self {
             vis: vis.clone(),
             name: name.clone(),