Skip to content

Commit 0cdef83

Browse files
committed
add deletion
1 parent 24d6353 commit 0cdef83

File tree

3 files changed

+31
-11
lines changed

3 files changed

+31
-11
lines changed

apps/events/src/components/events.tsx

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import React from "react";
2-
import { useQuery } from "../schema";
2+
import { useDeleteEntity, useQuery } from "../schema";
33
import { Button } from "./ui/button";
44
import {
55
Card,
@@ -11,9 +11,10 @@ import {
1111
import { Input } from "./ui/input";
1212

1313
export const Events: React.FC = () => {
14-
const entities = useQuery({ types: ["Event"] });
14+
const events = useQuery({ types: ["Event"] });
15+
const deleteEntity = useDeleteEntity();
1516

16-
console.log("Rendering Events", entities);
17+
console.log("Rendering Events", events);
1718

1819
// const entities = useQuery({
1920
// where: {
@@ -73,11 +74,11 @@ export const Events: React.FC = () => {
7374

7475
return (
7576
<div className="grid gap-6 sm:grid-cols-2 lg:grid-cols-3">
76-
{entities &&
77-
Object.keys(entities).map((entityId) => {
78-
const entity = entities[entityId];
77+
{events &&
78+
Object.keys(events).map((eventId) => {
79+
const entity = events[eventId];
7980
return (
80-
<Card key={entityId}>
81+
<Card key={eventId}>
8182
<CardHeader>
8283
<CardTitle>
8384
<Input
@@ -98,9 +99,7 @@ export const Events: React.FC = () => {
9899
<Button
99100
onClick={(evt) => {
100101
evt.preventDefault();
101-
// changeDoc((doc) => {
102-
// delete doc.events[event.id];
103-
// });
102+
deleteEntity(eventId);
104103
}}
105104
>
106105
Delete

apps/events/src/schema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ export const schema = {
4949
export const {
5050
SpaceProvider,
5151
useCreateEntity,
52+
useDeleteEntity,
5253
useSpaceId,
5354
createDocumentId,
5455
useQuery,

packages/graph-framework/context.tsx

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,6 @@ export function createFunctions<
132132
return documentId;
133133
};
134134

135-
// Custom hook to use the createEntity function
136135
function useCreateEntity() {
137136
const id = useSpaceId();
138137
const [, changeDoc] = useDocument<DocumentContent>(id as AnyDocumentId);
@@ -162,6 +161,26 @@ export function createFunctions<
162161
return createEntity;
163162
}
164163

164+
function useDeleteEntity() {
165+
const id = useSpaceId();
166+
const [, changeDoc] = useDocument<DocumentContent>(id as AnyDocumentId);
167+
168+
function deleteEntity(entityId: string) {
169+
let result = false;
170+
changeDoc((doc) => {
171+
if (doc.entities) {
172+
if (doc.entities[entityId]) {
173+
delete doc.entities[entityId];
174+
result = true;
175+
}
176+
}
177+
});
178+
return result;
179+
}
180+
181+
return deleteEntity;
182+
}
183+
165184
function useQuery<TypeNames extends (keyof TypeSchemasMap)[]>({
166185
types,
167186
where,
@@ -229,6 +248,7 @@ export function createFunctions<
229248

230249
return {
231250
useCreateEntity,
251+
useDeleteEntity,
232252
useQuery,
233253
SpaceProvider,
234254
useSpaceId,

0 commit comments

Comments
 (0)