{"body":"my %states;\nsub new-state($default?, :$name = UUID.new.Str) is rw is export {\n\tdie \"State $name already exists\" if %states{$name}++;\n\n\tmy $store = $*UI-APP.obj.store;\n\n\tmy $event = \"ui/automatic/{ $name }/update\";\n\t$store.register-handler: $event, -> $, %ev {\n\t\t:db{ $name => %ev<value> }\n\t}\n\n\twith $default -> $value {\n\t\t$store.dispatch: $event, :$value;\n\t\t$store.tick;\n\t}\n\n\tProxy.new(\n\t\tFETCH => sub ($) {\n\t\t\t.{$name} = True with %*UI-PATHS;\n\t\t\t$store.get-in: $name\n\t\t},\n\t\tSTORE => sub ($, $value) {\n\t\t\t$store.dispatch: $event, :$value;\n\t\t\t$value\n\t\t}\n\t)\n}\n","name":"","extension":"raku","url":"https://www.irccloud.com/pastebin/sBfShiWv","modified":1777220956,"id":"sBfShiWv","size":558,"lines":27,"own_paste":false,"theme":"","date":1777220956}