Skip to content

Instantly share code, notes, and snippets.

@perpen
Created July 19, 2022 07:22
Show Gist options
  • Save perpen/c9923617c9772df80f4d055c1a5c7f90 to your computer and use it in GitHub Desktop.
Save perpen/c9923617c9772df80f4d055c1a5c7f90 to your computer and use it in GitHub Desktop.
(ns sample.navigation
"Port of https://docs.flutter.dev/cookbook/navigation/navigation-basics"
(:require
["package:flutter/material.dart" :as m]
[cljd.flutter.alpha :as f]))
(def second-route
(f/widget
:inherit [m/Navigator]
(m/Scaffold
.appBar (m/AppBar .title (m/Text "Second Route"))
.body
(f/nest
m/Center
(m/ElevatedButton .onPressed #(.pop navigator))
(m/Text "Go back!")))))
(defn goto [nav]
(.push
^m/Navigator nav
(#/(m/MaterialPageRoute Object) .builder (fn [_] second-route)))
nil)
(def first-route
(f/widget
:inherit [m/Navigator]
(m/Scaffold
.appBar (m/AppBar .title (m/Text "First Route"))
.body
(f/nest
m/Center
(m/ElevatedButton
.onPressed (fn [] (goto navigator)))
(m/Text "Open route")))))
(defn main []
(m/runApp
(m/MaterialApp
.title "Navigation Basics"
.home first-route)))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment