diff --git a/frontend/src/App.css b/frontend/src/App.css index c89aaf7..7d970f8 100644 --- a/frontend/src/App.css +++ b/frontend/src/App.css @@ -5,6 +5,7 @@ .ant-layout-header { height: 40px; line-height: 40px; + --wails-draggable: drag } .nav-item { diff --git a/main.go b/main.go index 27dd852..396b827 100644 --- a/main.go +++ b/main.go @@ -2,8 +2,13 @@ package main import ( "embed" + "fmt" "github.com/Gurkengewuerz/modupdater/backend" + "github.com/wailsapp/wails/v2/pkg/options/assetserver" "log" + "net/http" + "os" + "strings" "github.com/wailsapp/wails/v2/pkg/options/mac" @@ -19,6 +24,27 @@ var assets embed.FS //go:embed build/appicon.png var icon []byte +type FileLoader struct { + http.Handler +} + +func NewFileLoader() *FileLoader { + return &FileLoader{} +} + +func (h *FileLoader) ServeHTTP(res http.ResponseWriter, req *http.Request) { + var err error + requestedFilename := strings.TrimPrefix(req.URL.Path, "/") + println("Requesting file:", requestedFilename) + fileData, err := os.ReadFile(requestedFilename) + if err != nil { + res.WriteHeader(http.StatusBadRequest) + res.Write([]byte(fmt.Sprintf("Could not load file %s", requestedFilename))) + } + + res.Write(fileData) +} + func main() { // Create an instance of the app structure app := backend.NewApp() @@ -38,11 +64,14 @@ func main() { StartHidden: false, HideWindowOnClose: false, BackgroundColour: &options.RGBA{R: 255, G: 255, B: 255, A: 255}, - Assets: assets, - LogLevel: logger.DEBUG, - OnStartup: app.Startup, - OnDomReady: app.DOMReady, - OnShutdown: app.Shutdown, + AssetServer: &assetserver.Options{ + Assets: assets, + Handler: NewFileLoader(), + }, + LogLevel: logger.DEBUG, + OnStartup: app.Startup, + OnDomReady: app.DOMReady, + OnShutdown: app.Shutdown, Bind: []interface{}{ app, },