@@ -16,16 +16,17 @@ import (
1616 "github.com/wavetermdev/waveterm/tsunami/vdom"
1717)
1818
19- func init () {
20- app .SetConfig ("pollInterval" , 5 )
21- app .SetConfig ("repository" , "wavetermdev/waveterm" )
22- app .SetConfig ("workflow" , "build-helper.yml" )
23- app .SetConfig ("maxWorkflowRuns" , 10 )
24- app .SetData ("workflowRuns" , []WorkflowRun {})
25- app .SetData ("lastError" , "" )
26- app .SetData ("isLoading" , true )
27- app .SetData ("lastRefreshTime" , time.Time {})
28- }
19+ // Global atoms for config and data
20+ var (
21+ pollIntervalAtom = app .ConfigAtom ("pollInterval" , 5 )
22+ repositoryAtom = app .ConfigAtom ("repository" , "wavetermdev/waveterm" )
23+ workflowAtom = app .ConfigAtom ("workflow" , "build-helper.yml" )
24+ maxWorkflowRunsAtom = app .ConfigAtom ("maxWorkflowRuns" , 10 )
25+ workflowRunsAtom = app .DataAtom ("workflowRuns" , []WorkflowRun {})
26+ lastErrorAtom = app .DataAtom ("lastError" , "" )
27+ isLoadingAtom = app .DataAtom ("isLoading" , true )
28+ lastRefreshTimeAtom = app .DataAtom ("lastRefreshTime" , time.Time {})
29+ )
2930
3031type WorkflowRun struct {
3132 ID int64 `json:"id"`
@@ -223,14 +224,14 @@ var App = app.DefineComponent("App",
223224 func (ctx context.Context , _ struct {}) any {
224225 vdom .UseSetAppTitle (ctx , "GitHub Actions Monitor" )
225226
226- workflowRuns , setWorkflowRuns , _ := vdom .UseData [[]WorkflowRun ](ctx , "workflowRuns" )
227- lastError , setLastError , _ := vdom .UseData [string ](ctx , "lastError" )
228- isLoading , setIsLoading , _ := vdom .UseData [bool ](ctx , "isLoading" )
229- lastRefreshTime , setLastRefreshTime , _ := vdom .UseData [time.Time ](ctx , "lastRefreshTime" )
230- pollInterval , _ , _ := vdom .UseConfig [int ](ctx , "pollInterval" )
231- repository , _ , _ := vdom .UseConfig [string ](ctx , "repository" )
232- workflow , _ , _ := vdom .UseConfig [string ](ctx , "workflow" )
233- maxWorkflowRuns , _ , _ := vdom .UseConfig [int ](ctx , "maxWorkflowRuns" )
227+ workflowRuns , setWorkflowRuns , _ := vdom .UseAtom [[]WorkflowRun ](ctx , workflowRunsAtom )
228+ lastError , setLastError , _ := vdom .UseAtom [string ](ctx , lastErrorAtom )
229+ isLoading , setIsLoading , _ := vdom .UseAtom [bool ](ctx , isLoadingAtom )
230+ lastRefreshTime , setLastRefreshTime , _ := vdom .UseAtom [time.Time ](ctx , lastRefreshTimeAtom )
231+ pollInterval , _ , _ := vdom .UseAtom [int ](ctx , pollIntervalAtom )
232+ repository , _ , _ := vdom .UseAtom [string ](ctx , repositoryAtom )
233+ workflow , _ , _ := vdom .UseAtom [string ](ctx , workflowAtom )
234+ maxWorkflowRuns , _ , _ := vdom .UseAtom [int ](ctx , maxWorkflowRunsAtom )
234235
235236 _ , _ , setTickerFn := vdom .UseState [int ](ctx , 0 )
236237
@@ -239,7 +240,7 @@ var App = app.DefineComponent("App",
239240 done := make (chan bool )
240241
241242 fetchData := func () {
242- currentMaxRuns := app. GetConfig [ int ]( "maxWorkflowRuns" )
243+ currentMaxRuns := maxWorkflowRunsAtom . Get ( )
243244 runs , err := fetchWorkflowRuns (repository , workflow , currentMaxRuns )
244245 if err != nil {
245246 log .Printf ("Error fetching workflow runs: %v" , err )
@@ -279,7 +280,7 @@ var App = app.DefineComponent("App",
279280 handleRefresh := func () {
280281 setIsLoading (true )
281282 go func () {
282- currentMaxRuns := app. GetConfig [ int ]( "maxWorkflowRuns" )
283+ currentMaxRuns := maxWorkflowRunsAtom . Get ( )
283284 runs , err := fetchWorkflowRuns (repository , workflow , currentMaxRuns )
284285 if err != nil {
285286 log .Printf ("Error fetching workflow runs: %v" , err )
0 commit comments