diff --git a/.gitignore b/.gitignore index 4cfac023511141804267bbbfa49d89e8b2442369..811fe806880cef8cc196c8c646d879f25ec82504 100644 --- a/.gitignore +++ b/.gitignore @@ -46,4 +46,6 @@ __sapper__/ # Frontend specific frontend/dist -*.bak \ No newline at end of file +*.bak +*_templ.go +*.out.css \ No newline at end of file diff --git a/Taskfile.yml b/Taskfile.yml index 3003ef94300fb5a62a33c407b7037afa2a8b422e..324e543069f580916221770d54a2175d42a1c716 100644 --- a/Taskfile.yml +++ b/Taskfile.yml @@ -380,6 +380,7 @@ tasks: vars: BUILD_FLAGS: "{{.BUILD_FLAGS}}" cmds: + - templ generate - bun run build generate:bindings: @@ -434,6 +435,7 @@ tasks: dev: summary: Runs the application in development mode cmds: + - task: build:frontend - wails3 dev -config ./build/devmode.config.yaml -port {{.VITE_PORT}} dev:reload: diff --git a/app.go b/app.go index 7c40c982a3c4aa8716dcbfb3e232a8577be070f8..f4c485fdab5fc4ab1f35b661af301180289e9a81 100644 --- a/app.go +++ b/app.go @@ -1,18 +1,18 @@ package main import ( - "net/http" - + "github.com/a-h/templ" "github.com/go-chi/chi/v5" "github.com/go-chi/chi/v5/middleware" ) -func NewChiRouter() { +func NewChiRouter() *chi.Mux { r := chi.NewRouter() + r.Use(middleware.Logger) r.Use(middleware.Recoverer) - r.Get("/", func(w http.ResponseWriter, r *http.Request) { - w.Write([]byte("hello world")) - }) + r.Get("/test", templ.Handler(Hello()).ServeHTTP) + + return r } diff --git a/frontend/index.html b/frontend/index.html index 826aaeb74402c9793685cb53a23c49cf425cd11b..503128f9de92570170d518c39f77c2c1b097ba5d 100644 --- a/frontend/index.html +++ b/frontend/index.html @@ -1,14 +1,18 @@ -<!DOCTYPE html> -<html lang="en"> +<html + class="font-[Inter,_Avenir,_Helvetica,_Arial,_sans-serif] text-[16px] leading-[24px] font-normal [color-scheme:light_dark] text-[rgba(255,_255,_255,_0.87)] bg-[#242424] antialiased" + lang="en"> <head> - <meta charset="UTF-8" /> - <meta name="viewport" content="width=device-width, initial-scale=1.0" /> - <title>AstroProject</title> + <meta charset="UTF-8" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> + <script src="https://unpkg.com/htmx.org"></script> + <link rel="stylesheet" href="/index.css" /> + <title>Wails</title> </head> -<body> - <div id="app"></div> +<body class="m-0 flex place-items-center min-w-[320px] min-h-screen"> + <!-- On load, get /test and replace the content of the div with the response --> + <div id="me" hx-get="/test" hx-trigger="load" hx-target="#me" hx-swap="outerHTML"></div> </body> </html> \ No newline at end of file diff --git a/frontend/src/Util.ts b/frontend/src/Util.ts deleted file mode 100644 index 1b01e9799c69d4cf9c95c142ea9d16f8f782ff42..0000000000000000000000000000000000000000 --- a/frontend/src/Util.ts +++ /dev/null @@ -1,32 +0,0 @@ -import type { Nation } from "../bindings/changeme/astro/services/models"; - -export function randomColor(brightness: number): string { - function randomChannel(brightness: number): string { - var r = 255-brightness; - var n = 0|((Math.random() * r) + brightness); - var s = n.toString(16); - return (s.length==1) ? '0'+s : s; - } - return '#' + randomChannel(brightness) + randomChannel(brightness) + randomChannel(brightness); -} - -export const rightBrighness = 240; - -export function getNationFlag(nation: Nation | null): string { - - if (!nation) { - return "https://flagsapi.com/FR/flat/64.png"; - } - - console.log(`"${nation.nation_code}"`); - - return `https://flagsapi.com/${nation.nation_code}/flat/64.png` -} - -export function getNationFlatAlt(nation: Nation | null): string { - if (!nation) { - return "FR"; - } - - return nation.nation_code; -} \ No newline at end of file diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts deleted file mode 100644 index 4078e7476a2eaf5705d327b5c9d459c234c01652..0000000000000000000000000000000000000000 --- a/frontend/src/vite-env.d.ts +++ /dev/null @@ -1,2 +0,0 @@ -/// <reference types="svelte" /> -/// <reference types="vite/client" /> diff --git a/frontend/tailwind.config.js b/frontend/tailwind.config.js index 831b210d3008bd83fe869bd595224adde21511fe..5992aa9cf621b1a39377aaae00f88867a3f19d9d 100644 --- a/frontend/tailwind.config.js +++ b/frontend/tailwind.config.js @@ -1,6 +1,6 @@ /** @type {import('tailwindcss').Config} */ module.exports = { - content: ["./index.html"], + content: [ "./index.html"], theme: { extend: {}, }, diff --git a/go.mod b/go.mod index a12230a62fd98dc040456a57b7c0f09ef080fa16..5285e3c590ac2b0facdfc29dabeb70b8e28357cb 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module changeme go 1.22.4 require ( + github.com/a-h/templ v0.2.747 github.com/go-chi/chi/v5 v5.1.0 github.com/go-faker/faker/v4 v4.4.2 github.com/wailsapp/wails/v3 v3.0.0-alpha.0 diff --git a/go.sum b/go.sum index a3ab6b981dc1c4ff0554de365a4e26c5d95464a6..e0d83362ed4d9d7d1ec582b83aee131dd5c383d5 100644 --- a/go.sum +++ b/go.sum @@ -5,6 +5,8 @@ github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migc github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371 h1:kkhsdkhsCvIsutKu5zLMgWtgh9YxGCNAw8Ad8hjwfYg= github.com/ProtonMail/go-crypto v0.0.0-20230828082145-3c4c8a2d2371/go.mod h1:EjAoLdwvbIOoOQr3ihjnSoLZRtE8azugULFRteWMNc0= +github.com/a-h/templ v0.2.747 h1:D0dQ2lxC3W7Dxl6fxQ/1zZHBQslSkTSvl5FxP/CfdKg= +github.com/a-h/templ v0.2.747/go.mod h1:69ObQIbrcuwPCU32ohNaWce3Cb7qM5GMiqN1K+2yop4= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be h1:9AeTilPcZAjCFIImctFaOjnTIavg87rW78vTPkQqLI8= github.com/anmitsu/go-shlex v0.0.0-20200514113438-38f4b401e2be/go.mod h1:ySMOLuWl6zY27l47sB3qLNK6tF2fkHG55UZxx8oIVo4= github.com/armon/go-socks5 v0.0.0-20160902184237-e75332964ef5 h1:0CwZNZbxp69SHPdPJAN/hZIm0C4OItdklCFmMRWYpio= diff --git a/hello.templ b/hello.templ new file mode 100644 index 0000000000000000000000000000000000000000..5962d4e11def7d5a216b7bf66ee7a75694419ecd --- /dev/null +++ b/hello.templ @@ -0,0 +1,5 @@ +package main + +templ Hello() { + <div>Hello</div> +} diff --git a/main.go b/main.go index b13218a3f6651f0e96496d998b7f1567b898663b..1b567575adf730922bd08a7d10879672be0d865b 100644 --- a/main.go +++ b/main.go @@ -3,6 +3,7 @@ package main import ( "embed" "log" + "net/http" "github.com/wailsapp/wails/v3/pkg/application" @@ -13,7 +14,7 @@ var assets embed.FS func main() { - NewChiRouter() + r := NewChiRouter() session := services.Session{} @@ -29,6 +30,10 @@ func main() { }, Assets: application.AssetOptions{ Handler: application.AssetFileServerFS(assets), + Middleware: func(next http.Handler) http.Handler { + r.NotFound(next.ServeHTTP) + return r + }, }, Mac: application.MacOptions{ ApplicationShouldTerminateAfterLastWindowClosed: true,