diff --git a/handlers/index.go b/handlers/index.go
index 0f5bd8a..9cf524e 100644
--- a/handlers/index.go
+++ b/handlers/index.go
@@ -9,7 +9,7 @@ func HandleRoot() http.Handler {
return http.HandlerFunc(
func(w http.ResponseWriter, r *http.Request) {
if r.URL.Path != "/" {
- http.NotFound(w, r)
+ page.Error("404", "Page not found", "The page or resource you have requested does not exist").Render(r.Context(), w)
return
}
page.Index().Render(r.Context(), w)
diff --git a/view/component/nav/navbar.templ b/view/component/nav/navbar.templ
new file mode 100644
index 0000000..eadf5e7
--- /dev/null
+++ b/view/component/nav/navbar.templ
@@ -0,0 +1,25 @@
+package nav
+
+templ Navbar() {
+ {{ navItems := getNavItems() }}
+
+}
diff --git a/view/component/nav/navbar_templ.go b/view/component/nav/navbar_templ.go
new file mode 100644
index 0000000..07196b6
--- /dev/null
+++ b/view/component/nav/navbar_templ.go
@@ -0,0 +1,61 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.3.833
+package nav
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+func Navbar() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ navItems := getNavItems()
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = sideNav(navItems).Render(ctx, templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/view/component/nav/navbar_templ.txt b/view/component/nav/navbar_templ.txt
new file mode 100644
index 0000000..6a904a0
--- /dev/null
+++ b/view/component/nav/navbar_templ.txt
@@ -0,0 +1,3 @@
+
\ No newline at end of file
diff --git a/view/component/nav/navbaritems.go b/view/component/nav/navbaritems.go
new file mode 100644
index 0000000..124d6a5
--- /dev/null
+++ b/view/component/nav/navbaritems.go
@@ -0,0 +1,15 @@
+package nav
+
+type NavItem struct {
+ name string
+ href string
+}
+
+func getNavItems() []NavItem {
+ return []NavItem{
+ {
+ name: "Movies",
+ href: "/movies",
+ },
+ }
+}
diff --git a/view/component/nav/navbarleft.templ b/view/component/nav/navbarleft.templ
new file mode 100644
index 0000000..0d06643
--- /dev/null
+++ b/view/component/nav/navbarleft.templ
@@ -0,0 +1,18 @@
+package nav
+
+templ navLeft(navItems []NavItem) {
+
+
+ for _, item := range navItems {
+
+
+ { item.name }
+
+
+ }
+
+
+}
diff --git a/view/component/nav/navbarleft_templ.go b/view/component/nav/navbarleft_templ.go
new file mode 100644
index 0000000..c026fee
--- /dev/null
+++ b/view/component/nav/navbarleft_templ.go
@@ -0,0 +1,72 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.3.833
+package nav
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+func navLeft(navItems []NavItem) templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ for _, item := range navItems {
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var3 string
+ templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(item.name)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `view/component/nav/navbarleft.templ`, Line: 12, Col: 17}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, " ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/view/component/nav/navbarleft_templ.txt b/view/component/nav/navbarleft_templ.txt
new file mode 100644
index 0000000..91a59e4
--- /dev/null
+++ b/view/component/nav/navbarleft_templ.txt
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/view/component/nav/navbarright.templ b/view/component/nav/navbarright.templ
new file mode 100644
index 0000000..ef9b7ce
--- /dev/null
+++ b/view/component/nav/navbarright.templ
@@ -0,0 +1,43 @@
+package nav
+
+templ navRight() {
+
+
+
+ Toggle menu
+
+
+
+
+
+}
diff --git a/view/component/nav/navbarright_templ.go b/view/component/nav/navbarright_templ.go
new file mode 100644
index 0000000..7b2c338
--- /dev/null
+++ b/view/component/nav/navbarright_templ.go
@@ -0,0 +1,40 @@
+// Code generated by templ - DO NOT EDIT.
+
+// templ: version: v0.3.833
+package nav
+
+//lint:file-ignore SA4006 This context is only used if a nested component is present.
+
+import "github.com/a-h/templ"
+import templruntime "github.com/a-h/templ/runtime"
+
+func navRight() templ.Component {
+ return templruntime.GeneratedTemplate(func(templ_7745c5c3_Input templruntime.GeneratedComponentInput) (templ_7745c5c3_Err error) {
+ templ_7745c5c3_W, ctx := templ_7745c5c3_Input.Writer, templ_7745c5c3_Input.Context
+ if templ_7745c5c3_CtxErr := ctx.Err(); templ_7745c5c3_CtxErr != nil {
+ return templ_7745c5c3_CtxErr
+ }
+ templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templruntime.GetBuffer(templ_7745c5c3_W)
+ if !templ_7745c5c3_IsBuffer {
+ defer func() {
+ templ_7745c5c3_BufErr := templruntime.ReleaseBuffer(templ_7745c5c3_Buffer)
+ if templ_7745c5c3_Err == nil {
+ templ_7745c5c3_Err = templ_7745c5c3_BufErr
+ }
+ }()
+ }
+ ctx = templ.InitializeContext(ctx)
+ templ_7745c5c3_Var1 := templ.GetChildren(ctx)
+ if templ_7745c5c3_Var1 == nil {
+ templ_7745c5c3_Var1 = templ.NopComponent
+ }
+ ctx = templ.ClearChildren(ctx)
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 1, "")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/view/component/nav/navbarright_templ.txt b/view/component/nav/navbarright_templ.txt
new file mode 100644
index 0000000..3f87a43
--- /dev/null
+++ b/view/component/nav/navbarright_templ.txt
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/view/component/sidenav.templ b/view/component/nav/sidenav.templ
similarity index 98%
rename from view/component/sidenav.templ
rename to view/component/nav/sidenav.templ
index caee138..42c504b 100644
--- a/view/component/sidenav.templ
+++ b/view/component/nav/sidenav.templ
@@ -1,4 +1,4 @@
-package component
+package nav
templ sideNav(navItems []NavItem) {
")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ for _, item := range navItems {
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ var templ_7745c5c3_Var3 string
+ templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(item.name)
+ if templ_7745c5c3_Err != nil {
+ return templ.Error{Err: templ_7745c5c3_Err, FileName: `view/component/nav/sidenav.templ`, Line: 18, Col: 18}
+ }
+ _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3))
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 4, " ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ }
+ templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, " ")
+ if templ_7745c5c3_Err != nil {
+ return templ_7745c5c3_Err
+ }
+ return nil
+ })
+}
+
+var _ = templruntime.GeneratedTemplate
diff --git a/view/component/nav/sidenav_templ.txt b/view/component/nav/sidenav_templ.txt
new file mode 100644
index 0000000..b004ee4
--- /dev/null
+++ b/view/component/nav/sidenav_templ.txt
@@ -0,0 +1,5 @@
+
\ No newline at end of file
diff --git a/view/component/navbar.templ b/view/component/navbar.templ
deleted file mode 100644
index ab796a8..0000000
--- a/view/component/navbar.templ
+++ /dev/null
@@ -1,90 +0,0 @@
-package component
-
-type NavItem struct {
- name string
- href string
-}
-
-func getNavItems() []NavItem {
- return []NavItem{
- {
- name: "Movies",
- href: "/movies",
- },
- }
-}
-
-templ Navbar() {
-
-
- @sideNav(getNavItems())
-
-}
diff --git a/view/layout/global.templ b/view/layout/global.templ
index 32ba23b..1d9f227 100644
--- a/view/layout/global.templ
+++ b/view/layout/global.templ
@@ -1,21 +1,18 @@
package layout
-import "projectreshoot/view/component"
+import "projectreshoot/view/component/nav"
templ Global() {
-
-
-
-
-
-
- Project Reshoot
-
-
-
-
+
+
-
-
-
- @component.Navbar()
- Hello world!
- { children... }
-
-
-
+
+
+ @nav.Navbar()
+ { children... }
+
+