From a7d72c798d18ae55f9a5de13fa8a94346346779d Mon Sep 17 00:00:00 2001 From: yxshv Date: Sat, 13 Apr 2024 23:14:06 +0530 Subject: delete spaces and memories --- apps/web/src/contexts/MemoryContext.tsx | 31 ++++++++++++++++++++++++------- 1 file changed, 24 insertions(+), 7 deletions(-) (limited to 'apps/web/src/contexts') diff --git a/apps/web/src/contexts/MemoryContext.tsx b/apps/web/src/contexts/MemoryContext.tsx index 44fc9799..08ffbcf5 100644 --- a/apps/web/src/contexts/MemoryContext.tsx +++ b/apps/web/src/contexts/MemoryContext.tsx @@ -1,7 +1,7 @@ "use client"; import React, { useCallback } from "react"; import { ChachedSpaceContent, StoredContent, storedContent, StoredSpace } from "@/server/db/schema"; -import { addMemory, searchMemoriesAndSpaces, addSpace, fetchContentForSpace } from "@/actions/db"; +import { addMemory, searchMemoriesAndSpaces, addSpace, fetchContentForSpace, deleteSpace, deleteMemory } from "@/actions/db"; import { User } from "next-auth"; export type SearchResult = { @@ -13,20 +13,22 @@ export type SearchResult = { // temperory (will change) export const MemoryContext = React.createContext<{ spaces: StoredSpace[]; - deleteSpace: (id: number) => Promise; freeMemories: StoredContent[]; addSpace: typeof addSpace; addMemory: typeof addMemory; cachedMemories: ChachedSpaceContent[]; search: typeof searchMemoriesAndSpaces; + deleteSpace: typeof deleteSpace; + deleteMemory: typeof deleteMemory; }>({ spaces: [], freeMemories: [], addMemory: (() => {}) as unknown as (typeof addMemory), addSpace: (async () => {}) as unknown as (typeof addSpace), - deleteSpace: async () => {}, cachedMemories: [], - search: async () => [] + search: async () => [], + deleteMemory: (() => {}) as unknown as (typeof deleteMemory), + deleteSpace: (() => {}) as unknown as (typeof deleteSpace) }); export const MemoryProvider: React.FC< @@ -46,8 +48,22 @@ export const MemoryProvider: React.FC< initialCachedMemories ); - const deleteSpace = async (id: number) => { - setSpaces((prev) => prev.filter((s) => s.id !== id)); + const _deleteSpace: typeof deleteSpace = async (...params) => { + const deleted = (await deleteSpace(...params))! + + setSpaces(prev => prev.filter(i => i.id !== deleted.id)) + setCachedMemories(prev => prev.filter(i => i.space !== deleted.id)) + + return deleted + } + + const _deleteMemory: typeof deleteMemory = async (...params) => { + const deleted = (await deleteMemory(...params))! + + setCachedMemories(prev => prev.filter(i => i.id !== deleted.id)) + setFreeMemories(prev => prev.filter(i => i.id !== deleted.id)) + + return deleted } // const fetchMemories = useCallback(async (query: string) => { @@ -94,9 +110,10 @@ export const MemoryProvider: React.FC< search: searchMemoriesAndSpaces, spaces, addSpace: _addSpace, - deleteSpace, + deleteSpace: _deleteSpace, freeMemories, cachedMemories, + deleteMemory: _deleteMemory, addMemory: _addMemory, }} > -- cgit v1.2.3