Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AlexanderBollbach/470f9cf61e6f272dfb9cd7de70252858 to your computer and use it in GitHub Desktop.
Save AlexanderBollbach/470f9cf61e6f272dfb9cd7de70252858 to your computer and use it in GitHub Desktop.
class MenuView: NodeSubscriber<String> {
override func getSlice(_ state: AppState) -> SliceResult<String> {
return .stateSlice("")
}
override func makeNode(from slice: String) -> Node {
func setRoute(route: WorkspaceRoute) {
store.dispatch(SetRouteAction([route.rawValue]))
}
return Node(id: 0, isSelected: false, type: .set(
turtles: [
Node(id: 0, isSelected: false, type: .setItem1(title: "project settings", isActive: false) { store.dispatch(SetRouteAction([WorkspaceRoute.projectDetail.rawValue])) }),
Node(id: 0, isSelected: false, type: .setItem1(title: "new", isActive: false) { store.dispatch(NewProjectAction()) }),
Node(id: 0, isSelected: false, type: .setItem1(title: "load project", isActive: false) { setRoute(route: .loadProject) }),
Node(id: 0, isSelected: false, type: .setItem1(title: "Admin", isActive: false) { setRoute(route: WorkspaceRoute.admin) }),
Node(id: 0, isSelected: false, type: .setItem1(title: "sync", isActive: false) { store.dispatch(SyncProjects()) }),
Node(id: 0, isSelected: false, type: .setItem1(title: "save project", isActive: false) { store.dispatch(SaveCurrentProjectAction()) }),
],
config: NodeConfig(layout: .normal, supportsSelection: false),
onSelected: { _, _ in }
))
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment