diff options
| author | yxshv <[email protected]> | 2024-04-14 14:29:23 +0530 |
|---|---|---|
| committer | yxshv <[email protected]> | 2024-04-14 14:29:23 +0530 |
| commit | fa39265142a7aa452a273e4290d58757af2786bb (patch) | |
| tree | 52e2e07d2a20009d650ed0b3ebe60aaab87d81ff /apps/web/src/contexts | |
| parent | fixed notes vectorize (diff) | |
| download | supermemory-fa39265142a7aa452a273e4290d58757af2786bb.tar.xz supermemory-fa39265142a7aa452a273e4290d58757af2786bb.zip | |
new modals
Diffstat (limited to 'apps/web/src/contexts')
| -rw-r--r-- | apps/web/src/contexts/MemoryContext.tsx | 40 |
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} |