266 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			266 lines
		
	
	
		
			9.9 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
// Code generated by templ - DO NOT EDIT.
 | 
						|
 | 
						|
// templ: version: v0.3.857
 | 
						|
package views
 | 
						|
 | 
						|
//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"
 | 
						|
 | 
						|
import "git.32bit.cafe/32bitcafe/guestbook/internal/models"
 | 
						|
import "strconv"
 | 
						|
import "fmt"
 | 
						|
import "strings"
 | 
						|
 | 
						|
type CommonData struct {
 | 
						|
	CurrentYear     int
 | 
						|
	Flash           string
 | 
						|
	IsAuthenticated bool
 | 
						|
	CSRFToken       string
 | 
						|
	CurrentUser     *models.User
 | 
						|
	IsHtmx          bool
 | 
						|
}
 | 
						|
 | 
						|
func shortIdToSlug(shortId uint64) string {
 | 
						|
	return strconv.FormatUint(shortId, 36)
 | 
						|
}
 | 
						|
 | 
						|
func slugToShortId(slug string) uint64 {
 | 
						|
	id, _ := strconv.ParseUint(slug, 36, 64)
 | 
						|
	return id
 | 
						|
}
 | 
						|
 | 
						|
func externalUrl(url string) string {
 | 
						|
	if !strings.HasPrefix(url, "http") {
 | 
						|
		return "http://" + url
 | 
						|
	}
 | 
						|
	return url
 | 
						|
}
 | 
						|
 | 
						|
func commonHeader() 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, "<header><h1><a href=\"/\">webweav.ing</a></h1></header>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		return nil
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
func topNav(data CommonData) 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_Var2 := templ.GetChildren(ctx)
 | 
						|
		if templ_7745c5c3_Var2 == nil {
 | 
						|
			templ_7745c5c3_Var2 = templ.NopComponent
 | 
						|
		}
 | 
						|
		ctx = templ.ClearChildren(ctx)
 | 
						|
		hxHeaders := fmt.Sprintf("{\"X-CSRF-Token\": \"%s\"}", data.CSRFToken)
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 2, "<nav><div>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		if data.IsAuthenticated {
 | 
						|
			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 3, "Welcome, ")
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
			var templ_7745c5c3_Var3 string
 | 
						|
			templ_7745c5c3_Var3, templ_7745c5c3_Err = templ.JoinStringErrs(data.CurrentUser.Username)
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/common.templ`, Line: 44, Col: 52}
 | 
						|
			}
 | 
						|
			_, 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, "</div><div>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		if data.IsAuthenticated {
 | 
						|
			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 5, "<a href=\"/guestbooks\">All Guestbooks</a> | <a href=\"/websites\">My Websites</a> |  <a href=\"/users/settings\">Settings</a> |  <a href=\"#\" hx-post=\"/users/logout\" hx-headers=\"")
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
			var templ_7745c5c3_Var4 string
 | 
						|
			templ_7745c5c3_Var4, templ_7745c5c3_Err = templ.JoinStringErrs(hxHeaders)
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/common.templ`, Line: 52, Col: 74}
 | 
						|
			}
 | 
						|
			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var4))
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 6, "\">Logout</a>")
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
		} else {
 | 
						|
			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 7, "<a href=\"/users/register\">Create an Account</a> |  <a href=\"/users/login\">Login</a>")
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 8, "</div></nav>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		return nil
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
func commonFooter() 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_Var5 := templ.GetChildren(ctx)
 | 
						|
		if templ_7745c5c3_Var5 == nil {
 | 
						|
			templ_7745c5c3_Var5 = templ.NopComponent
 | 
						|
		}
 | 
						|
		ctx = templ.ClearChildren(ctx)
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 9, "<footer><p>A <a href=\"https://32bit.cafe\">32bit.cafe</a> Project</p></footer>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		return nil
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
func base(title string, data CommonData) 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_Var6 := templ.GetChildren(ctx)
 | 
						|
		if templ_7745c5c3_Var6 == nil {
 | 
						|
			templ_7745c5c3_Var6 = templ.NopComponent
 | 
						|
		}
 | 
						|
		ctx = templ.ClearChildren(ctx)
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 10, "<!doctype html><html lang=\"en\"><head><title>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		var templ_7745c5c3_Var7 string
 | 
						|
		templ_7745c5c3_Var7, templ_7745c5c3_Err = templ.JoinStringErrs(title)
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/common.templ`, Line: 72, Col: 26}
 | 
						|
		}
 | 
						|
		_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var7))
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 11, " - webweav.ing</title><meta charset=\"UTF-8\"><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\"><link href=\"/static/css/classless.min.css\" rel=\"stylesheet\"><link href=\"/static/css/style.css\" rel=\"stylesheet\"><script src=\"/static/js/htmx.min.js\"></script></head><body>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = commonHeader().Render(ctx, templ_7745c5c3_Buffer)
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = topNav(data).Render(ctx, templ_7745c5c3_Buffer)
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 12, "<main>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		if data.Flash != "" {
 | 
						|
			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 13, "<div class=\"flash\">")
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
			var templ_7745c5c3_Var8 string
 | 
						|
			templ_7745c5c3_Var8, templ_7745c5c3_Err = templ.JoinStringErrs(data.Flash)
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ.Error{Err: templ_7745c5c3_Err, FileName: `ui/views/common.templ`, Line: 84, Col: 51}
 | 
						|
			}
 | 
						|
			_, templ_7745c5c3_Err = templ_7745c5c3_Buffer.WriteString(templ.EscapeString(templ_7745c5c3_Var8))
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
			templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 14, "</div>")
 | 
						|
			if templ_7745c5c3_Err != nil {
 | 
						|
				return templ_7745c5c3_Err
 | 
						|
			}
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = templ_7745c5c3_Var6.Render(ctx, templ_7745c5c3_Buffer)
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 15, "</main>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = commonFooter().Render(ctx, templ_7745c5c3_Buffer)
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 16, "</body></html>")
 | 
						|
		if templ_7745c5c3_Err != nil {
 | 
						|
			return templ_7745c5c3_Err
 | 
						|
		}
 | 
						|
		return nil
 | 
						|
	})
 | 
						|
}
 | 
						|
 | 
						|
var _ = templruntime.GeneratedTemplate
 |