         (fn [event]
           (dom/prevent-default event)
           (cond
-
             (dnd/has-type? event "app/shape")
             (let [shape (dnd/get-data event "app/shape")
                   point (gpt/point (.-clientX event) (.-clientY event))

       [:& pixel-picker-overlay {:vport vport
                                 :vbox vbox
                                 :viewport-ref viewport-ref
                                 :options options}])

     [:svg.viewport
      {:preserveAspectRatio "xMidYMid meet"

          (st/emit! (dwc/stop-picker))
          (modal/disallow-click-outside!))]

    (mf/use-layout-effect
     ;; Everytime we finish retrieving a new URL we redraw the canvas
     ;; so even if we're not finished the user can start to pick basic
     ;; shapes
     (mf/deps props fetch-pending)
     (fn []
       (try
         (timers/schedule 100
          #(let [svg-node (mf/ref-val svg-ref)
                 canvas-node (mf/ref-val canvas-ref)
                 canvas-context (.getContext canvas-node "2d")
