placementt-core 1.20.232 → 1.20.234

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,16 @@ export declare function useStudent({ user }: {
152
153
  address: Address;
153
154
  };
154
155
  } | undefined;
156
+ files: {
157
+ fetchFiles: (oId: string) => void;
158
+ uploadDocument: (e: {
159
+ name: string;
160
+ }, oId: string) => Promise<void>;
161
+ uploadedDocument: any;
162
+ uploadFile: (e: any, oId: string) => Promise<void>;
163
+ removeFile: (file: string) => Promise<void>;
164
+ files: [string, FileItem][] | undefined;
165
+ };
155
166
  error?: undefined;
156
167
  };
157
168
  export declare function useInstituteStaff({ user }: {
@@ -243,6 +254,7 @@ export declare function useInstituteStudent({ user }: {
243
254
  cohorts?: undefined;
244
255
  applications?: undefined;
245
256
  getPlacementListings?: undefined;
257
+ files?: undefined;
246
258
  logs?: undefined;
247
259
  } | {
248
260
  contacts: {
@@ -370,25 +382,31 @@ export declare function useInstituteStudent({ user }: {
370
382
  getPlacementListings: () => Promise<{
371
383
  [k: string]: PlacementListing;
372
384
  }>;
385
+ files: {
386
+ fetchFiles: (oId: string) => void;
387
+ uploadDocument: (e: {
388
+ name: string;
389
+ }, oId: string) => Promise<void>;
390
+ uploadedDocument: any;
391
+ uploadFile: (e: any, oId: string) => Promise<void>;
392
+ removeFile: (file: string) => Promise<void>;
393
+ files: [string, FileItem][] | undefined;
394
+ } | undefined;
373
395
  logs: {
374
- status: string;
375
396
  values: {
376
- status: string;
377
- values: {
378
- [key: string]: DocumentData;
379
- };
397
+ [key: string]: DocumentData;
380
398
  };
381
- fetchLogs: (placementId: string, selectedDate: string) => void;
399
+ fetchLogs: (placementId: string, selectedDate: string) => Promise<void>;
382
400
  saveLog: (value: any[] | {
383
401
  [key: string]: unknown;
384
- }, selectedDate: string, userType: string, placementId: string) => void;
402
+ }, selectedDate: string, userType: string, placementId: string) => Promise<void>;
385
403
  addLogFile: (files: {
386
404
  file: FileList;
387
- }, userType: string, selectedDate: string, placementId: string) => void;
405
+ }, userType: string, selectedDate: string, placementId: string) => Promise<void>;
388
406
  deleteLogFile: (openFile: {
389
407
  name: string;
390
408
  url: string;
391
- }, userType: string, selectedDate: string, placementId: string) => void;
409
+ }, userType: string, selectedDate: string, placementId: string) => Promise<void>;
392
410
  };
393
411
  error?: undefined;
394
412
  };
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 [uploadedDocument, setUploadedDocument] = (0, react_1.useState)(null);
36
40
  const firebaseQuery = new firebaseQuery_1.default();
37
41
  const dispatch = (0, exports.useAppDispatch)();
38
42
  const today = new Date();
