                                     (max 1 (* vw 2))))
                      :canvas-node canvas
                      :ctx         (.getContext canvas "2d")
-                     :show-about? true
+                     :show-about? (not skip-howto?)
                      :media-error nil})
-                  (js/setTimeout start! 500))))
+                  (js/setTimeout start! 500)
+                  (.setItem js/localStorage ls-key "1"))))
             (aset "srcObject" data)))
-        (swap! app-state assoc :media-error data)))))
+        (do
+          (swap! app-state assoc :media-error data :previous-grant? false)
+          (.clear js/localStorage))))))
 
 
 (defn make-gif [app ms]

    (reify
      om/IDidMount
      (did-mount [_]
        (def playback-ctx
          (let [ctx (-> (om/get-node owner "playback") (.getContext "2d"))]
            (aset ctx "fillStyle" "#292929")



(defn modal [{:keys [stream media-error show-about? result-gif cells win-state
                     grid-size tick-ms gif-building? camera-waiting?
                     previous-grant?] :as app}]
  (let [winner?    (and cells (= cells win-state))
        no-stream? (not stream)]
    (dom/div
