diff options
| author | yxshv <[email protected]> | 2024-04-13 20:04:20 +0530 |
|---|---|---|
| committer | yxshv <[email protected]> | 2024-04-13 20:04:20 +0530 |
| commit | 0d4e91068f8b16ddb956e9c302ef62b9e38b1788 (patch) | |
| tree | d078ea44ccd8b1b5c6a93d25c7d7ca8468455a1b /apps/web/src/contexts | |
| parent | spaces dialog (diff) | |
| download | supermemory-0d4e91068f8b16ddb956e9c302ef62b9e38b1788.tar.xz supermemory-0d4e91068f8b16ddb956e9c302ef62b9e38b1788.zip | |
space add
Diffstat (limited to 'apps/web/src/contexts')
| -rw-r--r-- | apps/web/src/contexts/MemoryContext.tsx | 29 |
1 files changed, 20 insertions, 9 deletions
diff --git a/apps/web/src/contexts/MemoryContext.tsx b/apps/web/src/contexts/MemoryContext.tsx index f2f09e80..08d166a6 100644 --- a/apps/web/src/contexts/MemoryContext.tsx +++ b/apps/web/src/contexts/MemoryContext.tsx @@ -1,8 +1,7 @@ "use client"; import React, { useCallback } from "react"; -import { CollectedSpaces } from "../../types/memory"; import { ChachedSpaceContent, StoredContent, storedContent, StoredSpace } from "@/server/db/schema"; -import { addMemory, searchMemoriesAndSpaces } from "@/actions/db"; +import { addMemory, searchMemoriesAndSpaces, addSpace, fetchContentForSpace } from "@/actions/db"; import { User } from "next-auth"; export type SearchResult = { @@ -16,7 +15,7 @@ export const MemoryContext = React.createContext<{ spaces: StoredSpace[]; deleteSpace: (id: number) => Promise<void>; freeMemories: StoredContent[]; - addSpace: (space: StoredSpace) => Promise<void>; + addSpace: typeof addSpace; addMemory: ( memory: typeof storedContent.$inferInsert, spaces?: number[], @@ -27,7 +26,7 @@ export const MemoryContext = React.createContext<{ spaces: [], freeMemories: [], addMemory: async () => {}, - addSpace: async () => {}, + addSpace: (async () => {}) as unknown as (typeof addSpace), deleteSpace: async () => {}, cachedMemories: [], search: async () => [] @@ -49,10 +48,6 @@ export const MemoryProvider: React.FC< const [cachedMemories, setCachedMemories] = React.useState<ChachedSpaceContent[]>( initialCachedMemories ); - - const addSpace = async (space: StoredSpace) => { - setSpaces((prev) => [...prev, space]); - } const deleteSpace = async (id: number) => { setSpaces((prev) => prev.filter((s) => s.id !== id)); @@ -68,13 +63,29 @@ export const MemoryProvider: React.FC< ) => { const content = await addMemory(memory, spaces); } + + const _addSpace: typeof addSpace = async (...params) => { + const { space: addedSpace, addedMemories } = (await addSpace(...params))!; + + setSpaces(prev => [...prev, addedSpace]) + const cachedMemories = (await fetchContentForSpace(addedSpace.id, { + offset: 0, + limit: 3 + })).map(m => ({ ...m, space: addedSpace.id })) + + setCachedMemories(prev => [...prev, ...cachedMemories]) + + return { + space: addedSpace, addedMemories + } + } return ( <MemoryContext.Provider value={{ search: searchMemoriesAndSpaces, spaces, - addSpace, + addSpace: _addSpace, deleteSpace, freeMemories, cachedMemories, |