mirror of
https://github.com/solidtime-io/solidtime-desktop.git
synced 2026-05-07 20:32:27 +00:00
fix optimistic updates issue on time entry update; update x-win to fix memory leak
This commit is contained in:
Generated
+38
-38
@@ -1,18 +1,18 @@
|
||||
{
|
||||
"name": "solidtime",
|
||||
"version": "0.0.44-beta",
|
||||
"version": "0.0.45-beta",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "solidtime",
|
||||
"version": "0.0.44-beta",
|
||||
"version": "0.0.45-beta",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@electron-toolkit/preload": "^3.0.2",
|
||||
"@electron-toolkit/utils": "^4.0.0",
|
||||
"@libsql/client": "^0.15.15",
|
||||
"@miniben90/x-win": "^3.1.3",
|
||||
"@miniben90/x-win": "^3.2.0",
|
||||
"@sentry/electron": "^5.7.0",
|
||||
"@sentry/vite-plugin": "^2.22.8",
|
||||
"@solidtime/api": "^0.0.6",
|
||||
@@ -2500,28 +2500,28 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win/-/x-win-3.1.3.tgz",
|
||||
"integrity": "sha512-p/DYpuM0VRoocGsehl7i59LEf/mIJFgXPoQGg0GCKfGn7aPIWOiUNkodzrsig3vZ9AxRIkxPw2nnCVnM5iwotw==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win/-/x-win-3.2.0.tgz",
|
||||
"integrity": "sha512-RNmCzJsj4dZ+izOkK6sIdtjdSAx1HSHiU1UG3h5go2rYz8qXgRtOrHvgDsGblLljWNxhB/eiyc6XumyQ5u33vw==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">= 14"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@miniben90/x-win-darwin-arm64": "3.1.3",
|
||||
"@miniben90/x-win-darwin-universal": "3.1.3",
|
||||
"@miniben90/x-win-darwin-x64": "3.1.3",
|
||||
"@miniben90/x-win-linux-x64-gnu": "3.1.3",
|
||||
"@miniben90/x-win-linux-x64-musl": "3.1.3",
|
||||
"@miniben90/x-win-win32-arm64-msvc": "3.1.3",
|
||||
"@miniben90/x-win-win32-ia32-msvc": "3.1.3",
|
||||
"@miniben90/x-win-win32-x64-msvc": "3.1.3"
|
||||
"@miniben90/x-win-darwin-arm64": "3.2.0",
|
||||
"@miniben90/x-win-darwin-universal": "3.2.0",
|
||||
"@miniben90/x-win-darwin-x64": "3.2.0",
|
||||
"@miniben90/x-win-linux-x64-gnu": "3.2.0",
|
||||
"@miniben90/x-win-linux-x64-musl": "3.2.0",
|
||||
"@miniben90/x-win-win32-arm64-msvc": "3.2.0",
|
||||
"@miniben90/x-win-win32-ia32-msvc": "3.2.0",
|
||||
"@miniben90/x-win-win32-x64-msvc": "3.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-darwin-arm64": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-darwin-arm64/-/x-win-darwin-arm64-3.1.3.tgz",
|
||||
"integrity": "sha512-n4+dkB/JN4eQs1xPd7a8OZABEtsMKYJ4Yu1JsC2qNRslBLmG17gRidBiNNdI2rDc+KyPdcCPWSHeDEYvVh4sgg==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-darwin-arm64/-/x-win-darwin-arm64-3.2.0.tgz",
|
||||
"integrity": "sha512-BUe30HOMowiwIrdym01VYqD1ptP9l4mrk6DfIljjwcm6jom/dQi4wWNkPlzC4+JdUlL24EGEL+R3ItWjdvVDbQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2535,9 +2535,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-darwin-universal": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-darwin-universal/-/x-win-darwin-universal-3.1.3.tgz",
|
||||
"integrity": "sha512-T1x4CZheS/oaS52oEOXPst5lIzQHnUbsBOUrqVB7qyaYspdXEewQ8kvG8/mPbKRVmBaa50CjHbsEnz3D57OPuw==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-darwin-universal/-/x-win-darwin-universal-3.2.0.tgz",
|
||||
"integrity": "sha512-E3zKtAmijeXee56qhbIVJDKeuqiR1eq8Y6z02M1vU6CSny/EBqqn1wTHPzjmEoCMHYJIsjl+xY/HTBujiv/ZMA==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
@@ -2548,9 +2548,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-darwin-x64": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-darwin-x64/-/x-win-darwin-x64-3.1.3.tgz",
|
||||
"integrity": "sha512-og3F7KAY+6AHTWcXxH+S9dnFLYlbE8xmYiwov+pUrIO+o5JX1WQ4tr9TDgEkQr0OHqYUb+GVTcGHKwQnZFT4yQ==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-darwin-x64/-/x-win-darwin-x64-3.2.0.tgz",
|
||||
"integrity": "sha512-guPkn56pz/ZWd18RErsyyu1WfP1YcomeFxJvN7F8UrI00A6Gw1UoSUn/SCHWteklwVMkFejGbCrc6DvJCWnrRw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2564,9 +2564,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-linux-x64-gnu": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-linux-x64-gnu/-/x-win-linux-x64-gnu-3.1.3.tgz",
|
||||
"integrity": "sha512-3MxiiKMH/uFtMrZnOvbskvJZ0OcybnNyadA689fdUCcdd9m5volzRMV15FjSpUCvDQrSyPBCmy/PW5armVQ+zA==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-linux-x64-gnu/-/x-win-linux-x64-gnu-3.2.0.tgz",
|
||||
"integrity": "sha512-Gp45fT9sj1OSFRQff5AMKPZyv1ZApbtntARf21fCdjD5T7sHLby7TNNjkzp96EK2dkPY7cYAZk8ySv6lY6vtHw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2580,9 +2580,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-linux-x64-musl": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-linux-x64-musl/-/x-win-linux-x64-musl-3.1.3.tgz",
|
||||
"integrity": "sha512-GX8Kiglwi3Akxku2Isvjmp1VuWczUYJS7TqGEyLeoxgBlmX/md5AeKUMrBnGB+FhLPYWkte0WVkdJF6yikJIlw==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-linux-x64-musl/-/x-win-linux-x64-musl-3.2.0.tgz",
|
||||
"integrity": "sha512-Xuj+4nOXdTPQQc4Bo1GJ+SM08jNfoBmv/c3sIYuxcH8U7Jz8WMxLufpBQskK/TDrwBzgem6d/zZylqp2D5AGSg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
@@ -2596,9 +2596,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-win32-arm64-msvc": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-win32-arm64-msvc/-/x-win-win32-arm64-msvc-3.1.3.tgz",
|
||||
"integrity": "sha512-ZyjbUmFyROnw1uFiFYPHhOKrngp1MSGpKSlWB3x7pVFYC0s4bN4OjjEa363xOMJvRlpFBbA6wLG3ngjXWZyYOg==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-win32-arm64-msvc/-/x-win-win32-arm64-msvc-3.2.0.tgz",
|
||||
"integrity": "sha512-G1SqQvnTPW87O4rk5fGRvvZESa42e4RLbXRN/d/XGBhuyjEJKRNk8YR4UqWXLvJiwkNg1kxisCtWc2qr3b09Fg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
@@ -2612,9 +2612,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-win32-ia32-msvc": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-win32-ia32-msvc/-/x-win-win32-ia32-msvc-3.1.3.tgz",
|
||||
"integrity": "sha512-3JsV1iDNWnCV12EuQlPDqDkfVldm1Jv7NHijSo4/BV0BMLjU9kinbkFzCDWV3E7KVckwxFfLOyM42QHZ2CTA6w==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-win32-ia32-msvc/-/x-win-win32-ia32-msvc-3.2.0.tgz",
|
||||
"integrity": "sha512-DmRcTqsCZDzUk6l7SWmt8YyeipoZvHOo0l42tDJn5A35PwB9T8RNNyIaw4iJ8H1H2ynf6+K7dWboOo07s9wTBQ==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
@@ -2628,9 +2628,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@miniben90/x-win-win32-x64-msvc": {
|
||||
"version": "3.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-win32-x64-msvc/-/x-win-win32-x64-msvc-3.1.3.tgz",
|
||||
"integrity": "sha512-ki0nFm0PadjbsuyC/wbFbVREoU54ZNd91/s+WuqDP86j6AD7joJS+iK2T3lBmEfwYvhfQMD2b/40Ti7X0/6uyw==",
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@miniben90/x-win-win32-x64-msvc/-/x-win-win32-x64-msvc-3.2.0.tgz",
|
||||
"integrity": "sha512-4ictKu0u2wOQMFqH6qFs8zNkxT+fxlLOrpIO9dZ3+AaouqziqFEdFrMyGFNNanwaM5eiSnN3e8mOrKm9W+roBA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "solidtime",
|
||||
"version": "0.0.44-beta",
|
||||
"version": "0.0.45-beta",
|
||||
"description": "Desktop App for solidtime - the modern open-source time tracker",
|
||||
"main": "./out/main/index.js",
|
||||
"author": "solidtime.io",
|
||||
@@ -33,7 +33,7 @@
|
||||
"@electron-toolkit/preload": "^3.0.2",
|
||||
"@electron-toolkit/utils": "^4.0.0",
|
||||
"@libsql/client": "^0.15.15",
|
||||
"@miniben90/x-win": "^3.1.3",
|
||||
"@miniben90/x-win": "^3.2.0",
|
||||
"@sentry/electron": "^5.7.0",
|
||||
"@sentry/vite-plugin": "^2.22.8",
|
||||
"@solidtime/api": "^0.0.6",
|
||||
|
||||
@@ -6,6 +6,7 @@ import type {
|
||||
UpdateMultipleTimeEntriesChangeset,
|
||||
} from '@solidtime/api'
|
||||
import { useMutation, useQueryClient } from '@tanstack/vue-query'
|
||||
import type { InfiniteData } from '@tanstack/vue-query'
|
||||
import { useMyMemberships } from './myMemberships.ts'
|
||||
|
||||
export const emptyTimeEntry = {
|
||||
@@ -157,14 +158,18 @@ export function useTimeEntryUpdateMutation() {
|
||||
await queryClient.cancelQueries({ queryKey: ['timeEntries', currentOrganizationId] })
|
||||
queryClient.setQueryData(
|
||||
['timeEntries', currentOrganizationId],
|
||||
(old: TimeEntryResponse) => {
|
||||
const optimisticTimeEntries = old.data.map((entry) => {
|
||||
if (entry.id === variables.id) {
|
||||
return { ...variables }
|
||||
}
|
||||
return entry
|
||||
(old: InfiniteData<TimeEntryResponse> | undefined) => {
|
||||
if (!old) return old
|
||||
const updatedPages = old.pages.map((page: TimeEntryResponse) => {
|
||||
const optimisticTimeEntries = page.data.map((entry) => {
|
||||
if (entry.id === variables.id) {
|
||||
return { ...variables }
|
||||
}
|
||||
return entry
|
||||
})
|
||||
return { ...page, data: optimisticTimeEntries }
|
||||
})
|
||||
return { data: optimisticTimeEntries }
|
||||
return { ...old, pages: updatedPages }
|
||||
}
|
||||
)
|
||||
return { variables }
|
||||
@@ -237,14 +242,18 @@ export function useTimeEntriesUpdateMutation() {
|
||||
await queryClient.cancelQueries({ queryKey: ['timeEntries', currentOrganizationId] })
|
||||
queryClient.setQueryData(
|
||||
['timeEntries', currentOrganizationId],
|
||||
(old: TimeEntryResponse) => {
|
||||
const optimisticTimeEntries = old.data.map((entry) => {
|
||||
if (ids.includes(entry.id)) {
|
||||
return { ...entry, ...changes }
|
||||
}
|
||||
return entry
|
||||
(old: InfiniteData<TimeEntryResponse> | undefined) => {
|
||||
if (!old) return old
|
||||
const updatedPages = old.pages.map((page: TimeEntryResponse) => {
|
||||
const optimisticTimeEntries = page.data.map((entry) => {
|
||||
if (ids.includes(entry.id)) {
|
||||
return { ...entry, ...changes }
|
||||
}
|
||||
return entry
|
||||
})
|
||||
return { ...page, data: optimisticTimeEntries }
|
||||
})
|
||||
return { data: optimisticTimeEntries }
|
||||
return { ...old, pages: updatedPages }
|
||||
}
|
||||
)
|
||||
return { ids, changes }
|
||||
|
||||
Reference in New Issue
Block a user