@futo-org/backups-orchestrator-ui 0.39.0 → 0.40.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -57,6 +57,7 @@
57
57
  <Suspense {query}>
58
58
  {#each sortedRepositories ?? [] as repository (repository.id)}
59
59
  {@const accessible = repository.snapshots !== undefined}
60
+ {@const snapshots = repository.snapshots ?? []}
60
61
 
61
62
  <StackListOption
62
63
  title={repository.name}
@@ -65,10 +66,8 @@
65
66
  >
66
67
  {#if !accessible}
67
68
  Can't access, is your recovery key correct?
68
- {:else if repository.snapshots.length}
69
- Last backup: {new Date(
70
- repository.snapshots[0].time,
71
- ).toLocaleDateString()}
69
+ {:else if snapshots.length}
70
+ Last backup: {new Date(snapshots[0].time).toLocaleDateString()}
72
71
  {:else}
73
72
  No backups yet
74
73
  {/if}
@@ -28,6 +28,8 @@
28
28
  const { onBack, onFinish, repository }: Props = $props();
29
29
 
30
30
  let selectedSnapshot: SnapshotDto | undefined = $state();
31
+
32
+ const snapshots = $derived(repository.snapshots ?? []);
31
33
  </script>
32
34
 
33
35
  {#if selectedSnapshot}
@@ -45,7 +47,7 @@
45
47
  >
46
48
  <ModalBody>
47
49
  <StackList>
48
- {#each repository.snapshots.toSorted((a, b) => new Date(b.time).getTime() - new Date(a.time).getTime()) as snapshot (snapshot.id)}
50
+ {#each snapshots.toSorted((a, b) => new Date(b.time).getTime() - new Date(a.time).getTime()) as snapshot (snapshot.id)}
49
51
  <HStack gap={2} class="px-4 py-3">
50
52
  <Stack gap={0} class="grow min-w-0">
51
53
  <HStack
@@ -67,7 +69,7 @@
67
69
  </Button>
68
70
  </HStack>
69
71
  {/each}
70
- {#if repository.snapshots.length === 0}
72
+ {#if snapshots.length === 0}
71
73
  <Text class="text-center py-6" color="muted">
72
74
  No snapshots in this repository.
73
75
  </Text>
@@ -136,7 +136,7 @@ export type RepositoryCreateRequestDto = {
136
136
  };
137
137
  export type TaskStatus = "incomplete" | "complete" | "warn" | "failed";
138
138
  export type RepositoryMetricsDto = {
139
- lastBackup?: string;
139
+ lastBackup?: string | null;
140
140
  lastBackupStatus?: TaskStatus;
141
141
  lastBackupDuration?: number;
142
142
  sizeBytes: number;
@@ -144,7 +144,7 @@ export type RepositoryMetricsDto = {
144
144
  export type RepositoryMeterDto = {
145
145
  sizeBytes: number;
146
146
  objectCount: number;
147
- lastUpdated?: string;
147
+ lastUpdated?: string | null;
148
148
  };
149
149
  export type RepositoryBackendDto = {
150
150
  id: string;
@@ -201,7 +201,7 @@ export type InspectedLocalRepositoryDto = {
201
201
  meter?: RepositoryMeterDto;
202
202
  backends?: RepositoryBackendsDto;
203
203
  configuration?: RepositoryConfigurationDto;
204
- snapshots: SnapshotDto[];
204
+ snapshots?: SnapshotDto[];
205
205
  };
206
206
  export type RepositoryInspectResponseDto = {
207
207
  repositories: InspectedLocalRepositoryDto[];
@@ -230,7 +230,7 @@ export type RunDto = {
230
230
  id: string;
231
231
  repositoryId: string;
232
232
  start: string;
233
- end: string;
233
+ end?: string;
234
234
  logFilePath: string;
235
235
  status: RunStatus;
236
236
  "type": RunType;
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "@futo-org/backups-orchestrator-ui",
3
3
  "repository": "https://github.com/immich-app/yucca",
4
4
  "description": "Backups orchestrator (UI library)",
5
- "version": "0.39.0",
5
+ "version": "0.40.0",
6
6
  "license": "Source First License 1.1",
7
7
  "files": [
8
8
  "dist",
@@ -64,7 +64,7 @@
64
64
  "lodash.debounce": "^4.0.8",
65
65
  "luxon": "^3.7.2",
66
66
  "socket.io-client": "^4.8.3",
67
- "@futo-org/backups-api-client": "^0.39.0"
67
+ "@futo-org/backups-api-client": "^0.40.0"
68
68
  },
69
69
  "scripts": {
70
70
  "dev": "vite dev --port 5174",