Spaces:
Sleeping
Sleeping
fix: conversations optimistic updates
Browse files- src/routes/+layout.svelte +11 -6
src/routes/+layout.svelte
CHANGED
@@ -2,7 +2,7 @@
|
|
2 |
import "../styles/main.css";
|
3 |
|
4 |
import { onDestroy, onMount } from "svelte";
|
5 |
-
import { goto
|
6 |
import { base } from "$app/paths";
|
7 |
import { page } from "$app/stores";
|
8 |
|
@@ -12,7 +12,6 @@
|
|
12 |
import { createSettingsStore } from "$lib/stores/settings";
|
13 |
|
14 |
import { shareConversation } from "$lib/shareConversation";
|
15 |
-
import { UrlDependency } from "$lib/types/UrlDependency";
|
16 |
|
17 |
import Toast from "$lib/components/Toast.svelte";
|
18 |
import NavMenu from "$lib/components/NavMenu.svelte";
|
@@ -59,9 +58,12 @@
|
|
59 |
return;
|
60 |
}
|
61 |
|
62 |
-
|
63 |
-
|
64 |
-
|
|
|
|
|
|
|
65 |
await goto(`${base}/`, { invalidateAll: true });
|
66 |
}
|
67 |
} catch (err) {
|
@@ -85,7 +87,10 @@
|
|
85 |
return;
|
86 |
}
|
87 |
|
88 |
-
|
|
|
|
|
|
|
89 |
} catch (err) {
|
90 |
console.error(err);
|
91 |
$error = String(err);
|
|
|
2 |
import "../styles/main.css";
|
3 |
|
4 |
import { onDestroy, onMount } from "svelte";
|
5 |
+
import { goto } from "$app/navigation";
|
6 |
import { base } from "$app/paths";
|
7 |
import { page } from "$app/stores";
|
8 |
|
|
|
12 |
import { createSettingsStore } from "$lib/stores/settings";
|
13 |
|
14 |
import { shareConversation } from "$lib/shareConversation";
|
|
|
15 |
|
16 |
import Toast from "$lib/components/Toast.svelte";
|
17 |
import NavMenu from "$lib/components/NavMenu.svelte";
|
|
|
58 |
return;
|
59 |
}
|
60 |
|
61 |
+
data.conversations.then((convs) => {
|
62 |
+
const newConvs = convs.filter((conv) => conv.id !== id);
|
63 |
+
data.conversations = Promise.resolve(newConvs);
|
64 |
+
});
|
65 |
+
|
66 |
+
if ($page.params.id === id) {
|
67 |
await goto(`${base}/`, { invalidateAll: true });
|
68 |
}
|
69 |
} catch (err) {
|
|
|
87 |
return;
|
88 |
}
|
89 |
|
90 |
+
data.conversations.then((convs) => {
|
91 |
+
const newConvs = convs.map((conv) => (conv.id === id ? { ...conv, title } : conv));
|
92 |
+
data.conversations = Promise.resolve(newConvs);
|
93 |
+
});
|
94 |
} catch (err) {
|
95 |
console.error(err);
|
96 |
$error = String(err);
|