@@ -60,6 +64,65 @@ 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 uploadFile = 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 uploadDocument = async (e, oId) => {
95
+ const file = await fetch(uploadedDocument === null || uploadedDocument === void 0 ? void 0 : uploadedDocument.uri);
96
+ const blob = await file.blob();
97
+ const newFileName = `${oId}_${(0, util_1.getRandomNumber)(0, 1000000)}_${uploadedDocument === null || uploadedDocument === void 0 ? void 0 : uploadedDocument.name}`;
98
+ await (0, writeDatabase_1.uploadFiles)(blob, `userFiles/${newFileName}`);
99
+ await firebaseQuery.add("files", {
100
+ product: user.product,
101
+ oId: oId,
102
+ fileName: newFileName,
103
+ name: e.name,
104
+ added: (0, util_1.convertDate)(new Date(), "visual"),
105
+ });
106
+ setUploadedDocument(null);
107
+ };
108
+ const removeFile = async (file) => {
109
+ var _a;
110
+ if (!file)
111
+ return;
112
+ const fileToDelete = (_a = files === null || files === void 0 ? void 0 : files.find(([id]) => id === file)) === null || _a === void 0 ? void 0 : _a[1];
113
+ if (!fileToDelete) {
114
+ console.error("File not found in state");
115
+ return;
116
+ }
117
+ try {
118
+ await firebaseQuery.delete(["files", file]);
119
+ await (0, storage_1.deleteObject)((0, storage_1.ref)(firebaseConfig_1.storage, `userFiles/${fileToDelete.fileName}`));
120
+ setFiles((prevFiles) => (prevFiles === null || prevFiles === void 0 ? void 0 : prevFiles.filter(([id]) => id !== file)) || []);
121
+ }
122
+ catch (error) {
123
+ console.error("Error deleting file:", error);
124
+ }
125
+ };
63
126
  const fetchUpcomingPlacements = () => {
64
127
  const constraints = [(0, firestore_1.where)("uid", "==", user.id), (0, firestore_1.where)("inProgress", "==", true), (0, firestore_1.orderBy)("startDate")];
65
128
  firebaseQuery.collectionSnapshot(upcomingStudentPlacementsSlice_1.setUpcomingStudentPlacements, "placements", constraints, dispatch);
@@ -146,9 +209,17 @@ function useStudent({ user }) {
146
209
  upcoming,
147
210
  upcomingPlacements: upcomingPlacements || {},
148
211
  completedPlacements: completedPlacements || {},
149
- getById: async (item) => await getItemById("placements", item)
212
+ getById: async (item) => await getItemById("placements", item),
150
213
  },
151
214
  applications: applications,
215
+ files: {
216
+ fetchFiles,
217
+ uploadDocument,
218
+ uploadedDocument,
219
+ uploadFile,
220
+ removeFile,
221
+ files,
222
+ }
152
223
  };
153
224
  }
154
225
  ;
@@ -219,12 +290,12 @@ function useInstitute({ user }) {
219
290
  function useInstituteStudent({ user }) {
220
291
  if (!user || (user === null || user === void 0 ? void 0 : user.product) !== "institutes" || user.userType !== "Students")
221
292
  return { error: "Unauthorized" };
222
- const { contacts, placements, applications } = useStudent({ user });
293
+ const { contacts, placements, applications, files } = useStudent({ user });
223
294
  const [cohorts, setCohorts] = (0, react_1.useState)();
224
295
  const firebaseQuery = new firebaseQuery_1.default();
225
296
  const { userGroups, forms, institute } = useInstitute({ user });
226
- const logs = (0, exports.useAppSelector)((state) => state.logs);
227
- const dispatch = (0, exports.useAppDispatch)();
297
+ const [logs, setLogs] = (0, react_1.useState)({});
298
+ // const dispatch = useAppDispatch()
228
299
  (0, react_1.useEffect)(() => {
229
300
  const isAdmin = user.userGroup === "admin";
230
301
  const canViewCohorts = user.viewCohorts !== "none";
@@ -260,17 +331,59 @@ function useInstituteStudent({ user }) {
260
331
  }))).filter((i) => i));
261
332
  return listings;
262
333
  };
263
- const fetchLogData = (placementId, selectedDate) => {
264
- dispatch((0, logsSlice_1.fetchLogs)({ placementId, selectedDate }));
334
+ const fetchLogs = async (placementId, selectedDate) => {
335
+ try {
336
+ const data = await firebaseQuery.getDocData(["logs", `${placementId}-${selectedDate}`]);
337
+ setLogs(prev => ({ ...prev, [selectedDate]: data || {} }));
338
+ }
339
+ catch {
340
+ console.log("No log error");
341
+ setLogs(prev => ({ ...prev, [selectedDate]: {} }));
342
+ }
265
343
  };
266
- const saveLogData = (value, selectedDate, userType, placementId) => {
267
- dispatch((0, logsSlice_1.editLog)({ value, selectedDate, userType, placementId }));
344
+ const saveLog = async (value, selectedDate, userType, placementId) => {
345
+ const empty = (Array.isArray(value) && value.length === 0) ||
346
+ (Object.entries(Object.values(value)[0])
347
+ .filter(([k, v]) => (![`${userType}Uid`, "completed"].includes(k)) && v)
348
+ .length === 0);
349
+ const updatedValue = empty
350
+ ? null
351
+ : Array.isArray(value)
352
+ ? value
353
+ : Object.values(value)[0];
354
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [userType]: updatedValue }, true);
355
+ await firebaseQuery.update(["placements", placementId], { [userType + "Logs"]: empty ? (0, firestore_1.arrayRemove)(selectedDate) : (0, firestore_1.arrayUnion)(selectedDate) });
356
+ const updatedLog = {
357
+ ...logs[selectedDate],
358
+ [userType]: updatedValue,
359
+ };
360
+ setLogs(prev => ({ ...prev, [selectedDate]: updatedLog }));
268
361
  };
