Skip to content

Commit

Permalink
feat: reactive ui wip
Browse files Browse the repository at this point in the history
  • Loading branch information
jgillich committed Nov 4, 2024
1 parent ec9c130 commit 93980f3
Show file tree
Hide file tree
Showing 47 changed files with 3,908 additions and 1,233 deletions.
3 changes: 3 additions & 0 deletions go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,16 @@ module github.com/getseabird/seabird

go 1.22.0

replace github.com/diamondburned/gotk4/pkg => github.com/jgillich/gotk4/pkg v0.0.0-20240816091658-4c17ab4f892e

require (
github.com/NdoleStudio/lemonsqueezy-go v1.2.3
github.com/adrg/strutil v0.3.1
github.com/creack/pty v1.1.23
github.com/diamondburned/gotk4-adwaita/pkg v0.0.0-20240712143708-824c3ce8a5f4
github.com/diamondburned/gotk4-sourceview/pkg v0.0.0-20240312005410-8276faa7949c
github.com/diamondburned/gotk4/pkg v0.3.1
github.com/fatih/structtag v1.2.0
github.com/getkin/kin-openapi v0.128.0
github.com/go-logr/logr v1.4.2
github.com/google/uuid v1.6.0
Expand Down
6 changes: 4 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@ github.com/diamondburned/gotk4-adwaita/pkg v0.0.0-20240712143708-824c3ce8a5f4 h1
github.com/diamondburned/gotk4-adwaita/pkg v0.0.0-20240712143708-824c3ce8a5f4/go.mod h1:fkvdR7MYO1sI0ex07VYLTc+YK87v24aRFYyMJQ/xAeA=
github.com/diamondburned/gotk4-sourceview/pkg v0.0.0-20240312005410-8276faa7949c h1:9vqKD0zBVac04//nX4f6DQ/pX76eqi7UGFFHnIUJEWY=
github.com/diamondburned/gotk4-sourceview/pkg v0.0.0-20240312005410-8276faa7949c/go.mod h1:vKV3IOI1vvV9aI7PKCgxYzUUarQByRfgDmXMRrDJy7Q=
github.com/diamondburned/gotk4/pkg v0.3.1 h1:uhkXSUPUsCyz3yujdvl7DSN8jiLS2BgNTQE95hk6ygg=
github.com/diamondburned/gotk4/pkg v0.3.1/go.mod h1:DqeOW+MxSZFg9OO+esk4JgQk0TiUJJUBfMltKhG+ub4=
github.com/emicklei/go-restful/v3 v3.12.0 h1:y2DdzBAURM29NFF94q6RaY4vjIH1rtwDapwQtU84iWk=
github.com/emicklei/go-restful/v3 v3.12.0/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg=
github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
github.com/fatih/structtag v1.2.0 h1:/OdNE99OxoI/PqaW/SuSK9uxxT3f/tcSZgon/ssNSx4=
github.com/fatih/structtag v1.2.0/go.mod h1:mBJUNpUnHmRKrKlQQlmCrh5PuhftFbNv8Ys4/aAZl94=
github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/getkin/kin-openapi v0.128.0 h1:jqq3D9vC9pPq1dGcOCv7yOp1DaEe7c/T1vzcLbITSp4=
Expand Down Expand Up @@ -68,6 +68,8 @@ github.com/invopop/yaml v0.3.1 h1:f0+ZpmhfBSS4MhG+4HYseMdJhoeeopbSKbq5Rpeelso=
github.com/invopop/yaml v0.3.1/go.mod h1:PMOp3nn4/12yEZUFfmOuNHJsZToEEOwoWsT+D81KkeA=
github.com/jgillich/gotk4-vte v0.0.0-20240131190304-a4aecd4a69b4 h1:Z0I7BuLH1UgixBJwwyGxnl7BApAyPASc/QZyJX6liko=
github.com/jgillich/gotk4-vte v0.0.0-20240131190304-a4aecd4a69b4/go.mod h1:Tzr3rxt+aoUXpyc5KE3c8IB7B/lGVE4GHnw5X5wyuIk=
github.com/jgillich/gotk4/pkg v0.0.0-20240816091658-4c17ab4f892e h1:7IQAOjKWxvCxjhjVjaBFRXtTvbupznEZ1uAWqxGaUtU=
github.com/jgillich/gotk4/pkg v0.0.0-20240816091658-4c17ab4f892e/go.mod h1:DqeOW+MxSZFg9OO+esk4JgQk0TiUJJUBfMltKhG+ub4=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
Expand Down
71 changes: 71 additions & 0 deletions internal/component/cluster.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package component

import (
"context"

"github.com/diamondburned/gotk4-adwaita/pkg/adw"
"github.com/diamondburned/gotk4/pkg/gtk/v4"
r "github.com/getseabird/seabird/internal/reactive"
"github.com/getseabird/seabird/internal/ui/common"
)

type Cluster struct {
r.BaseComponent
*adw.Application
*common.ClusterState
}

func (c *Cluster) Init(ctx context.Context, ch chan<- any) {

}

func (c *Cluster) Update(ctx context.Context, message any, ch chan<- any) bool {
switch message.(type) {
default:
return false
}
}

func (c *Cluster) View(ctx context.Context, ch chan<- any) r.Model {
return &r.AdwApplicationWindow{
ApplicationWindow: r.ApplicationWindow{
Application: &c.Application.Application,
Window: r.Window{
Title: "Seabird",
IconName: "seabird",
DefaultHeight: 700,
DefaultWidth: 1000,
},
},
Content: &r.AdwToastOverlay{
Child: &r.AdwNavigationView{
Pages: []r.AdwNavigationPage{
r.AdwNavigationPage{
Title: "Seabird",
Child: &r.Box{
Orientation: gtk.OrientationVertical,
Children: []r.Model{
&r.AdwHeaderBar{},
&r.Box{
Children: []r.Model{
r.CreateComponent(&Navigation{resources: c.Resources}),
},
},
&r.Label{Label: "foo"},
},
},
},
},
},
},
}
}

func (c *Cluster) On(hook r.Hook, widget gtk.Widgetter) {
switch hook {
case r.HookCreate:
c.Application.ConnectActivate(func() {
widget.(*adw.ApplicationWindow).Present()
})
}
}
Loading

0 comments on commit 93980f3

Please sign in to comment.