aboutsummaryrefslogtreecommitdiff
path: root/apps/web/src/contexts
diff options
context:
space:
mode:
authoryxshv <[email protected]>2024-04-14 14:29:23 +0530
committeryxshv <[email protected]>2024-04-14 14:29:23 +0530
commitfa39265142a7aa452a273e4290d58757af2786bb (patch)
tree52e2e07d2a20009d650ed0b3ebe60aaab87d81ff /apps/web/src/contexts
parentfixed notes vectorize (diff)
downloadsupermemory-fa39265142a7aa452a273e4290d58757af2786bb.tar.xz
supermemory-fa39265142a7aa452a273e4290d58757af2786bb.zip
new modals
Diffstat (limited to 'apps/web/src/contexts')
-rw-r--r--apps/web/src/contexts/MemoryContext.tsx40
1 files changed, 39 insertions, 1 deletions
diff --git a/apps/web/src/contexts/MemoryContext.tsx b/apps/web/src/contexts/MemoryContext.tsx
index e10984bb..d8a147a5 100644
--- a/apps/web/src/contexts/MemoryContext.tsx
+++ b/apps/web/src/contexts/MemoryContext.tsx
@@ -14,6 +14,7 @@ import {
deleteSpace,
deleteMemory,
fetchFreeMemories,
+ updateMemory,
} from "@/actions/db";
import { User } from "next-auth";
@@ -33,6 +34,7 @@ export const MemoryContext = React.createContext<{
search: typeof searchMemoriesAndSpaces;
deleteSpace: typeof deleteSpace;
deleteMemory: typeof deleteMemory;
+ updateMemory: typeof updateMemory;
}>({
spaces: [],
freeMemories: [],
@@ -42,6 +44,7 @@ export const MemoryContext = React.createContext<{
search: async () => [],
deleteMemory: (() => {}) as unknown as typeof deleteMemory,
deleteSpace: (() => {}) as unknown as typeof deleteSpace,
+ updateMemory: (() => {}) as unknown as typeof updateMemory,
});
export const MemoryProvider: React.FC<
@@ -98,7 +101,7 @@ export const MemoryProvider: React.FC<
await fetchContentForSpace(addedSpace.id, {
offset: 0,
limit: 3,
- })
+ }) ?? []
).map((m) => ({ ...m, space: addedSpace.id }));
setCachedMemories((prev) => [...prev, ...cachedMemories]);
@@ -132,6 +135,40 @@ export const MemoryProvider: React.FC<
};
};
+ const _updateMemory: typeof updateMemory = async (id, _data) => {
+ const data = await updateMemory(id, _data);
+
+ console.log(data)
+
+ if (data) {
+ if (!_data.spaces) {
+ console.log("non spaces", freeMemories.map(i => i.id === data.memory.id ? data.memory : i ))
+ setCachedMemories(prev => prev.map(i => i.id === data.memory.id ? { ...data.memory, space: i.space } : i ))
+ setFreeMemories(prev => prev.map(i => i.id === data.memory.id ? data.memory : i ))
+ return data
+ }
+ setCachedMemories(prev => prev.filter(i => i.id !== data.memory.id))
+ setFreeMemories(prev => prev.filter(i => i.id !== data.memory.id))
+ if (_data.spaces.length > 0) {
+ console.log('has space')
+ setCachedMemories(
+ prev => [
+ ...prev,
+ ..._data.spaces!.map(s => ({
+ ...data.memory,
+ space: s
+ }))
+ ]
+ )
+ } else {
+ console.log('does nto have space')
+ setFreeMemories(prev => [...prev, data.memory])
+ }
+ }
+
+ return data
+ }
+
return (
<MemoryContext.Provider
value={{
@@ -143,6 +180,7 @@ export const MemoryProvider: React.FC<
cachedMemories,
deleteMemory: _deleteMemory,
addMemory: _addMemory,
+ updateMemory: _updateMemory
}}
>
{children}