Skip to content

Commit c3ef388

Browse files
committed
Implements event update functionality
Adds logic to update event details and maintain history Integrates status management for real-time updates in the database
1 parent c54f255 commit c3ef388

File tree

2 files changed

+24
-3
lines changed

2 files changed

+24
-3
lines changed

src/Components/Event/useEditForm.ts

+23-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { useRequest } from "ahooks";
22
import { useEffect, useState } from "react";
3+
import { useStatus } from "~/Services/Status";
34
import { StatusEnum } from "~/Services/Status.Entities";
45
import { Models } from "~/Services/Status.Models";
56
import { useAccessToken } from "../Auth/useAccessToken";
@@ -172,6 +173,7 @@ export function useEditForm(event: Models.IEvent) {
172173
}, [start, end]);
173174

174175
const getToken = useAccessToken();
176+
const { DB, Update } = useStatus();
175177

176178
const { runAsync, loading } = useRequest(async () => {
177179
if (![setTitle(), setType(), setUpdate(), setStatus(), setStart(), setEnd(), setUpdateAt()].every(Boolean)) {
@@ -223,7 +225,27 @@ export function useEditForm(event: Models.IEvent) {
223225
throw new Error("Failed to update event: " + await raw.text());
224226
}
225227

226-
window.location.reload();
228+
const eventIndex = DB.Events.findIndex(e => e.Id === event.Id);
229+
if (eventIndex !== -1) {
230+
const updatedEvent = { ...DB.Events[eventIndex] };
231+
updatedEvent.Title = title;
232+
updatedEvent.Type = type;
233+
updatedEvent.Status = status;
234+
updatedEvent.Start = start;
235+
updatedEvent.End = end;
236+
237+
const newHistory: Models.IHistory = {
238+
Id: Math.max(...Array.from(updatedEvent.Histories).map(h => h.Id), 0) + 1,
239+
Message: update,
240+
Created: updateAt,
241+
Status: status,
242+
Event: updatedEvent
243+
};
244+
updatedEvent.Histories.add(newHistory);
245+
246+
DB.Events[eventIndex] = updatedEvent;
247+
Update();
248+
}
227249
}, {
228250
manual: true
229251
});

tsconfig.json

+1-2
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121
"noFallthroughCasesInSwitch": true,
2222
"paths": {
2323
"~/*": ["./src/*"]
24-
},
25-
"types": ["vitest/globals"]
24+
}
2625
},
2726
"include": ["src", "test"],
2827
"references": [{ "path": "./tsconfig.node.json" }]

0 commit comments

Comments
 (0)