Laid the groundwork!
This commit is contained in:
parent
7f15b71498
commit
b60f030880
31
components/aboutpage.go
Normal file
31
components/aboutpage.go
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
package components
|
||||||
|
|
||||||
|
import "github.com/maxence-charriere/go-app/v9/pkg/app"
|
||||||
|
|
||||||
|
type AboutPage struct {
|
||||||
|
app.Compo
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewAboutPage() *AboutPage {
|
||||||
|
return &AboutPage{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *AboutPage) Render() app.UI {
|
||||||
|
return app.Div().Body(
|
||||||
|
&header{},
|
||||||
|
app.Div().Body(
|
||||||
|
newNavbar(),
|
||||||
|
&aboutPanel{},
|
||||||
|
).Class("main"),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
type aboutPanel struct {
|
||||||
|
app.Compo
|
||||||
|
}
|
||||||
|
|
||||||
|
func (a *aboutPanel) Render() app.UI {
|
||||||
|
return app.Div().Body(
|
||||||
|
app.Raw(`<p>I am a 21 year old computer science student, living and studying in The Netherlands.</p>`),
|
||||||
|
).Class("content")
|
||||||
|
}
|
23
components/content-view.go
Normal file
23
components/content-view.go
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
package components
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/maxence-charriere/go-app/v9/pkg/app"
|
||||||
|
)
|
||||||
|
|
||||||
|
type contentView struct {
|
||||||
|
app.Compo
|
||||||
|
|
||||||
|
panels []app.UI
|
||||||
|
}
|
||||||
|
|
||||||
|
func newContentView(panels ...app.UI) *contentView {
|
||||||
|
return &contentView{panels: panels}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (c *contentView) Render() app.UI {
|
||||||
|
return app.Div().Body(
|
||||||
|
app.Range(c.panels).Slice(func(i int) app.UI {
|
||||||
|
return c.panels[i]
|
||||||
|
}),
|
||||||
|
)
|
||||||
|
}
|
@ -6,24 +6,24 @@ import (
|
|||||||
|
|
||||||
type Homepage struct {
|
type Homepage struct {
|
||||||
app.Compo
|
app.Compo
|
||||||
|
|
||||||
|
content *contentView
|
||||||
}
|
}
|
||||||
|
|
||||||
func NewHomepage() *Homepage {
|
func NewHomepage() *Homepage {
|
||||||
return &Homepage{}
|
p1 := newHomePanel()
|
||||||
|
c := newContentView(p1)
|
||||||
|
return &Homepage{content: c}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (p *Homepage) Render() app.UI {
|
func (p *Homepage) Render() app.UI {
|
||||||
return app.Div().Body(
|
return app.Div().Body(
|
||||||
&header{},
|
&header{},
|
||||||
app.Div().Body(
|
app.Div().Body(
|
||||||
app.Div().Body(
|
newNavbar(),
|
||||||
app.Ul().Body(
|
newHomePanel(),
|
||||||
app.Li().Body(
|
newHomePanel(),
|
||||||
app.A().Href("/").Text("Home"),
|
newHomePanel(),
|
||||||
),
|
|
||||||
),
|
|
||||||
).Class("navbar"),
|
|
||||||
app.Div().Text("Dit is test tekst voor in de div content").Class("content"),
|
|
||||||
).Class("main"),
|
).Class("main"),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
21
components/homepanel.go
Normal file
21
components/homepanel.go
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
package components
|
||||||
|
|
||||||
|
import "github.com/maxence-charriere/go-app/v9/pkg/app"
|
||||||
|
|
||||||
|
type homePanel struct {
|
||||||
|
app.Compo
|
||||||
|
}
|
||||||
|
|
||||||
|
func newHomePanel() *homePanel {
|
||||||
|
return &homePanel{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (p *homePanel) Render() app.UI {
|
||||||
|
return app.Div().Body(
|
||||||
|
app.Raw(`<p>Welcome to my website, internet traveler!
|
||||||
|
This website is my creative outlet and a way of expressing myself.
|
||||||
|
As of now, it's probably the most impressive thing I've ever coded.
|
||||||
|
<br>
|
||||||
|
Please enjoy yourself and do sign the guestbook!!</p>`),
|
||||||
|
).Class("content")
|
||||||
|
}
|
24
components/navbar.go
Normal file
24
components/navbar.go
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
package components
|
||||||
|
|
||||||
|
import "github.com/maxence-charriere/go-app/v9/pkg/app"
|
||||||
|
|
||||||
|
type navbar struct {
|
||||||
|
app.Compo
|
||||||
|
}
|
||||||
|
|
||||||
|
func newNavbar() *navbar {
|
||||||
|
return &navbar{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (n *navbar) Render() app.UI {
|
||||||
|
return app.Div().Body(
|
||||||
|
app.Ul().Body(
|
||||||
|
app.Li().Body(
|
||||||
|
app.A().Href("/").Text("Home"),
|
||||||
|
),
|
||||||
|
app.Li().Body(
|
||||||
|
app.A().Href("/about").Text("About"),
|
||||||
|
),
|
||||||
|
),
|
||||||
|
).Class("navbar")
|
||||||
|
}
|
2
main.go
2
main.go
@ -10,7 +10,9 @@ import (
|
|||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
homepage := components.NewHomepage()
|
homepage := components.NewHomepage()
|
||||||
|
aboutpage := components.NewAboutPage()
|
||||||
app.Route("/", homepage)
|
app.Route("/", homepage)
|
||||||
|
app.Route("/about", aboutpage)
|
||||||
|
|
||||||
// This is executed on the client side only.
|
// This is executed on the client side only.
|
||||||
// It handles client side stuff
|
// It handles client side stuff
|
||||||
|
@ -46,8 +46,11 @@ body {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border-color: rgb(252, 230, 255);
|
border-color: rgb(252, 230, 255);
|
||||||
background-color: rgb(54, 39, 48);
|
background-color: rgb(54, 39, 48);
|
||||||
|
margin-bottom: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
float:right;
|
float:right;
|
||||||
width: 633px;
|
width: 633px;
|
||||||
|
padding: 10px;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
@ -46,8 +46,16 @@ body {
|
|||||||
border-radius: 4px;
|
border-radius: 4px;
|
||||||
border-color: rgb(252, 230, 255);
|
border-color: rgb(252, 230, 255);
|
||||||
background-color: rgb(54, 39, 48);
|
background-color: rgb(54, 39, 48);
|
||||||
|
margin-bottom: 5px;
|
||||||
position: relative;
|
position: relative;
|
||||||
float:right;
|
float:right;
|
||||||
width: 633px;
|
width: 614px;
|
||||||
|
padding: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.content p {
|
||||||
|
width: 80%;
|
||||||
|
margin-left: 10px;
|
||||||
|
margin-top: 5px;
|
||||||
|
margin-bottom: 5px;
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user