nsarrazin HF Staff commited on
Commit
1dae9c1
·
1 Parent(s): db63053

fix: conversations optimistic updates

Browse files
Files changed (1) hide show
  1. 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, invalidate } from "$app/navigation";
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
- if ($page.params.id !== id) {
63
- await invalidate(UrlDependency.ConversationList);
64
- } else {
 
 
 
65
  await goto(`${base}/`, { invalidateAll: true });
66
  }
67
  } catch (err) {
@@ -85,7 +87,10 @@
85
  return;
86
  }
87
 
88
- await invalidate(UrlDependency.ConversationList);
 
 
 
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);