summaryrefslogtreecommitdiff
path: root/app/views
diff options
context:
space:
mode:
Diffstat (limited to 'app/views')
-rw-r--r--app/views/dashboard/nav.html.tmpl22
-rw-r--r--app/views/dashboard/show.html.tmpl18
-rw-r--r--app/views/render.go6
-rw-r--r--app/views/sparkles/new.html.tmpl5
4 files changed, 32 insertions, 19 deletions
diff --git a/app/views/dashboard/nav.html.tmpl b/app/views/dashboard/nav.html.tmpl
new file mode 100644
index 0000000..59ff68b
--- /dev/null
+++ b/app/views/dashboard/nav.html.tmpl
@@ -0,0 +1,22 @@
+<nav>
+ <ul>
+ <li><strong>SparkleLab✨</strong></li>
+ </ul>
+ <ul>
+ {{ if .IsLoggedIn }}
+ <li>
+ <a href="{{ .CurrentUser.ProfileURL }}">
+ <img src="{{ .CurrentUser.Picture }}" />
+ {{ .CurrentUser.Username }}
+ </a>
+ </li>
+ <li>
+ <form action="/session/destroy" method="post">
+ <input type="submit" value="Logout">
+ </form>
+ </li>
+ {{ else }}
+ <li><a href="/session/new">Login</a></li>
+ {{ end }}
+ </ul>
+</nav>
diff --git a/app/views/dashboard/show.html.tmpl b/app/views/dashboard/show.html.tmpl
index 664777e..3a29dd3 100644
--- a/app/views/dashboard/show.html.tmpl
+++ b/app/views/dashboard/show.html.tmpl
@@ -6,28 +6,18 @@
<meta name="color-scheme" content="light dark">
<title>SparkleLab</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css">
+ <script src="https://unpkg.com/htmx.org@2.0.4"></script>
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
<script src="/application.js"></script>
</head>
<body>
- <header class="container">
- <nav>
- <ul>
- <li><strong>SparkleLab✨</strong></li>
- </ul>
- <ul>
- <li>
- <form action="/session/destroy" method="post">
- <input type="submit" value="Logout">
- </form>
- </li>
- </ul>
- </nav>
+ <header class="container" hx-get="/dashboard/nav" hx-trigger="load">
+ <progress />
</header>
<main id="app" class="container">
<form v-on:submit.prevent="submitSparkle">
- <label>/sparkle <input type="text" placeholder="@tanuki for helping me with my homework!" v-model="sparkle" /> </label>
+ <label>/sparkle <input type="text" placeholder="@tanuki for helping me with my homework!" v-model="sparkle" pattern="\s*(?<sparklee>@\w+)\s+(?<reason>.+)" required /> </label>
<button type="submit" v-bind:disabled="isDisabled">✨ Sparkle</button>
</form>
<span class="error">${ errorMessage }</span>
diff --git a/app/views/render.go b/app/views/render.go
index d06a4f7..a852e10 100644
--- a/app/views/render.go
+++ b/app/views/render.go
@@ -19,9 +19,5 @@ func Render[T any](w io.Writer, path string, data T) error {
return err
}
- if err := tmpl.Execute(w, data); err != nil {
- return err
- }
-
- return nil
+ return tmpl.Execute(w, data)
}
diff --git a/app/views/sparkles/new.html.tmpl b/app/views/sparkles/new.html.tmpl
new file mode 100644
index 0000000..077cb54
--- /dev/null
+++ b/app/views/sparkles/new.html.tmpl
@@ -0,0 +1,5 @@
+<form v-on:submit.prevent="submitSparkle">
+ <label>/sparkle <input type="text" placeholder="@tanuki for helping me with my homework!" v-model="sparkle" /> </label>
+ <button type="submit" v-bind:disabled="isDisabled">✨ Sparkle</button>
+</form>
+<span class="error">${ errorMessage }</span>