269
- const addLogFileData = (files, userType, selectedDate, placementId) => {
270
- dispatch((0, logsSlice_1.addLogFile)({ files, userType, selectedDate, placementId }));
362
+ const addLogFile = async (files, userType, selectedDate, placementId) => {
363
+ const newFileNames = Array.from(files.file).map(file => file.name);
364
+ await (0, writeDatabase_1.uploadFiles)(Array.from(files.file), ["placements", placementId, "log", `${userType}_files`, selectedDate]);
365
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [`${userType}_files`]: (0, firestore_1.arrayUnion)(...newFileNames) }, true);
366
+ setLogs(prevLogs => {
367
+ const currentLog = prevLogs[selectedDate] || {};
368
+ const updatedFiles = [...(currentLog[`${userType}_files`] || []), ...newFileNames];
369
+ return {
370
+ ...prevLogs,
371
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
372
+ };
373
+ });
271
374
  };
272
- const deleteLogFileData = (openFile, userType, selectedDate, placementId) => {
273
- dispatch((0, logsSlice_1.deleteLogFile)({ openFile, userType, selectedDate, placementId }));
375
+ const deleteLogFile = async (openFile, userType, selectedDate, placementId) => {
376
+ await (0, writeDatabase_1.deleteStorageItem)(`placements/${placementId}/log/${userType}_files/${selectedDate}/${openFile.name}`);
377
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [`${userType}_files`]: (0, firestore_1.arrayRemove)(openFile.name) }, true);
378
+ setLogs(prevLogs => {
379
+ var _a;
380
+ const currentLog = prevLogs[selectedDate] || {};
381
+ const updatedFiles = ((_a = currentLog[`${userType}_files`]) === null || _a === void 0 ? void 0 : _a.filter((file) => file !== openFile.name)) || [];
382
+ return {
383
+ ...prevLogs,
384
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
385
+ };
386
+ });
274
387
  };
275
388
  return {
276
389
  contacts,
@@ -281,13 +394,13 @@ function useInstituteStudent({ user }) {
281
394
  cohorts,
282
395
  applications,
283
396
  getPlacementListings,
397
+ files,
284
398
  logs: {
285
- status: logs.status,
286
399
  values: logs,
287
- fetchLogs: fetchLogData,
288
- saveLog: saveLogData,
289
- addLogFile: addLogFileData,
290
- deleteLogFile: deleteLogFileData
400
+ fetchLogs,
401
+ saveLog,
402
+ addLogFile,
403
+ deleteLogFile
291
404
  }
292
405
  };
293
406
  }
@@ -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.234",
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 [uploadedDocument, setUploadedDocument] = useState<any>(null);
29
33
  const firebaseQuery = new FirebaseQuery();
30
34
 
31
35
  const dispatch = useAppDispatch();
