Add some sort of display

This commit is contained in:
2025-01-11 21:48:37 +01:00
parent a45e3a5d87
commit c975aee3cb
5 changed files with 66 additions and 27 deletions

44
app.go
View File

@@ -38,41 +38,43 @@ type StringResponse struct {
Error string `json:"error,omitempty"`
}
func (a *App) GetAddons() AddonsResponse {
return AddonsResponse{
Data: addonService.Addons,
Error: "",
}
func (a *App) GetAddons() (res AddonsResponse) {
res.Data = addonService.Addons
return res
}
func (a *App) GetAddon(name string) AddonResponse {
func (a *App) GetAddon(name string) (res AddonResponse) {
addon, err := addonService.GetAddon(name)
return AddonResponse{
Data: addon,
Error: err.Error(),
res.Data = addon
if err != nil {
res.Error = err.Error()
}
return res
}
func (a *App) GetAddonRemoteVersion(name string) StringResponse {
func (a *App) GetAddonRemoteVersion(name string) (res StringResponse) {
version, err := addonService.GetRemoteVersion(name)
return StringResponse{
Data: version,
Error: err.Error(),
res.Data = version
if err != nil {
res.Error = err.Error()
}
return res
}
func (a *App) GetAddonLocalVersion(name string) StringResponse {
func (a *App) GetAddonLocalVersion(name string) (res StringResponse) {
version, err := addonService.GetLocalVersion(name)
return StringResponse{
Data: version,
Error: err.Error(),
res.Data = version
if err != nil {
res.Error = err.Error()
}
return res
}
func (a *App) UpdateAddon(name string) AddonResponse {
func (a *App) UpdateAddon(name string) (res AddonResponse) {
addon, err := addonService.UpdateAddon(name)
return AddonResponse{
Data: addon,
Error: err.Error(),
res.Data = addon
if err != nil {
res.Error = err.Error()
}
return res
}

View File

@@ -0,0 +1,26 @@
<script lang="ts">
import { GetAddonLocalVersion, GetAddonRemoteVersion } from "$wails/main/App";
import { type main } from "$wails/models";
export let addon: main.Addon;
let localVersion = "0.0.0";
let remoteVersion = "0.0.0";
let upToDate = true;
GetAddonLocalVersion(addon.name).then((res) => {
localVersion = res.data;
});
GetAddonRemoteVersion(addon.name).then((res) => {
remoteVersion = res.data;
});
$: upToDate = localVersion === remoteVersion;
</script>
<div class="bg-gray-900 text-white p-4 m-3 mx-2 rounded-lg">
<h2 class="text-2xl font-bold">{addon.name}</h2>
<p class="text-gray-300">Local Version: {localVersion}</p>
<p class="text-gray-300">Remote Version: {remoteVersion}</p>
{#if upToDate}
<button class="bg-green-500 disabled text-white p-2 my-2 cursor-default rounded-lg">Up to date</button>
{:else}
<button class="bg-blue-500 text-white p-2 my-2 rounded-lg">Update</button>
{/if}
</div>

View File

@@ -1,11 +1,22 @@
<script lang="ts">
import AddonCard from "$lib/components/AddonCard.svelte";
import { GetAddons } from "$wails/main/App";
import { type main } from "$wails/models";
const addons = GetAddons().then(addons => {
console.log(addons);
let addons: { [key: string]: main.Addon } = {};
GetAddons().then((res) => {
if (res.error) {
console.error(res.error);
} else {
addons = res.data;
}
});
</script>
<template>
Hello, world
</template>
<div class="grid grid-cols-3 gap-4">
{#each Object.values(addons) as addon}
<AddonCard {addon} />
{/each}
</div>
</template>

View File

@@ -75,8 +75,8 @@ func main() {
err = wails.Run(&options.App{
Title: "wails-template",
Width: 1024,
Height: 768,
Width: 700,
Height: 700,
AssetServer: &assetserver.Options{
Assets: assets,
},