From d7d85442e37b38083f12f89ba31173c76ea0ac0c Mon Sep 17 00:00:00 2001 From: sindhu Date: Thu, 2 May 2024 09:44:32 +0700 Subject: [PATCH] navbar from services --- assets/sindhu/mastermenu.html | 7055 +++++++++++++++++ db/mastermenu.go | 26 + handlers/mastermenu.handlers.go | 45 + handlers/routes.go | 2 + services/mastermenu.services.go | 177 + .../breadcrumbmaster/breadcrumbmaster.templ | 23 + .../breadcrumbmaster_templ.go | 35 + views/mastermenu/mastermenu.templ | 882 +++ views/mastermenu/mastermenu_templ.go | 256 + 9 files changed, 8501 insertions(+) create mode 100644 assets/sindhu/mastermenu.html create mode 100644 db/mastermenu.go create mode 100644 handlers/mastermenu.handlers.go create mode 100644 services/mastermenu.services.go create mode 100644 views/component/breadcrumbmaster/breadcrumbmaster.templ create mode 100644 views/component/breadcrumbmaster/breadcrumbmaster_templ.go create mode 100644 views/mastermenu/mastermenu.templ create mode 100644 views/mastermenu/mastermenu_templ.go diff --git a/assets/sindhu/mastermenu.html b/assets/sindhu/mastermenu.html new file mode 100644 index 0000000..da5971b --- /dev/null +++ b/assets/sindhu/mastermenu.html @@ -0,0 +1,7055 @@ + + + + + + + + Metronic | Dashboard + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + Logo + + + + +
+ + + + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ + + + + + + +
+ + + +
+ +
+ + + +
+ +
+ +
+ + + +
+ +
+ +
+ +
+
+ + + +
+ +
+
+ Hi, + Sean + + S + +
+
+ +
+ +
+ +
+ + + +
+ + +
+ +
+ +
+ +
+ +
+ + + + + +
+ +
+ +
+ + + +
+ +
+

+ User Profile + 12 messages +

+ + + +
+ + + +
+ +
+
+
+ +
+ +
+ + + +
+ + + + + + + +
+ + + +
+ +
Recent Notifications
+ + + +
+ + + + + + + + + +
+ Another purpose persuade + Due in 2 Days +
+ + +28% +
+ + + +
+ + + + + + + + +
+ Would be to people + Due in 2 Days +
+ + +50% +
+ + + +
+ + + + + + + + +
+ Purpose would be to persuade + Due in 2 Days +
+ + -27% +
+ + + +
+ + + + + + + + + + + +
+ The best product + Due in 2 Days +
+ + +8% +
+ +
+ +
+ +
+ + + +
+ +
+ +
+ + + +
+
+ + + +
+
+ +
+ +
+
System Messages
+ +
+
+ + + +
+
+ Top Authors + Most Successful Fellas +
+ +82$ +
+ + + +
+
+ + + +
+
+ Popular Authors + Most Successful Fellas +
+ +280$ +
+ + + +
+
+ + + +
+
+ New Users + Most Successful Fellas +
+ +4500$ +
+ + + +
+
+ + + +
+
+ Active Customers + Most Successful Fellas +
+ +4500$ +
+ + + +
+
+ + + +
+
+ Bestseller Theme + Most Successful Fellas +
+ +4500$ +
+ +
+ + + +
+
Notifications
+ + +
+ + + + + + + + + +
+ Another purpose persuade + Due in 2 Days +
+ + +28% +
+ + + +
+ + + + + + + + +
+ Would be to people + Due in 2 Days +
+ + +50% +
+ + + +
+ + + + + + + + +
+ Purpose would be to persuade + Due in 2 Days +
+ + -27% +
+ + + +
+ + + + + + + + + + + +
+ The best product + Due in 2 Days +
+ + +8% +
+ +
+ + +
+ + + + + + + +
+
+ +
+
Customer Care
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ + +
+ + +
+
Reports
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ + +
+ + +
+
Memebers
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+
+ +
+
+ +
+ + + + + + + +
+ + + + + + +
+ + + + +
+ +
+

Select A Demo