@@ -61,6 +65,79 @@ 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 uploadFile = 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 uploadDocument = async (e: { name: string }, oId: string) => {
105
+ const file = await fetch(uploadedDocument?.uri as string);
106
+ const blob = await file.blob();
107
+
108
+ const newFileName = `${oId}_${getRandomNumber(0, 1000000)}_${uploadedDocument?.name}`;
109
+ await uploadFiles(blob, `userFiles/${newFileName}`);
110
+
111
+ await firebaseQuery.add("files", {
112
+ product: user.product,
113
+ oId: oId,
114
+ fileName: newFileName,
115
+ name: e.name,
116
+ added: convertDate(new Date(), "visual"),
117
+ } as FileItem);
118
+
119
+ setUploadedDocument(null);
120
+ }
121
+
122
+ const removeFile = async (file: string) => {
123
+ if (!file) return;
124
+ const fileToDelete = files?.find(([id]) => id === file)?.[1];
125
+
126
+ if (!fileToDelete) {
127
+ console.error("File not found in state");
128
+ return;
129
+ }
130
+
131
+ try {
132
+ await firebaseQuery.delete(["files", file]);
133
+ await deleteObject(ref(storage, `userFiles/${fileToDelete.fileName}`));
134
+ setFiles((prevFiles) => prevFiles?.filter(([id]) => id !== file) || []);
135
+ } catch (error) {
136
+ console.error("Error deleting file:", error);
137
+ }
138
+ }
139
+
140
+
64
141
  const fetchUpcomingPlacements = () => {
65
142
  const constraints = [where("uid", "==", user.id), where("inProgress", "==", true), orderBy("startDate")]
66
143
  firebaseQuery.collectionSnapshot(setUpcomingStudentPlacements, "placements", constraints, dispatch);
@@ -155,9 +232,17 @@ export function useStudent({user} : {user: UserData}) {
155
232
  upcoming,
156
233
  upcomingPlacements: upcomingPlacements || {},
157
234
  completedPlacements: completedPlacements || {},
158
- getById: async (item: string) => await getItemById("placements", item)
235
+ getById: async (item: string) => await getItemById("placements", item),
159
236
  },
160
237
  applications: applications,
238
+ files: {
239
+ fetchFiles,
240
+ uploadDocument,
241
+ uploadedDocument,
242
+ uploadFile,
243
+ removeFile,
244
+ files,
245
+ }
161
246
  } ;
162
247
  };
163
248
 
