placementt-core 1.20.232 → 1.20.233

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2,7 +2,7 @@ import { DocumentData } from "firebase/firestore";
2
2
  import { TypedUseSelectorHook } from "react-redux";
3
3
  import { RootState } from "./config";
4
4
  import { Job } from "./features/jobs/jobsSlice";
5
- import { Address, Application, CohortData, Contact, EmailTemplate, InstituteData, PlacementListing, ProviderData, StudentPlacementData, UserData, UserGroupData } from "./typeDefinitions";
5
+ import { Address, Application, CohortData, Contact, EmailTemplate, FileItem, InstituteData, PlacementListing, ProviderData, StudentPlacementData, UserData, UserGroupData } from "./typeDefinitions";
6
6
  export declare const useAppSelector: TypedUseSelectorHook<RootState>;
7
7
  export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<import("redux").EmptyObject & {
8
8
  upcomingStudentPlacements: import("./features/placements/studentPlacements/upcomingStudentPlacementsSlice").UpcomingPlacementState;
@@ -39,6 +39,7 @@ export declare function useStudent({ user }: {
39
39
  contacts?: undefined;
40
40
  placements?: undefined;
41
41
  applications?: undefined;
42
+ files?: undefined;
42
43
  } | {
43
44
  contacts: {
44
45
  add: (contactForm: Contact) => Promise<import("@reduxjs/toolkit").PayloadAction<Contact, string, {
@@ -152,6 +153,13 @@ export declare function useStudent({ user }: {
152
153
  address: Address;
153
154
  };
154
155
  } | undefined;
156
+ files: {
157
+ fetchFiles: (oId: string) => void;
158
+ addFile: (e: any, oId: string) => Promise<void>;
159
+ removeFile: () => Promise<void>;
160
+ files: [string, FileItem][] | undefined;
161
+ deleteFile: string | undefined;
162
+ };
155
163
  error?: undefined;
156
164
  };
157
165
  export declare function useInstituteStaff({ user }: {
@@ -243,6 +251,7 @@ export declare function useInstituteStudent({ user }: {
243
251
  cohorts?: undefined;
244
252
  applications?: undefined;
245
253
  getPlacementListings?: undefined;
254
+ files?: undefined;
246
255
  logs?: undefined;
247
256
  } | {
248
257
  contacts: {
@@ -370,25 +379,28 @@ export declare function useInstituteStudent({ user }: {
370
379
  getPlacementListings: () => Promise<{
371
380
  [k: string]: PlacementListing;
372
381
  }>;
382
+ files: {
383
+ fetchFiles: (oId: string) => void;
384
+ addFile: (e: any, oId: string) => Promise<void>;
385
+ removeFile: () => Promise<void>;
386
+ files: [string, FileItem][] | undefined;
387
+ deleteFile: string | undefined;
388
+ } | undefined;
373
389
  logs: {
374
- status: string;
375
390
  values: {
376
- status: string;
377
- values: {
378
- [key: string]: DocumentData;
379
- };
391
+ [key: string]: DocumentData;
380
392
  };
381
- fetchLogs: (placementId: string, selectedDate: string) => void;
393
+ fetchLogs: (placementId: string, selectedDate: string) => Promise<void>;
382
394
  saveLog: (value: any[] | {
383
395
  [key: string]: unknown;
384
- }, selectedDate: string, userType: string, placementId: string) => void;
396
+ }, selectedDate: string, userType: string, placementId: string) => Promise<void>;
385
397
  addLogFile: (files: {
386
398
  file: FileList;
387
- }, userType: string, selectedDate: string, placementId: string) => void;
399
+ }, userType: string, selectedDate: string, placementId: string) => Promise<void>;
388
400
  deleteLogFile: (openFile: {
389
401
  name: string;
390
402
  url: string;
391
- }, userType: string, selectedDate: string, placementId: string) => void;
403
+ }, userType: string, selectedDate: string, placementId: string) => Promise<void>;
392
404
  };
393
405
  error?: undefined;
394
406
  };
package/lib/reduxHooks.js CHANGED
@@ -14,13 +14,15 @@ const react_1 = require("react");
14
14
  const react_redux_1 = require("react-redux");
15
15
  const contactsSlice_1 = require("./features/contacts/contactsSlice");
16
16
  const jobsSlice_1 = require("./features/jobs/jobsSlice");
17
- const logsSlice_1 = require("./features/logs/logsSlice");
18
17
  const activePlacement_1 = require("./features/placements/studentPlacements/activePlacement");
19
18
  const completedStudentPlacementsSlice_1 = require("./features/placements/studentPlacements/completedStudentPlacementsSlice");
20
19
  const upcomingStudentPlacementsSlice_1 = require("./features/placements/studentPlacements/upcomingStudentPlacementsSlice");
21
20
  const firebaseQuery_1 = __importDefault(require("./firebase/firebaseQuery"));
22
21
  const readDatabase_1 = require("./firebase/readDatabase");
23
22
  const util_1 = require("./firebase/util");
23
+ const writeDatabase_1 = require("./firebase/writeDatabase");
24
+ const storage_1 = require("firebase/storage");
25
+ const firebaseConfig_1 = require("./firebase/firebaseConfig");
24
26
  exports.useAppSelector = react_redux_1.useSelector;
25
27
  const useAppDispatch = () => (0, react_redux_1.useDispatch)();
26
28
  exports.useAppDispatch = useAppDispatch;
@@ -33,6 +35,8 @@ function useStudent({ user }) {
33
35
  const upcoming = (0, exports.useAppSelector)((state) => state.upcomingStudentPlacements.upcoming);
34
36
  const contacts = (0, exports.useAppSelector)((state) => state.contacts.values);
35
37
  const [applications, setApplications] = (0, react_1.useState)();
38
+ const [files, setFiles] = (0, react_1.useState)();
39
+ const [deleteFile, setDeleteFile] = (0, react_1.useState)();
36
40
  const firebaseQuery = new firebaseQuery_1.default();
37
41
  const dispatch = (0, exports.useAppDispatch)();
38
42
  const today = new Date();
@@ -60,6 +64,52 @@ function useStudent({ user }) {
60
64
  dispatch(fetchActivePlacement({userId: user.id}))
61
65
  }, [dispatch, user.id, upcomingPlacements]);
62
66
  */
67
+ const fetchFiles = (oId) => {
68
+ firebaseQuery.collectionSnapshot(async (docs) => {
69
+ setFiles(await Promise.all(Object.entries(docs).map(async ([id, file]) => {
70
+ const url = await (0, storage_1.getDownloadURL)((0, storage_1.ref)(firebaseConfig_1.storage, `userFiles/${file.fileName}`));
71
+ return [id, { ...file, url: url }];
72
+ })));
73
+ }, "files", [(0, firestore_1.where)("product", "==", user.product), (0, firestore_1.where)("oId", "==", oId)]);
74
+ };
75
+ const addFile = async (e, oId) => {
76
+ console.log("files", e);
77
+ const fileName = e.name;
78
+ const file = e.file[0];
79
+ const newFileName = oId + "_" + (0, util_1.getRandomNumber)(0, 1000000) + "_" + file.name;
80
+ const newFile = {
81
+ product: user.product,
82
+ oId: oId,
83
+ fileName: newFileName,
84
+ name: fileName,
85
+ added: (0, util_1.convertDate)(new Date(), "visual"),
86
+ };
87
+ const docRef = await firebaseQuery.add("files", newFile);
88
+ await (0, writeDatabase_1.uploadFiles)(file, `userFiles/${newFileName}`);
89
+ setFiles((prevFiles) => {
90
+ const newEntry = [docRef.id, newFile];
91
+ return prevFiles ? [...prevFiles, newEntry] : [newEntry];
92
+ });
93
+ };
94
+ const removeFile = async () => {
95
+ var _a;
96
+ if (!deleteFile)
97
+ return;
98
+ const fileToDelete = (_a = files === null || files === void 0 ? void 0 : files.find(([id]) => id === deleteFile)) === null || _a === void 0 ? void 0 : _a[1];
99
+ if (!fileToDelete) {
100
+ console.error("File not found in state");
101
+ return;
102
+ }
103
+ try {
104
+ await firebaseQuery.delete(["files", deleteFile]);
105
+ await (0, storage_1.deleteObject)((0, storage_1.ref)(firebaseConfig_1.storage, `userFiles/${fileToDelete.fileName}`));
106
+ setFiles((prevFiles) => (prevFiles === null || prevFiles === void 0 ? void 0 : prevFiles.filter(([id]) => id !== deleteFile)) || []);
107
+ setDeleteFile(undefined);
108
+ }
109
+ catch (error) {
110
+ console.error("Error deleting file:", error);
111
+ }
112
+ };
63
113
  const fetchUpcomingPlacements = () => {
64
114
  const constraints = [(0, firestore_1.where)("uid", "==", user.id), (0, firestore_1.where)("inProgress", "==", true), (0, firestore_1.orderBy)("startDate")];
65
115
  firebaseQuery.collectionSnapshot(upcomingStudentPlacementsSlice_1.setUpcomingStudentPlacements, "placements", constraints, dispatch);
@@ -146,9 +196,16 @@ function useStudent({ user }) {
146
196
  upcoming,
147
197
  upcomingPlacements: upcomingPlacements || {},
148
198
  completedPlacements: completedPlacements || {},
149
- getById: async (item) => await getItemById("placements", item)
199
+ getById: async (item) => await getItemById("placements", item),
150
200
  },
151
201
  applications: applications,
202
+ files: {
203
+ fetchFiles,
204
+ addFile,
205
+ removeFile,
206
+ files,
207
+ deleteFile,
208
+ }
152
209
  };
153
210
  }
154
211
  ;
@@ -219,12 +276,12 @@ function useInstitute({ user }) {
219
276
  function useInstituteStudent({ user }) {
220
277
  if (!user || (user === null || user === void 0 ? void 0 : user.product) !== "institutes" || user.userType !== "Students")
221
278
  return { error: "Unauthorized" };
222
- const { contacts, placements, applications } = useStudent({ user });
279
+ const { contacts, placements, applications, files } = useStudent({ user });
223
280
  const [cohorts, setCohorts] = (0, react_1.useState)();
224
281
  const firebaseQuery = new firebaseQuery_1.default();
225
282
  const { userGroups, forms, institute } = useInstitute({ user });
226
- const logs = (0, exports.useAppSelector)((state) => state.logs);
227
- const dispatch = (0, exports.useAppDispatch)();
283
+ const [logs, setLogs] = (0, react_1.useState)({});
284
+ // const dispatch = useAppDispatch()
228
285
  (0, react_1.useEffect)(() => {
229
286
  const isAdmin = user.userGroup === "admin";
230
287
  const canViewCohorts = user.viewCohorts !== "none";
@@ -260,17 +317,59 @@ function useInstituteStudent({ user }) {
260
317
  }))).filter((i) => i));
261
318
  return listings;
262
319
  };
263
- const fetchLogData = (placementId, selectedDate) => {
264
- dispatch((0, logsSlice_1.fetchLogs)({ placementId, selectedDate }));
320
+ const fetchLogs = async (placementId, selectedDate) => {
321
+ try {
322
+ const data = await firebaseQuery.getDocData(["logs", `${placementId}-${selectedDate}`]);
323
+ setLogs(prev => ({ ...prev, [selectedDate]: data || {} }));
324
+ }
325
+ catch {
326
+ console.log("No log error");
327
+ setLogs(prev => ({ ...prev, [selectedDate]: {} }));
328
+ }
265
329
  };
266
- const saveLogData = (value, selectedDate, userType, placementId) => {
267
- dispatch((0, logsSlice_1.editLog)({ value, selectedDate, userType, placementId }));
330
+ const saveLog = async (value, selectedDate, userType, placementId) => {
331
+ const empty = (Array.isArray(value) && value.length === 0) ||
332
+ (Object.entries(Object.values(value)[0])
333
+ .filter(([k, v]) => (![`${userType}Uid`, "completed"].includes(k)) && v)
334
+ .length === 0);
335
+ const updatedValue = empty
336
+ ? null
337
+ : Array.isArray(value)
338
+ ? value
339
+ : Object.values(value)[0];
340
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [userType]: updatedValue }, true);
341
+ await firebaseQuery.update(["placements", placementId], { [userType + "Logs"]: empty ? (0, firestore_1.arrayRemove)(selectedDate) : (0, firestore_1.arrayUnion)(selectedDate) });
342
+ const updatedLog = {
343
+ ...logs[selectedDate],
344
+ [userType]: updatedValue,
345
+ };
346
+ setLogs(prev => ({ ...prev, [selectedDate]: updatedLog }));
268
347
  };
269
- const addLogFileData = (files, userType, selectedDate, placementId) => {
270
- dispatch((0, logsSlice_1.addLogFile)({ files, userType, selectedDate, placementId }));
348
+ const addLogFile = async (files, userType, selectedDate, placementId) => {
349
+ const newFileNames = Array.from(files.file).map(file => file.name);
350
+ await (0, writeDatabase_1.uploadFiles)(Array.from(files.file), ["placements", placementId, "log", `${userType}_files`, selectedDate]);
351
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [`${userType}_files`]: (0, firestore_1.arrayUnion)(...newFileNames) }, true);
352
+ setLogs(prevLogs => {
353
+ const currentLog = prevLogs[selectedDate] || {};
354
+ const updatedFiles = [...(currentLog[`${userType}_files`] || []), ...newFileNames];
355
+ return {
356
+ ...prevLogs,
357
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
358
+ };
359
+ });
271
360
  };
272
- const deleteLogFileData = (openFile, userType, selectedDate, placementId) => {
273
- dispatch((0, logsSlice_1.deleteLogFile)({ openFile, userType, selectedDate, placementId }));
361
+ const deleteLogFile = async (openFile, userType, selectedDate, placementId) => {
362
+ await (0, writeDatabase_1.deleteStorageItem)(`placements/${placementId}/log/${userType}_files/${selectedDate}/${openFile.name}`);
363
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [`${userType}_files`]: (0, firestore_1.arrayRemove)(openFile.name) }, true);
364
+ setLogs(prevLogs => {
365
+ var _a;
366
+ const currentLog = prevLogs[selectedDate] || {};
367
+ const updatedFiles = ((_a = currentLog[`${userType}_files`]) === null || _a === void 0 ? void 0 : _a.filter((file) => file !== openFile.name)) || [];
368
+ return {
369
+ ...prevLogs,
370
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
371
+ };
372
+ });
274
373
  };
