generated from dave/wails-template
Add some sort of display
This commit is contained in:
44
app.go
44
app.go
@@ -38,41 +38,43 @@ type StringResponse struct {
|
|||||||
Error string `json:"error,omitempty"`
|
Error string `json:"error,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) GetAddons() AddonsResponse {
|
func (a *App) GetAddons() (res AddonsResponse) {
|
||||||
return AddonsResponse{
|
res.Data = addonService.Addons
|
||||||
Data: addonService.Addons,
|
return res
|
||||||
Error: "",
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (a *App) GetAddon(name string) AddonResponse {
|
func (a *App) GetAddon(name string) (res AddonResponse) {
|
||||||
addon, err := addonService.GetAddon(name)
|
addon, err := addonService.GetAddon(name)
|
||||||
return AddonResponse{
|
res.Data = addon
|
||||||
Data: addon,
|
if err != nil {
|
||||||
Error: err.Error(),
|
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)
|
version, err := addonService.GetRemoteVersion(name)
|
||||||
return StringResponse{
|
res.Data = version
|
||||||
Data: version,
|
if err != nil {
|
||||||
Error: err.Error(),
|
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)
|
version, err := addonService.GetLocalVersion(name)
|
||||||
return StringResponse{
|
res.Data = version
|
||||||
Data: version,
|
if err != nil {
|
||||||
Error: err.Error(),
|
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)
|
addon, err := addonService.UpdateAddon(name)
|
||||||
return AddonResponse{
|
res.Data = addon
|
||||||
Data: addon,
|
if err != nil {
|
||||||
Error: err.Error(),
|
res.Error = err.Error()
|
||||||
}
|
}
|
||||||
|
return res
|
||||||
}
|
}
|
||||||
|
|||||||
26
frontend/src/lib/components/AddonCard.svelte
Normal file
26
frontend/src/lib/components/AddonCard.svelte
Normal 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>
|
||||||
@@ -1,11 +1,22 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import AddonCard from "$lib/components/AddonCard.svelte";
|
||||||
import { GetAddons } from "$wails/main/App";
|
import { GetAddons } from "$wails/main/App";
|
||||||
|
import { type main } from "$wails/models";
|
||||||
|
|
||||||
const addons = GetAddons().then(addons => {
|
let addons: { [key: string]: main.Addon } = {};
|
||||||
console.log(addons);
|
GetAddons().then((res) => {
|
||||||
|
if (res.error) {
|
||||||
|
console.error(res.error);
|
||||||
|
} else {
|
||||||
|
addons = res.data;
|
||||||
|
}
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<template>
|
<template>
|
||||||
Hello, world
|
<div class="grid grid-cols-3 gap-4">
|
||||||
|
{#each Object.values(addons) as addon}
|
||||||
|
<AddonCard {addon} />
|
||||||
|
{/each}
|
||||||
|
</div>
|
||||||
</template>
|
</template>
|
||||||
4
main.go
4
main.go
@@ -75,8 +75,8 @@ func main() {
|
|||||||
|
|
||||||
err = wails.Run(&options.App{
|
err = wails.Run(&options.App{
|
||||||
Title: "wails-template",
|
Title: "wails-template",
|
||||||
Width: 1024,
|
Width: 700,
|
||||||
Height: 768,
|
Height: 700,
|
||||||
AssetServer: &assetserver.Options{
|
AssetServer: &assetserver.Options{
|
||||||
Assets: assets,
|
Assets: assets,
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user