diff --git a/app.go b/app.go index c098904..ed4c330 100644 --- a/app.go +++ b/app.go @@ -12,7 +12,13 @@ import ( "github.com/gin-gonic/gin" ) +var ( + hash = "unknown" + version = "unknown" +) + func main() { + fmt.Printf("Kuma Archive %s-%s\n", version, hash) command := commando.NewCommando(os.Args[1:]) cnf := config.Get() diff --git a/internal/middleware/cors.go b/internal/middleware/cors.go new file mode 100644 index 0000000..5de17f8 --- /dev/null +++ b/internal/middleware/cors.go @@ -0,0 +1,17 @@ +package middleware + +import "github.com/gin-gonic/gin" + +func CORS(ctx *gin.Context) { + ctx.Writer.Header().Set("Access-Control-Allow-Origin", ctx.Request.Header.Get("Origin")) + ctx.Writer.Header().Set("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS") + ctx.Writer.Header().Set("Access-Control-Allow-Headers", "Content-Type, Authorization") + ctx.Writer.Header().Set("Access-Control-Allow-Credentials", "true") + + if ctx.Request.Method == "OPTIONS" { + ctx.AbortWithStatus(204) + return + } + + ctx.Next() +} diff --git a/internal/routes/mod.go b/internal/routes/mod.go index 29334b5..09be457 100644 --- a/internal/routes/mod.go +++ b/internal/routes/mod.go @@ -5,12 +5,15 @@ import ( "os" "path/filepath" + "git.wh64.net/devproje/kuma-archive/internal/middleware" "git.wh64.net/devproje/kuma-archive/internal/service" "github.com/gin-contrib/static" "github.com/gin-gonic/gin" ) func New(app *gin.Engine, apiOnly bool) { + app.Use(middleware.CORS) + api := app.Group("/api") { api.GET("/path/*path", func(ctx *gin.Context) { diff --git a/package.json b/package.json index 4d448ea..251213a 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,7 @@ "license": "MIT", "scripts": { "build:view": "tsc -b && vite build", - "build:server": "go build -o kuma-archive", + "build:server": "go build -ldflags \"-X main.version=$(jq -r .version package.json) -X main.hash=$(git rev-parse --short=6 HEAD)\" -o kuma-archive", "build": "bun run build:view && bun run build:server", "dev:view": "vite", "dev:server": "go run ./app.go daemon -d --api-only", diff --git a/src/App.scss b/src/App.scss index 5d30321..35eba0f 100644 --- a/src/App.scss +++ b/src/App.scss @@ -31,15 +31,22 @@ top: 0; left: 0; height: 100%; + display: flex; position: fixed; min-width: 300px; + flex-direction: column; transform: translateX(-100%); + justify-content: space-between; background-color: var(--nav-color); transition: transform 0.3s ease-in-out; &.open { transform: translateX(0); } + + .ka-menu-group { + width: 100%; + } .ka-menu-item { width: 100%; @@ -61,6 +68,14 @@ } } + .ka-menu-footer { + display: flex; + align-items: center; + flex-direction: row; + padding: 1rem 1.5rem; + justify-content: space-between; + } + @media (max-width: 640px) { width: 100%; } diff --git a/src/App.tsx b/src/App.tsx index dac90fa..f98a1a0 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -57,7 +57,7 @@ function Dashboard() { } function Header() { - // const [open, setOpen] = useState(false); + const [open, setOpen] = useState(false); return ( ); } -// TODO: create menu modal -// function MenuView({ open, setOpen }: { open: boolean; setOpen: (value: boolean) => void }) { -// return ( -//