275
374
  return {
276
375
  contacts,
@@ -281,13 +380,13 @@ function useInstituteStudent({ user }) {
281
380
  cohorts,
282
381
  applications,
283
382
  getPlacementListings,
383
+ files,
284
384
  logs: {
285
- status: logs.status,
286
385
  values: logs,
287
- fetchLogs: fetchLogData,
288
- saveLog: saveLogData,
289
- addLogFile: addLogFileData,
290
- deleteLogFile: deleteLogFileData
386
+ fetchLogs,
387
+ saveLog,
388
+ addLogFile,
389
+ deleteLogFile
291
390
  }
292
391
  };
293
392
  }
@@ -1 +1 @@
1
- {"version":3,"file":"reduxHooks.js","sourceRoot":"","sources":["../src/reduxHooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reduxHooks.js","sourceRoot":"","sources":["../src/reduxHooks.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "private": false,
3
3
  "name": "placementt-core",
4
4
  "author": "Placementt",
5
- "version": "1.20.232",
5
+ "version": "1.20.233",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
package/src/reduxHooks.ts CHANGED
@@ -1,17 +1,19 @@
1
- import { DocumentData, documentId, orderBy, where } from "firebase/firestore"
1
+ import { DocumentData, arrayRemove, arrayUnion, documentId, orderBy, where } from "firebase/firestore"
2
2
  import { useEffect, useState } from "react"
3
3
  import { TypedUseSelectorHook, useDispatch, useSelector } from "react-redux"
4
4
  import { AppDispatch, RootState } from "./config"
5
5
  import { addContact, deleteContact, setContacts, updateContact } from "./features/contacts/contactsSlice"
6
6
  import { Job, addJob, setJobStatus, setJobs, setMarkRead, updateJob } from "./features/jobs/jobsSlice"
7
- import { addLogFile, deleteLogFile, editLog, fetchLogs } from "./features/logs/logsSlice"
8
7
  import { editActivePlacement, fetchActivePlacement, setActivePlacement } from "./features/placements/studentPlacements/activePlacement"
9
8
  import { addCompletedStudentPlacements, deleteCompletedStudentPlacement, setCompletedStudentPlacements, updateCompletedStudentPlacement } from "./features/placements/studentPlacements/completedStudentPlacementsSlice"
10
9
  import { addUpcomingStudentPlacements, deleteUpcomingStudentPlacement, setUpcoming, setUpcomingStudentPlacements, updateUpcomingStudentPlacement } from "./features/placements/studentPlacements/upcomingStudentPlacementsSlice"
11
10
  import FirebaseQuery from "./firebase/firebaseQuery"
12
11
  import { getOrganisation, getPlacementsWhere } from "./firebase/readDatabase"
13
- import { convertDate } from "./firebase/util"
14
- import { Address, Application, CohortData, Contact, EmailTemplate, InstituteData, PlacementListing, ProviderData, SavedPlacement, StudentPlacementData, UserData, UserGroupData } from "./typeDefinitions"
12
+ import { convertDate, getRandomNumber } from "./firebase/util"
13
+ import { deleteStorageItem, uploadFiles } from "./firebase/writeDatabase"
14
+ import { Address, Application, CohortData, Contact, EmailTemplate, FileItem, InstituteData, PlacementListing, ProviderData, SavedPlacement, StudentPlacementData, UserData, UserGroupData } from "./typeDefinitions"
15
+ import { deleteObject, getDownloadURL, ref } from "firebase/storage"
16
+ import { storage } from "./firebase/firebaseConfig"
15
17
 
16
18
  export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
17
19
  export const useAppDispatch = () => useDispatch<AppDispatch>();
@@ -26,6 +28,8 @@ export function useStudent({user} : {user: UserData}) {
26
28
  const upcoming = useAppSelector((state) => state.upcomingStudentPlacements.upcoming)
27
29
  const contacts = useAppSelector((state) => state.contacts.values)
28
30
  const [applications, setApplications] = useState<{[key: string]: Application&{listing: PlacementListing|false, provider: ProviderData|false, address: Address}}>();
31
+ const [files, setFiles] = useState<[string, FileItem][]>();
32
+ const [deleteFile, setDeleteFile] = useState<string>();
29
33
  const firebaseQuery = new FirebaseQuery();
30
34
 
31
35
  const dispatch = useAppDispatch();
@@ -61,6 +65,62 @@ export function useStudent({user} : {user: UserData}) {
61
65
  dispatch(fetchActivePlacement({userId: user.id}))
62
66
  }, [dispatch, user.id, upcomingPlacements]);
63
67
  */
68
+
69
+ const fetchFiles = (oId: string) => {
70
+ firebaseQuery.collectionSnapshot(async (docs: {[key: string]: FileItem}) => {
71
+ setFiles(await Promise.all(Object.entries(docs as {[key: string]: FileItem}).map(async ([id, file]) => {
72
+ const url = await getDownloadURL(ref(storage, `userFiles/${file.fileName}`));
73
+ return [id, {...file, url: url}];
74
+ })));
75
+ }, "files", [where("product", "==", user.product), where("oId", "==", oId)]);
76
+ }
77
+
78
+ const addFile = async (e: any, oId: string) => {
79
+ console.log("files", e);
80
+
81
+ const fileName = e.name;
82
+ const file = e.file[0] as File;
83
+
84
+ const newFileName = oId + "_" + getRandomNumber(0, 1000000) + "_" + file.name;
85
+
86
+ const newFile: FileItem = {
87
+ product: user.product,
88
+ oId: oId,
89
+ fileName: newFileName,
90
+ name: fileName,
91
+ added: convertDate(new Date(), "visual") as string,
92
+ };
93
+
94
+ const docRef = await firebaseQuery.add("files", newFile);
95
+ await uploadFiles(file, `userFiles/${newFileName}`);
96
+
97
+ setFiles((prevFiles) => {
98
+ const newEntry: [string, FileItem] = [docRef.id, newFile];
99
+ return prevFiles ? [...prevFiles, newEntry] : [newEntry];
100
+ });
101
+
102
+ };
103
+
104
+ const removeFile = async () => {
105
+ if (!deleteFile) return;
106
+ const fileToDelete = files?.find(([id]) => id === deleteFile)?.[1];
107
+
108
+ if (!fileToDelete) {
109
+ console.error("File not found in state");
110
+ return;
111
+ }
112
+
113
+ try {
114
+ await firebaseQuery.delete(["files", deleteFile]);
115
+ await deleteObject(ref(storage, `userFiles/${fileToDelete.fileName}`));
116
+ setFiles((prevFiles) => prevFiles?.filter(([id]) => id !== deleteFile) || []);
117
+ setDeleteFile(undefined);
118
+ } catch (error) {
119
+ console.error("Error deleting file:", error);
120
+ }
121
+ }
122
+
123
+
64
124
  const fetchUpcomingPlacements = () => {
65
125
  const constraints = [where("uid", "==", user.id), where("inProgress", "==", true), orderBy("startDate")]
66
126
  firebaseQuery.collectionSnapshot(setUpcomingStudentPlacements, "placements", constraints, dispatch);
@@ -155,9 +215,16 @@ export function useStudent({user} : {user: UserData}) {
155
215
  upcoming,
156
216
  upcomingPlacements: upcomingPlacements || {},
157
217
  completedPlacements: completedPlacements || {},
158
- getById: async (item: string) => await getItemById("placements", item)
218
+ getById: async (item: string) => await getItemById("placements", item),
159
219
  },
160
220
  applications: applications,
221
+ files: {
222
+ fetchFiles,
223
+ addFile,
224
+ removeFile,
225
+ files,
226
+ deleteFile,
227
+ }
161
228
  } ;
162
229
  };
163
230
 
@@ -239,12 +306,12 @@ export function useInstitute({user}: {user: UserData}) {
239
306
  export function useInstituteStudent({user}: {user: UserData}) {
240
307
  if (!user || user?.product !== "institutes" || user.userType !== "Students") return {error: "Unauthorized"};
241
308
 
242
- const {contacts, placements, applications} = useStudent({user});
309
+ const {contacts, placements, applications, files} = useStudent({user});
243
310
  const [cohorts, setCohorts] = useState<{[key:string]: CohortData}>();
244
311
  const firebaseQuery = new FirebaseQuery();
245
312
  const {userGroups, forms, institute} = useInstitute({user})
246
- const logs = useAppSelector((state) => state.logs)
247
- const dispatch = useAppDispatch()
313
+ const [logs, setLogs] = useState<{[key: string]: DocumentData}>({})
314
+ // const dispatch = useAppDispatch()
248
315
 
249
316
  useEffect(() => {
250
317
  const isAdmin = user.userGroup === "admin";
@@ -284,21 +351,88 @@ export function useInstituteStudent({user}: {user: UserData}) {
284
351
  return listings
285
352
  }
286
353
 
287
- const fetchLogData = (placementId: string, selectedDate: string) => {
288
- dispatch(fetchLogs({ placementId, selectedDate }));
289
- };
354
+ const fetchLogs = async (placementId: string, selectedDate: string) => {
355
+ try {
356
+ const data = await firebaseQuery.getDocData(["logs", `${placementId}-${selectedDate}`])
357
+ setLogs(prev => ({...prev, [selectedDate]: data || {}}))
358
+
359
+ } catch {
360
+ console.log("No log error")
361
+ setLogs(prev => ({...prev, [selectedDate]: {}}))
362
+ }
363
+ }
290
364
 
291
- const saveLogData = (value: any[] | { [key: string]: unknown }, selectedDate: string, userType: string, placementId: string) => {
292
- dispatch(editLog({ value, selectedDate, userType, placementId }));
365
+ const saveLog = async (value: any[] | {[key: string]: unknown}, selectedDate: string, userType: string, placementId: string) => {
366
+ const empty =
367
+ (Array.isArray(value) && value.length === 0) ||
368
+ (Object.entries(Object.values(value)[0] as { [key: string]: unknown })
369
+ .filter(([k, v]) => (![`${userType}Uid`, "completed"].includes(k)) && v)
370
+ .length === 0);
371
+
372
+ const updatedValue = empty
373
+ ? null
374
+ : Array.isArray(value)
375
+ ? value
376
+ : Object.values(value)[0];
377
+
378
+ await firebaseQuery.set(
379
+ ["logs", `${placementId}-${selectedDate}`],
380
+ { [userType]: updatedValue },
381
+ true
382
+ );
383
+
384
+ await firebaseQuery.update(
385
+ ["placements", placementId],
386
+ { [userType + "Logs"]: empty ? arrayRemove(selectedDate) : arrayUnion(selectedDate) }
387
+ );
388
+ const updatedLog = {
389
+ ...logs[selectedDate],
390
+ [userType]: updatedValue,
293
391
  };
294
392
 
295
- const addLogFileData = (files: { file: FileList }, userType: string, selectedDate: string, placementId: string) => {
296
- dispatch(addLogFile({ files, userType, selectedDate, placementId }));
297
- };
393
+ setLogs(prev => ({ ...prev, [selectedDate]: updatedLog }));
394
+ }
298
395
 
299
- const deleteLogFileData = (openFile: { name: string, url: string }, userType: string, selectedDate: string, placementId: string) => {
300
- dispatch(deleteLogFile({ openFile, userType, selectedDate, placementId }));
301
- };
396
+ const addLogFile = async (files: {file: FileList}, userType: string, selectedDate: string, placementId: string) => {
397
+ const newFileNames = Array.from(files.file).map(file => file.name);
398
+
399
+ await uploadFiles(
400
+ Array.from(files.file),
401
+ ["placements", placementId, "log", `${userType}_files`, selectedDate]
402
+ );
403
+
404
+ await firebaseQuery.set(
405
+ ["logs", `${placementId}-${selectedDate}`],
406
+ { [`${userType}_files`]: arrayUnion(...newFileNames) },
407
+ true
408
+ );
409
+ setLogs(prevLogs => {
410
+ const currentLog = prevLogs[selectedDate] || {};
411
+ const updatedFiles = [...(currentLog[`${userType}_files`] || []), ...newFileNames];
412
+ return {
413
+ ...prevLogs,
414
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
415
+ };
416
+ });
417
+ }
418
+
419
+ const deleteLogFile = async (openFile: {name: string, url: string}, userType: string, selectedDate: string, placementId: string) => {
420
+ await deleteStorageItem(`placements/${placementId}/log/${userType}_files/${selectedDate}/${openFile.name}`);
421
+ await firebaseQuery.set(
422
+ ["logs", `${placementId}-${selectedDate}`],
423
+ { [`${userType}_files`]: arrayRemove(openFile.name) },
424
+ true
425
+ );
426
+
427
+ setLogs(prevLogs => {
428
+ const currentLog = prevLogs[selectedDate] || {};
429
+ const updatedFiles = currentLog[`${userType}_files`]?.filter((file: string) => file !== openFile.name) || [];
430
+ return {
431
+ ...prevLogs,
432
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
433
+ };
434
+ });
435
+ }
302
436
 
303
437
 
304
438
  return {
@@ -310,13 +444,13 @@ export function useInstituteStudent({user}: {user: UserData}) {
310
444
  cohorts,
311
445
  applications,
312
446
  getPlacementListings,
447
+ files,
313
448
  logs: {
314
- status: logs.status,
315
449
  values: logs,
316
- fetchLogs: fetchLogData,
317
- saveLog: saveLogData,
318
- addLogFile: addLogFileData,
319
- deleteLogFile: deleteLogFileData
450
+ fetchLogs,
451
+ saveLog,
452
+ addLogFile,
453
+ deleteLogFile
320
454
  }
321
455
 
322
456
  }