+ + + +
+ + + +
+ +
+
Demo 1
+
+
+ +
+ +
+
Demo 2
+
+
+ +
+ +
+
Demo 3
+
+
+ +
+ +
+
Demo 4
+
+
+ +
+ +
+
Demo 5
+
+
+ +
+ +
+
Demo 6
+
+
+ +
+ +
+
Demo 7
+
+
+ +
+ +
+
Demo 8
+
+
+ +
+ +
+
Demo 9
+
+
+ +
+ +
+
Demo 10
+
+
+ +
+ +
+
Demo 11
+
+
+ +
+ +
+
Demo 12
+
+
+ +
+ +
+
Demo 13
+
+
+ +
+ +
+
Demo 14
+
+
+ +
+ +
+
Demo 15
+
+
+ +
+ +
+
Demo 16
+
+
+ +
+ +
+
Demo 17
+
+
+ +
+ +
+
Demo 18
+
+
+ +
+ +
+
Demo 19
+
+
+ +
+ +
+
Demo 20
+
+
+ +
+ +
+
Demo 21
+
+
+ +
+ +
+
Demo 22
+
+
+ +
+ +
+
Demo 23
+
+
+ +
+ +
+
Demo 24
+
+
+ +
+ +
+
Demo 25
+
+
+ +
+ +
+
Demo 26
+
+
+ +
+ +
+
Demo 27
+
+
+ +
+ +
+
Demo 28
+
+
+ +
+ +
+
Demo 29
+
+
+ +
+ +
+
Demo 30
+
+
+ +
+ +
+
+ + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + diff --git a/db/mastermenu.go b/db/mastermenu.go new file mode 100644 index 0000000..f3b3b38 --- /dev/null +++ b/db/mastermenu.go @@ -0,0 +1,26 @@ +package db + +import ( + "database/sql" + + _ "github.com/glebarez/go-sqlite" +) + +type MasterMenuStore struct { + Db *sql.DB +} + +func NewMasterMenuStore(dbName string) (MasterMenuStore, error) { + Db, err := getConnection(dbName) + if err != nil { + return MasterMenuStore{}, err + } + + if err := createMigrations(dbName, Db); err != nil { + return MasterMenuStore{}, err + } + + return MasterMenuStore{ + Db, + }, nil +} diff --git a/handlers/mastermenu.handlers.go b/handlers/mastermenu.handlers.go new file mode 100644 index 0000000..df08121 --- /dev/null +++ b/handlers/mastermenu.handlers.go @@ -0,0 +1,45 @@ +package handlers + +import ( + "github.com/a-h/templ" + "github.com/emarifer/go-templ-project-structure/services" + mastermenu "github.com/emarifer/go-templ-project-structure/views/mastermenu" + "github.com/labstack/echo/v4" +) + +type MasterMenuService interface { + GetMasterMenus() ([]services.MasterMenu, error) +} + +func NewMasterMenuHandler(us MasterMenuService) *MasterMenuHandler { + return &MasterMenuHandler{ + MasterMenuService: us, + } +} + +type MasterMenuHandler struct { + MasterMenuService MasterMenuService +} + +func (lh *MasterMenuHandler) HandlerShowMasterMenu(c echo.Context) error { + + dataMenu, err := lh.MasterMenuService.GetMasterMenus() + if err != nil { + // fmt.Println(err) + return err + } + + si := mastermenu.ShowMasterMenu("Master Menu", + mastermenu.MainMasterMenu(dataMenu), + mastermenu.CssMasterMenu(), + mastermenu.JsMasterMenu(), + ) + + return lh.View(c, si) +} + +func (uh *MasterMenuHandler) View(c echo.Context, cmp templ.Component) error { + c.Response().Header().Set(echo.HeaderContentType, echo.MIMETextHTML) + + return cmp.Render(c.Request().Context(), c.Response().Writer) +} diff --git a/handlers/routes.go b/handlers/routes.go index 6f9a1b1..3583ca4 100644 --- a/handlers/routes.go +++ b/handlers/routes.go @@ -20,8 +20,10 @@ func SetupRoutesXsample(app *echo.Echo, h *XsampleHandler) { xSample.GET("/xsample01", h.Hello) } func SetupRoutesLandingPage(app *echo.Echo, h *LandingPageHandler) { + mastermenuHandler := &MasterMenuHandler{} Lp := app.Group("/landing_page") Lp.GET("/", h.ShowLandingPage) + Lp.GET("/mastermenu", mastermenuHandler.HandlerShowMasterMenu) } func SetupRoutesPieChart(app *echo.Echo, h *PiechartHandler) { Lp := app.Group("/pie_chart") diff --git a/services/mastermenu.services.go b/services/mastermenu.services.go new file mode 100644 index 0000000..4f50798 --- /dev/null +++ b/services/mastermenu.services.go @@ -0,0 +1,177 @@ +package services + +import ( + "github.com/emarifer/go-templ-project-structure/db" +) + +func NewServicesMasterMenu(u MasterMenu, uStore db.MasterMenuStore) *ServicesMasterMenu { + + return &ServicesMasterMenu{ + MasterMenu: u, + MasterMenuStore: uStore, + } +} + +// MasterMenu struct +type Breadcrumb struct { + IDBreadcrumb string `json:"id_breadcrumb"` + Title string `json:"title"` + IsActive string `json:"is_active"` +} + +type ChildrenMenu struct { + ChildrenParentID string `json:"children_parent_id"` + ChildrenMenuID string `json:"children_menu_id"` + ChildrenMenuName string `json:"children_menu_name"` + ChildrenMenuURL string `json:"children_menu_url"` + Breadcrumb []Breadcrumb `json:"breadcrumb"` +} + +type MasterMenu struct { + ID string `json:"id"` + ParentMenuID string `json:"parent_menu_id"` + ParentMenuName string `json:"parent_menu_name"` + ParentUrl string `json:"parent_url"` + Children []ChildrenMenu `json:"children"` +} + +type ServicesMasterMenu struct { + MasterMenu MasterMenu + MasterMenuStore db.MasterMenuStore +} + +func (su *ServicesMasterMenu) GetMasterMenus() ([]MasterMenu, error) { + + dummyMenu := []MasterMenu{ + { + + ID: "1", + ParentMenuID: "0", + ParentMenuName: "Dashboard", + ParentUrl: "/client/md/dashboard", + Children: []ChildrenMenu{ + { + ChildrenParentID: "1", + ChildrenMenuID: "1", + ChildrenMenuName: "Master User", + ChildrenMenuURL: "/client/md/user", + Breadcrumb: []Breadcrumb{ + { + IDBreadcrumb: "1", + Title: "Dashboard", + IsActive: "Y", + }, + }, + }, + }, + }, + { + ID: "1", + ParentMenuID: "1", + ParentMenuName: "Master Data", + ParentUrl: "#", + Children: []ChildrenMenu{ + { + ChildrenParentID: "1", + ChildrenMenuID: "1", + ChildrenMenuName: "Master User", + ChildrenMenuURL: "/client/md/user", + Breadcrumb: []Breadcrumb{ + { + IDBreadcrumb: "1", + Title: "Dashboard", + IsActive: "N", + }, + { + IDBreadcrumb: "2", + Title: "Master", + IsActive: "N", + }, + { + IDBreadcrumb: "3", + Title: "User", + IsActive: "Y", + }, + }, + }, + { + ChildrenParentID: "1", + ChildrenMenuID: "2", + ChildrenMenuName: "Master User Group", + ChildrenMenuURL: "/client/md/usergroup", + Breadcrumb: []Breadcrumb{ + { + IDBreadcrumb: "1", + Title: "Dashboard", + IsActive: "N", + }, + { + IDBreadcrumb: "2", + Title: "Master", + IsActive: "N", + }, + { + IDBreadcrumb: "3", + Title: "User Group", + IsActive: "Y", + }, + }, + }, + }, + }, + } + return dummyMenu, nil +} + +// func (su *ServicesMasterMenu) GetAllMasterMenus() ([]MasterMenu, error) { +// query := `SELECT id, MasterMenuname, email, created_at FROM MasterMenus ORDER BY created_at DESC` + +// rows, err := su.MasterMenuStore.Db.Query(query) +// if err != nil { +// return []MasterMenu{}, err +// } +// // We close the resource +// defer rows.Close() + +// MasterMenus := []MasterMenu{} +// for rows.Next() { +// rows.Scan( +// &su.MasterMenu.ID, +// &su.MasterMenu.MasterMenuname, +// &su.MasterMenu.Email, +// &su.MasterMenu.CreatedAt, +// ) + +// MasterMenus = append(MasterMenus, su.MasterMenu) +// } + +// return MasterMenus, nil +// } + +// func (su *ServicesMasterMenu) GetMasterMenuById(id int) (MasterMenu, error) { + +// query := `SELECT id, MasterMenuname, email, created_at FROM MasterMenus +// WHERE id = ?` + +// stmt, err := su.MasterMenuStore.Db.Prepare(query) +// if err != nil { +// return MasterMenu{}, err +// } + +// defer stmt.Close() + +// su.MasterMenu.ID = id +// err = stmt.QueryRow( +// su.MasterMenu.ID, +// ).Scan( +// &su.MasterMenu.ID, +// &su.MasterMenu.MasterMenuname, +// &su.MasterMenu.Email, +// &su.MasterMenu.CreatedAt, +// ) +// if err != nil { +// return MasterMenu{}, err +// } + +// return su.MasterMenu, nil +// } diff --git a/views/component/breadcrumbmaster/breadcrumbmaster.templ b/views/component/breadcrumbmaster/breadcrumbmaster.templ new file mode 100644 index 0000000..e909216 --- /dev/null +++ b/views/component/breadcrumbmaster/breadcrumbmaster.templ @@ -0,0 +1,23 @@ +package breadcrumbmaster + +templ MainBreadcrumbMaster() { +
+

+ PT. Sadhana Abiyasa Sampoerna +

+ +
+} diff --git a/views/component/breadcrumbmaster/breadcrumbmaster_templ.go b/views/component/breadcrumbmaster/breadcrumbmaster_templ.go new file mode 100644 index 0000000..3e83e6d --- /dev/null +++ b/views/component/breadcrumbmaster/breadcrumbmaster_templ.go @@ -0,0 +1,35 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package breadcrumbmaster + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +func MainBreadcrumbMaster() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + 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 = templ_7745c5c3_Buffer.WriteString("

PT. Sadhana Abiyasa Sampoerna\r

") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} diff --git a/views/mastermenu/mastermenu.templ b/views/mastermenu/mastermenu.templ new file mode 100644 index 0000000..248af02 --- /dev/null +++ b/views/mastermenu/mastermenu.templ @@ -0,0 +1,882 @@ +package mastermenu + +import ( + "github.com/emarifer/go-templ-project-structure/views/layout" + "github.com/emarifer/go-templ-project-structure/views/component/breadcrumbmaster" + "github.com/emarifer/go-templ-project-structure/services" +) + +templ MenuDashboard(ParentMenuName string, ParentMenuUrl string) { + +} + +templ ListMenuNavbar(datamenu []services.MasterMenu) { + +} + +templ MainNavbar(datamenu []services.MasterMenu) { +
+ +
+ + + +
+ +
+} + +templ MainMasterMenu(datamenu []services.MasterMenu) { + + +
+ + + Logo + + + +
+ + + + + + + + + +
+ +
+ +
+ +
+ +
+ +
+ + + + + + +
+ + + @MainNavbar(datamenu) + +
+ + +
+ +
+ +
+ +
+ + +
+ +
+
+ Hi, + Sean + + S + +
+
+ +
+ +
+ +
+ + +
+
+ @breadcrumbmaster.MainBreadcrumbMaster() +
+
+ + + + +
+ +
+ +
+ + +
+ +
+

+ User Profile + 12 messages +

+ + + +
+ + +
+ +
+
+
+ +
+ +
+ + +
+ + + + + +
+ + +
+ +
+ Recent Notifications +
+ + +
+ + + + + + + + + + + + + + +28% +
+ + +
+ + + + + + + + + + + + +
+ + Would + be to people + + Due in 2 Days +
+ +50% +
+ + +
+ + + + + + + + + + + + + + -27% +
+ + +
+ + + + + + + + + + + + + + +
+ + The + best product + + Due in 2 Days +
+ +8% +
+ +
+ +
+ +
+ + +
+ + + + + + + + + + +
+ +} + +templ CssMasterMenu() { + + + + +} + +templ JsMasterMenu() { +} + +templ ShowMasterMenu(title string, cmp templ.Component, css templ.Component, js templ.Component) { + @layout.PlaygroundLayout(title, css, js) { + @cmp + } +} diff --git a/views/mastermenu/mastermenu_templ.go b/views/mastermenu/mastermenu_templ.go new file mode 100644 index 0000000..d11646b --- /dev/null +++ b/views/mastermenu/mastermenu_templ.go @@ -0,0 +1,256 @@ +// Code generated by templ - DO NOT EDIT. + +// templ: version: v0.2.663 +package mastermenu + +//lint:file-ignore SA4006 This context is only used if a nested component is present. + +import "github.com/a-h/templ" +import "context" +import "io" +import "bytes" + +import ( + "github.com/emarifer/go-templ-project-structure/services" + "github.com/emarifer/go-templ-project-structure/views/component/breadcrumbmaster" + "github.com/emarifer/go-templ-project-structure/views/layout" +) + +func MenuDashboard(datamenu []services.MasterMenu) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + 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 = templ_7745c5c3_Buffer.WriteString("
  • ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + var templ_7745c5c3_Var3 string + templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(datamenu[0].ParentMenuName) + if templ_7745c5c3_Err != nil { + return templ.Error{Err: templ_7745c5c3_Err, FileName: `views\mastermenu\mastermenu.templ`, Line: 41, Col: 62} + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var3)) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
  • ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func ListMenuNavbar(datamenu []services.MasterMenu) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var4 := templ.GetChildren(ctx) + if templ_7745c5c3_Var4 == nil { + templ_7745c5c3_Var4 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
  • Pages
  • ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func MainNavbar(datamenu []services.MasterMenu) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var5 := templ.GetChildren(ctx) + if templ_7745c5c3_Var5 == nil { + templ_7745c5c3_Var5 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
      ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + for index, d := range datamenu { + if index == 0 { + templ_7745c5c3_Err = MenuDashboard(datamenu[index]).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
    • Menu

    • ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if index+1 < len(datamenu) { + templ_7745c5c3_Err = ListMenuNavbar(datamenu[index+1]).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + } + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
    ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func MainMasterMenu(datamenu []services.MasterMenu) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var6 := templ.GetChildren(ctx) + if templ_7745c5c3_Var6 == nil { + templ_7745c5c3_Var6 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
    \"Logo\"
    \"Logo\"
    ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = MainNavbar(datamenu).Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("
    Hi, Sean S
    ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + templ_7745c5c3_Err = breadcrumbmaster.MainBreadcrumbMaster().Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("

    User Profile\r 12 messages

    ") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func CssMasterMenu() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var7 := templ.GetChildren(ctx) + if templ_7745c5c3_Var7 == nil { + templ_7745c5c3_Var7 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString("") + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func JsMasterMenu() templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var8 := templ.GetChildren(ctx) + if templ_7745c5c3_Var8 == nil { + templ_7745c5c3_Var8 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +} + +func ShowMasterMenu(title string, cmp templ.Component, css templ.Component, js templ.Component) templ.Component { + return templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + ctx = templ.InitializeContext(ctx) + templ_7745c5c3_Var9 := templ.GetChildren(ctx) + if templ_7745c5c3_Var9 == nil { + templ_7745c5c3_Var9 = templ.NopComponent + } + ctx = templ.ClearChildren(ctx) + templ_7745c5c3_Var10 := templ.ComponentFunc(func(ctx context.Context, templ_7745c5c3_W io.Writer) (templ_7745c5c3_Err error) { + templ_7745c5c3_Buffer, templ_7745c5c3_IsBuffer := templ_7745c5c3_W.(*bytes.Buffer) + if !templ_7745c5c3_IsBuffer { + templ_7745c5c3_Buffer = templ.GetBuffer() + defer templ.ReleaseBuffer(templ_7745c5c3_Buffer) + } + templ_7745c5c3_Err = cmp.Render(ctx, templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = io.Copy(templ_7745c5c3_W, templ_7745c5c3_Buffer) + } + return templ_7745c5c3_Err + }) + templ_7745c5c3_Err = layout.PlaygroundLayout(title, css, js).Render(templ.WithChildren(ctx, templ_7745c5c3_Var10), templ_7745c5c3_Buffer) + if templ_7745c5c3_Err != nil { + return templ_7745c5c3_Err + } + if !templ_7745c5c3_IsBuffer { + _, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteTo(templ_7745c5c3_W) + } + return templ_7745c5c3_Err + }) +}