@@ -239,12 +324,12 @@ export function useInstitute({user}: {user: UserData}) {
239
324
  export function useInstituteStudent({user}: {user: UserData}) {
240
325
  if (!user || user?.product !== "institutes" || user.userType !== "Students") return {error: "Unauthorized"};
241
326
 
242
- const {contacts, placements, applications} = useStudent({user});
327
+ const {contacts, placements, applications, files} = useStudent({user});
243
328
  const [cohorts, setCohorts] = useState<{[key:string]: CohortData}>();
244
329
  const firebaseQuery = new FirebaseQuery();
245
330
  const {userGroups, forms, institute} = useInstitute({user})
246
- const logs = useAppSelector((state) => state.logs)
247
- const dispatch = useAppDispatch()
331
+ const [logs, setLogs] = useState<{[key: string]: DocumentData}>({})
332
+ // const dispatch = useAppDispatch()
248
333
 
249
334
  useEffect(() => {
250
335
  const isAdmin = user.userGroup === "admin";
@@ -284,21 +369,88 @@ export function useInstituteStudent({user}: {user: UserData}) {
284
369
  return listings
285
370
  }
286
371
 
287
- const fetchLogData = (placementId: string, selectedDate: string) => {
288
- dispatch(fetchLogs({ placementId, selectedDate }));
289
- };
372
+ const fetchLogs = async (placementId: string, selectedDate: string) => {
373
+ try {
374
+ const data = await firebaseQuery.getDocData(["logs", `${placementId}-${selectedDate}`])
375
+ setLogs(prev => ({...prev, [selectedDate]: data || {}}))
376
+
377
+ } catch {
378
+ console.log("No log error")
379
+ setLogs(prev => ({...prev, [selectedDate]: {}}))
380
+ }
381
+ }
290
382
 
291
- const saveLogData = (value: any[] | { [key: string]: unknown }, selectedDate: string, userType: string, placementId: string) => {
292
- dispatch(editLog({ value, selectedDate, userType, placementId }));
383
+ const saveLog = async (value: any[] | {[key: string]: unknown}, selectedDate: string, userType: string, placementId: string) => {
384
+ const empty =
385
+ (Array.isArray(value) && value.length === 0) ||
386
+ (Object.entries(Object.values(value)[0] as { [key: string]: unknown })
387
+ .filter(([k, v]) => (![`${userType}Uid`, "completed"].includes(k)) && v)
388
+ .length === 0);
389
+
390
+ const updatedValue = empty
391
+ ? null
392
+ : Array.isArray(value)
393
+ ? value
394
+ : Object.values(value)[0];
395
+
396
+ await firebaseQuery.set(
397
+ ["logs", `${placementId}-${selectedDate}`],
398
+ { [userType]: updatedValue },
399
+ true
400
+ );
401
+
402
+ await firebaseQuery.update(
403
+ ["placements", placementId],
404
+ { [userType + "Logs"]: empty ? arrayRemove(selectedDate) : arrayUnion(selectedDate) }
405
+ );
406
+ const updatedLog = {
407
+ ...logs[selectedDate],
408
+ [userType]: updatedValue,
293
409
  };
294
410
 
295
- const addLogFileData = (files: { file: FileList }, userType: string, selectedDate: string, placementId: string) => {
296
- dispatch(addLogFile({ files, userType, selectedDate, placementId }));
297
- };
411
+ setLogs(prev => ({ ...prev, [selectedDate]: updatedLog }));
412
+ }
298
413
 
299
- const deleteLogFileData = (openFile: { name: string, url: string }, userType: string, selectedDate: string, placementId: string) => {
300
- dispatch(deleteLogFile({ openFile, userType, selectedDate, placementId }));
301
- };
414
+ const addLogFile = async (files: {file: FileList}, userType: string, selectedDate: string, placementId: string) => {
415
+ const newFileNames = Array.from(files.file).map(file => file.name);
416
+
417
+ await uploadFiles(
418
+ Array.from(files.file),
419
+ ["placements", placementId, "log", `${userType}_files`, selectedDate]
420
+ );
421
+
422
+ await firebaseQuery.set(
423
+ ["logs", `${placementId}-${selectedDate}`],
424
+ { [`${userType}_files`]: arrayUnion(...newFileNames) },
425
+ true
426
+ );
427
+ setLogs(prevLogs => {
428
+ const currentLog = prevLogs[selectedDate] || {};
429
+ const updatedFiles = [...(currentLog[`${userType}_files`] || []), ...newFileNames];
430
+ return {
431
+ ...prevLogs,
432
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
433
+ };
434
+ });
435
+ }
436
+
437
+ const deleteLogFile = async (openFile: {name: string, url: string}, userType: string, selectedDate: string, placementId: string) => {
438
+ await deleteStorageItem(`placements/${placementId}/log/${userType}_files/${selectedDate}/${openFile.name}`);
439
+ await firebaseQuery.set(
440
+ ["logs", `${placementId}-${selectedDate}`],
441
+ { [`${userType}_files`]: arrayRemove(openFile.name) },
442
+ true
443
+ );
444
+
445
+ setLogs(prevLogs => {
446
+ const currentLog = prevLogs[selectedDate] || {};
447
+ const updatedFiles = currentLog[`${userType}_files`]?.filter((file: string) => file !== openFile.name) || [];
448
+ return {
449
+ ...prevLogs,
450
+ [selectedDate]: { ...currentLog, [`${userType}_files`]: updatedFiles }
451
+ };
452
+ });
453
+ }
302
454
 
303
455
 
304
456
  return {
@@ -310,13 +462,13 @@ export function useInstituteStudent({user}: {user: UserData}) {
310
462
  cohorts,
311
463
  applications,
312
464
  getPlacementListings,
465
+ files,
313
466
  logs: {
314
- status: logs.status,
315
467
  values: logs,
316
- fetchLogs: fetchLogData,
317
- saveLog: saveLogData,
318
- addLogFile: addLogFileData,
319
- deleteLogFile: deleteLogFileData
468
+ fetchLogs,
469
+ saveLog,
470
+ addLogFile,
471
+ deleteLogFile
320
472
  }
321
473
 
322
474
  }