diff options
author | Tim <contact@bytim.eu> | 2025-02-08 11:28:57 +0100 |
---|---|---|
committer | Tim <contact@bytim.eu> | 2025-02-08 11:28:57 +0100 |
commit | d69bc395e6cc9ed5e1da6a31835874142fe6800e (patch) | |
tree | 324cf18c710721c286890d78310ebe0075499ea4 /src/distractionless/ui/apps | |
download | distractionless-d69bc395e6cc9ed5e1da6a31835874142fe6800e.tar.xz distractionless-d69bc395e6cc9ed5e1da6a31835874142fe6800e.zip |
Initial commit
Diffstat (limited to 'src/distractionless/ui/apps')
-rw-r--r-- | src/distractionless/ui/apps/settings.cljd | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/src/distractionless/ui/apps/settings.cljd b/src/distractionless/ui/apps/settings.cljd new file mode 100644 index 0000000..1b4de0a --- /dev/null +++ b/src/distractionless/ui/apps/settings.cljd @@ -0,0 +1,42 @@ +(ns distractionless.ui.apps.settings + (:require ["package:flutter/material.dart" :as m] + [cljd.flutter :as f] + [distractionless.ui.constants :as duconstants] + [distractionless.config :as dconfig])) + +(defn- header [app ctx] + (m/Row + .mainAxisAlignment m/MainAxisAlignment.spaceBetween + .children [(m/Text (.-name app) + .style duconstants/title-style) + (m/IconButton .icon (m/Icon m/Icons.clear_rounded) + .color duconstants/text-color + .onPressed #(m/Navigator.pop ctx) + .iconSize 30.0)])) + +(defn- favourite-setting [app config-file reloader] + (m/Row + .children [(m/Checkbox + .value (contains? (get (dconfig/read-from-file config-file) "favourites") + (.-packageName app)) + .onChanged (fn [new-val] + (if new-val + (dconfig/update-config! config-file + #(update % "favourites" conj (.-packageName app)) + reloader) + (dconfig/update-config! config-file + (fn [config] + (update config "favourites" disj (.-packageName app))) + reloader))) + .activeColor duconstants/checkbox-active-color) + (m/Text "Favorit")])) + +(defn open [app config-file ctx reloader] + (m/showDialog + .context ctx + .builder (f/build :watch [_ reloader] + (m/Dialog.fullscreen + .backgroundColor duconstants/background-color + .child (m/Column + .children (list (header app ctx) + (favourite-setting app config-file reloader))))))) |