Files
rikkei_simple_care/client/main.go
PhuocNTB b4c3155564
All checks were successful
Deploy on Master Change / deploy (push) Successful in 1m15s
fix ui
2026-07-13 10:04:56 +07:00

89 lines
2.0 KiB
Go

package main
import (
"context"
"embed"
"log"
"os"
"path/filepath"
"client/internal/singleinstance"
"github.com/wailsapp/wails/v2"
"github.com/wailsapp/wails/v2/pkg/menu"
"github.com/wailsapp/wails/v2/pkg/menu/keys"
"github.com/wailsapp/wails/v2/pkg/options"
"github.com/wailsapp/wails/v2/pkg/options/assetserver"
"github.com/wailsapp/wails/v2/pkg/options/windows"
)
//go:embed all:frontend/dist
var assets embed.FS
func initLogging() *os.File {
configDir, err := os.UserConfigDir()
if err != nil {
return nil
}
appDir := filepath.Join(configDir, "SimpleCare")
_ = os.MkdirAll(appDir, 0755)
logFile, err := os.OpenFile(filepath.Join(appDir, "app.log"), os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
if err == nil {
log.SetOutput(logFile)
log.Println("--- Client App Started ---")
}
return logFile
}
func main() {
if err := singleinstance.Acquire(); err != nil {
os.Exit(0)
}
lf := initLogging()
if lf != nil {
defer lf.Close()
}
// Create an instance of the app structure
app := NewApp()
appMenu := menu.NewMenu()
fileMenu := appMenu.AddSubmenu("Simple Care")
fileMenu.AddText("Về trang chính", keys.CmdOrCtrl("h"), func(_ *menu.CallbackData) {
app.ReturnToDashboard()
})
fileMenu.AddText("Làm mới trang (F5)", keys.Key("f5"), func(_ *menu.CallbackData) {
app.ReloadExamPage()
})
fileMenu.AddText("Xóa cache trình duyệt", keys.CmdOrCtrl("Delete"), func(_ *menu.CallbackData) {
app.ClearExamBrowserCache()
})
// Create application with options
err := wails.Run(&options.App{
Title: "Simple Care — Rikkei Education",
Width: 1024,
Height: 768,
Menu: appMenu,
AssetServer: &assetserver.Options{
Assets: assets,
},
BackgroundColour: &options.RGBA{R: 27, G: 38, B: 54, A: 1},
OnStartup: app.startup,
OnBeforeClose: func(ctx context.Context) (prevent bool) {
return app.HandleBeforeClose()
},
Windows: &windows.Options{
WebviewUserDataPath: app.webviewDataPath,
},
Bind: []interface{}{
app,
},
})
if err != nil {
println("Error:", err.Error())
}
}