placementt-core 1.20.225 → 1.20.227

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.
package/lib/config.d.ts CHANGED
@@ -19,6 +19,12 @@ export declare const store: import("@reduxjs/toolkit/dist/configureStore").Toolk
19
19
  [jobId: string]: import("./features/jobs/jobsSlice").Job;
20
20
  };
21
21
  };
22
+ logs: {
23
+ status: string;
24
+ values: {
25
+ [key: string]: import("@firebase/firestore").DocumentData;
26
+ };
27
+ };
22
28
  } & import("redux-persist/es/persistReducer").PersistPartial, import("redux").AnyAction, import("@reduxjs/toolkit").MiddlewareArray<[import("@reduxjs/toolkit").ThunkMiddleware<import("redux").EmptyObject & {
23
29
  upcomingStudentPlacements: import("./features/placements/studentPlacements/upcomingStudentPlacementsSlice").UpcomingPlacementState;
24
30
  completedStudentPlacements: import("./features/placements/types").PlacementState;
@@ -40,6 +46,12 @@ export declare const store: import("@reduxjs/toolkit/dist/configureStore").Toolk
40
46
  [jobId: string]: import("./features/jobs/jobsSlice").Job;
41
47
  };
42
48
  };
49
+ logs: {
50
+ status: string;
51
+ values: {
52
+ [key: string]: import("@firebase/firestore").DocumentData;
53
+ };
54
+ };
43
55
  } & import("redux-persist/es/persistReducer").PersistPartial, import("redux").AnyAction>]>>;
44
56
  export type RootStateType = ReturnType<typeof store.getState>;
45
57
  export type RootState = {
@@ -48,5 +60,6 @@ export type RootState = {
48
60
  activePlacement: RootStateType["activePlacement"];
49
61
  contacts: RootStateType["contacts"];
50
62
  jobs: RootStateType["jobs"];
63
+ logs: RootStateType["logs"];
51
64
  };
52
65
  export type AppDispatch = typeof store.dispatch;
package/lib/config.js CHANGED
@@ -12,6 +12,7 @@ const upcomingStudentPlacementsSlice_1 = __importDefault(require("./features/pla
12
12
  const completedStudentPlacementsSlice_1 = __importDefault(require("./features/placements/studentPlacements/completedStudentPlacementsSlice"));
13
13
  const contactsSlice_1 = __importDefault(require("./features/contacts/contactsSlice"));
14
14
  const activePlacement_1 = __importDefault(require("./features/placements/studentPlacements/activePlacement"));
15
+ const logsSlice_1 = __importDefault(require("./features/logs/logsSlice"));
15
16
  const async_storage_1 = __importDefault(require("@react-native-async-storage/async-storage"));
16
17
  const persistConfig = {
17
18
  key: "root",
@@ -23,7 +24,8 @@ const reducers = (0, redux_1.combineReducers)({
23
24
  completedStudentPlacements: completedStudentPlacementsSlice_1.default,
24
25
  contacts: contactsSlice_1.default,
25
26
  activePlacement: activePlacement_1.default,
26
- jobs: jobsSlice_1.default
27
+ jobs: jobsSlice_1.default,
28
+ logs: logsSlice_1.default,
27
29
  });
28
30
  const persistedReducers = (0, redux_persist_1.persistReducer)(persistConfig, reducers);
29
31
  exports.store = (0, toolkit_1.configureStore)({
package/lib/config.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA+C;AAC/C,iCAAqC;AACrC,iDAA4C;AAC5C,0EAAmD;AACnD,4IAAqH;AACrH,8IAAuH;AACvH,sFAA+D;AAC/D,8GAA4F;AAC5F,8FAAoE;AAGpE,MAAM,aAAa,GAAG;IAClB,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,uBAAY;CACtB,CAAA;AAEH,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC;IAC/B,yBAAyB,EAAE,wCAAgC;IAC3D,0BAA0B,EAAE,yCAAiC;IAC7D,QAAQ,EAAE,uBAAe;IACzB,eAAe,EAAE,yBAAsB;IACvC,IAAI,EAAE,mBAAW;CAClB,CAAC,CAAC;AAGH,MAAM,iBAAiB,GAAG,IAAA,8BAAc,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAGrD,QAAA,KAAK,GAAG,IAAA,wBAAc,EAAC;IAClC,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAC/C,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CACrC,oBAAoB,CAAC;QACnB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;KACzB,CAAC;CAEH,CAAC,CAAC"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;;;;AAAA,8CAA+C;AAC/C,iCAAqC;AACrC,iDAA4C;AAC5C,0EAAmD;AACnD,4IAAqH;AACrH,8IAAuH;AACvH,sFAA+D;AAC/D,8GAA4F;AAC5F,0EAAmD;AACnD,8FAAoE;AAGpE,MAAM,aAAa,GAAG;IAClB,GAAG,EAAE,MAAM;IACX,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,uBAAY;CACtB,CAAA;AAEH,MAAM,QAAQ,GAAG,IAAA,uBAAe,EAAC;IAC/B,yBAAyB,EAAE,wCAAgC;IAC3D,0BAA0B,EAAE,yCAAiC;IAC7D,QAAQ,EAAE,uBAAe;IACzB,eAAe,EAAE,yBAAsB;IACvC,IAAI,EAAE,mBAAW;IACjB,IAAI,EAAE,mBAAW;CAClB,CAAC,CAAC;AAGH,MAAM,iBAAiB,GAAG,IAAA,8BAAc,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;AAGrD,QAAA,KAAK,GAAG,IAAA,wBAAc,EAAC;IAClC,OAAO,EAAE,iBAAiB;IAC1B,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY;IAC/C,UAAU,EAAE,CAAC,oBAAoB,EAAE,EAAE,CACrC,oBAAoB,CAAC;QACnB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;KACzB,CAAC;CAEH,CAAC,CAAC"}
@@ -0,0 +1,93 @@
1
+ import { DocumentData } from "firebase/firestore";
2
+ type InitialLogsState = {
3
+ status: string;
4
+ values: {
5
+ [key: string]: DocumentData;
6
+ };
7
+ };
8
+ export declare const fetchLogs: import("@reduxjs/toolkit").AsyncThunk<{
9
+ data: DocumentData;
10
+ selectedDate: string;
11
+ }, {
12
+ placementId: string;
13
+ selectedDate: string;
14
+ }, {
15
+ state?: unknown;
16
+ dispatch?: import("redux").Dispatch;
17
+ extra?: unknown;
18
+ rejectValue?: unknown;
19
+ serializedErrorType?: unknown;
20
+ pendingMeta?: unknown;
21
+ fulfilledMeta?: unknown;
22
+ rejectedMeta?: unknown;
23
+ }>;
24
+ export declare const editLog: import("@reduxjs/toolkit").AsyncThunk<{
25
+ data: unknown;
26
+ selectedDate: string;
27
+ userType: string;
28
+ }, {
29
+ value: any[] | {
30
+ [key: string]: unknown;
31
+ };
32
+ selectedDate: string;
33
+ userType: string;
34
+ placementId: string;
35
+ }, {
36
+ state?: unknown;
37
+ dispatch?: import("redux").Dispatch;
38
+ extra?: unknown;
39
+ rejectValue?: unknown;
40
+ serializedErrorType?: unknown;
41
+ pendingMeta?: unknown;
42
+ fulfilledMeta?: unknown;
43
+ rejectedMeta?: unknown;
44
+ }>;
45
+ export declare const addFile: import("@reduxjs/toolkit").AsyncThunk<{
46
+ data: string[];
47
+ userType: string;
48
+ selectedDate: string;
49
+ }, {
50
+ files: {
51
+ file: FileList;
52
+ };
53
+ userType: string;
54
+ selectedDate: string;
55
+ placementId: string;
56
+ }, {
57
+ state?: unknown;
58
+ dispatch?: import("redux").Dispatch;
59
+ extra?: unknown;
60
+ rejectValue?: unknown;
61
+ serializedErrorType?: unknown;
62
+ pendingMeta?: unknown;
63
+ fulfilledMeta?: unknown;
64
+ rejectedMeta?: unknown;
65
+ }>;
66
+ export declare const deleteFile: import("@reduxjs/toolkit").AsyncThunk<{
67
+ openFile: {
68
+ name: string;
69
+ url: string;
70
+ };
71
+ userType: string;
72
+ selectedDate: string;
73
+ }, {
74
+ openFile: {
75
+ name: string;
76
+ url: string;
77
+ };
78
+ userType: string;
79
+ selectedDate: string;
80
+ placementId: string;
81
+ }, {
82
+ state?: unknown;
83
+ dispatch?: import("redux").Dispatch;
84
+ extra?: unknown;
85
+ rejectValue?: unknown;
86
+ serializedErrorType?: unknown;
87
+ pendingMeta?: unknown;
88
+ fulfilledMeta?: unknown;
89
+ rejectedMeta?: unknown;
90
+ }>;
91
+ export declare const logsSlice: import("@reduxjs/toolkit").Slice<InitialLogsState, {}, "logs">;
92
+ declare const _default: import("redux").Reducer<InitialLogsState>;
93
+ export default _default;
@@ -0,0 +1,146 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.logsSlice = exports.deleteFile = exports.addFile = exports.editLog = exports.fetchLogs = void 0;
7
+ const toolkit_1 = require("@reduxjs/toolkit");
8
+ const firebaseQuery_1 = __importDefault(require("../../firebase/firebaseQuery"));
9
+ const firestore_1 = require("firebase/firestore");
10
+ const writeDatabase_1 = require("../../firebase/writeDatabase");
11
+ const initialState = {
12
+ status: "",
13
+ values: {}
14
+ };
15
+ exports.fetchLogs = (0, toolkit_1.createAsyncThunk)("logs/fetchLogs", async ({ placementId, selectedDate }, { rejectWithValue }) => {
16
+ const firebaseQuery = new firebaseQuery_1.default();
17
+ try {
18
+ const data = await firebaseQuery.getDocData(["logs", `${placementId}-${selectedDate}`]);
19
+ return { "data": data, "selectedDate": selectedDate };
20
+ }
21
+ catch (error) {
22
+ return { "data": {}, "selectedDate": selectedDate };
23
+ }
24
+ });
25
+ exports.editLog = (0, toolkit_1.createAsyncThunk)("logs/editLog", async ({ value, selectedDate, userType, placementId }, { rejectWithValue }) => {
26
+ const firebaseQuery = new firebaseQuery_1.default();
27
+ try {
28
+ const empty = (Array.isArray(value) && value.length === 0) ||
29
+ (Object.entries(Object.values(value)[0])
30
+ .filter(([k, v]) => (![`${userType}Uid`, "completed"].includes(k)) && v)
31
+ .length === 0);
32
+ const updatedValue = empty
33
+ ? null
34
+ : Array.isArray(value)
35
+ ? value
36
+ : Object.values(value)[0];
37
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [userType]: updatedValue }, true);
38
+ await firebaseQuery.update(["placements", placementId], { [userType + "Logs"]: empty ? (0, firestore_1.arrayRemove)(selectedDate) : (0, firestore_1.arrayUnion)(selectedDate) });
39
+ return { "data": updatedValue, "selectedDate": selectedDate, "userType": userType };
40
+ }
41
+ catch (error) {
42
+ return rejectWithValue(error);
43
+ }
44
+ });
45
+ exports.addFile = (0, toolkit_1.createAsyncThunk)("logs/addFile", async ({ files, userType, selectedDate, placementId }, { rejectWithValue }) => {
46
+ const firebaseQuery = new firebaseQuery_1.default();
47
+ try {
48
+ const newFileNames = Array.from(files.file).map(file => file.name);
49
+ await (0, writeDatabase_1.uploadFiles)(Array.from(files.file), ["placements", placementId, "log", `${userType}_files`, selectedDate]);
50
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [`${userType}_files`]: (0, firestore_1.arrayUnion)(...newFileNames) }, true);
51
+ return { "data": newFileNames, "userType": userType, "selectedDate": selectedDate };
52
+ }
53
+ catch (error) {
54
+ return rejectWithValue(error);
55
+ }
56
+ });
57
+ exports.deleteFile = (0, toolkit_1.createAsyncThunk)("logs/deleteFile", async ({ openFile, userType, selectedDate, placementId }, { rejectWithValue }) => {
58
+ const firebaseQuery = new firebaseQuery_1.default();
59
+ try {
60
+ await (0, writeDatabase_1.deleteStorageItem)(`placements/${placementId}/log/${userType}_files/${selectedDate}/${openFile.name}`);
61
+ await firebaseQuery.set(["logs", `${placementId}-${selectedDate}`], { [`${userType}_files`]: (0, firestore_1.arrayRemove)(openFile.name) }, true);
62
+ return { "openFile": openFile, "userType": userType, "selectedDate": selectedDate };
63
+ }
64
+ catch (error) {
65
+ return rejectWithValue(error);
66
+ }
67
+ });
68
+ exports.logsSlice = (0, toolkit_1.createSlice)({
69
+ name: "logs",
70
+ initialState,
71
+ reducers: {},
72
+ extraReducers(builder) {
73
+ builder
74
+ .addCase(exports.fetchLogs.pending, (state) => {
75
+ state.status = "loading";
76
+ })
77
+ .addCase(exports.fetchLogs.fulfilled, (state, action) => {
78
+ state.status = "success";
79
+ const { data, selectedDate } = action.payload;
80
+ state.values = { ...state.values, [selectedDate]: data };
81
+ })
82
+ .addCase(exports.fetchLogs.rejected, (state) => {
83
+ state.status = "rejected";
84
+ });
85
+ builder
86
+ .addCase(exports.editLog.pending, (state) => {
87
+ state.status = "loading";
88
+ })
89
+ .addCase(exports.editLog.fulfilled, (state, action) => {
90
+ state.status = "success";
91
+ const { data, selectedDate, userType } = action.payload;
92
+ const updatedLog = {
93
+ ...state.values,
94
+ [userType]: data
95
+ };
96
+ state.values = { ...state.values, [selectedDate]: updatedLog };
97
+ })
98
+ .addCase(exports.editLog.rejected, (state) => {
99
+ state.status = "rejected";
100
+ });
101
+ builder
102
+ .addCase(exports.addFile.pending, (state) => {
103
+ state.status = "loading";
104
+ })
105
+ .addCase(exports.addFile.fulfilled, (state, action) => {
106
+ var _a;
107
+ state.status = "success";
108
+ const { data, selectedDate, userType } = action.payload;
109
+ const currentFiles = ((_a = state.values[selectedDate]) === null || _a === void 0 ? void 0 : _a[`${userType}_files`]) || [];
110
+ const updatedFiles = [...currentFiles, ...data];
111
+ state.values = {
112
+ ...state.values,
113
+ [selectedDate]: {
114
+ ...state.values[selectedDate],
115
+ [`${userType}_files`]: updatedFiles
116
+ }
117
+ };
118
+ })
119
+ .addCase(exports.addFile.rejected, (state) => {
120
+ state.status = "rejected";
121
+ });
122
+ builder
123
+ .addCase(exports.deleteFile.pending, (state) => {
124
+ state.status = "loading";
125
+ })
126
+ .addCase(exports.deleteFile.fulfilled, (state, action) => {
127
+ var _a;
128
+ state.status = "success";
129
+ const { openFile, selectedDate, userType } = action.payload;
130
+ const currentLog = state.values[selectedDate] || {};
131
+ const updatedFiles = ((_a = currentLog[`${userType}_files`]) === null || _a === void 0 ? void 0 : _a.filter((file) => file !== openFile.name)) || [];
132
+ state.values = {
133
+ ...state.values,
134
+ [selectedDate]: {
135
+ ...currentLog,
136
+ [`${userType}_files`]: updatedFiles
137
+ }
138
+ };
139
+ })
140
+ .addCase(exports.deleteFile.rejected, (state) => {
141
+ state.status = "rejected";
142
+ });
143
+ }
144
+ });
145
+ exports.default = exports.logsSlice.reducer;
146
+ //# sourceMappingURL=logsSlice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logsSlice.js","sourceRoot":"","sources":["../../../src/features/logs/logsSlice.ts"],"names":[],"mappings":"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"}
package/lib/index.d.ts CHANGED
@@ -22,6 +22,7 @@ export * from "./features/contacts/contactsSlice";
22
22
  export * from "./features/placements/studentPlacements/upcomingStudentPlacementsSlice";
23
23
  export * from "./features/placements/studentPlacements/completedStudentPlacementsSlice";
24
24
  export * from "./features/placements/studentPlacements/useStudentPlacements";
25
+ export * from "./features/logs/logsSlice";
25
26
  export * from "./features/referrals/useReferrals";
26
27
  export * from "./features/updates/useUpdates";
27
28
  export * from "./features/global/users/useUserFunctions";
package/lib/index.js CHANGED
@@ -38,6 +38,7 @@ __exportStar(require("./features/contacts/contactsSlice"), exports);
38
38
  __exportStar(require("./features/placements/studentPlacements/upcomingStudentPlacementsSlice"), exports);
39
39
  __exportStar(require("./features/placements/studentPlacements/completedStudentPlacementsSlice"), exports);
40
40
  __exportStar(require("./features/placements/studentPlacements/useStudentPlacements"), exports);
41
+ __exportStar(require("./features/logs/logsSlice"), exports);
41
42
  __exportStar(require("./features/referrals/useReferrals"), exports);
42
43
  __exportStar(require("./features/updates/useUpdates"), exports);
43
44
  __exportStar(require("./features/global/users/useUserFunctions"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,iDAA+B;AAC/B,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,oEAAkD;AAClD,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,wDAAsC;AACtC,+CAA4B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AACA,sDAAoC;AACpC,0DAAwC;AACxC,2DAAyC;AACzC,kDAAgC;AAChC,4DAA0C;AAC1C,2DAAyC;AAEzC,oDAAkC;AAClC,iDAA+B;AAC/B,8CAA4B;AAC5B,0CAAwB;AACxB,yCAAuB;AACvB,4DAA0C;AAC1C,kDAAgC;AAChC,iDAA+B;AAC/B,2CAAyB;AACzB,4DAA0C;AAC1C,oEAAiD;AACjD,yEAAuD;AACvD,kEAAgD;AAChD,kEAAgD;AAChD,oEAAkD;AAClD,yGAAuF;AACvF,0GAAwF;AACxF,+FAA6E;AAC7E,4DAA0C;AAC1C,oEAAkD;AAClD,gEAA8C;AAC9C,2EAAyD;AACzD,6CAA2B;AAC3B,wDAAsC;AACtC,+CAA4B"}
@@ -25,6 +25,12 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<i
25
25
  [jobId: string]: Job;
26
26
  };
27
27
  };
28
+ logs: {
29
+ status: string;
30
+ values: {
31
+ [key: string]: DocumentData;
32
+ };
33
+ };
28
34
  } & import("redux-persist/es/persistReducer").PersistPartial, undefined, import("redux").AnyAction> & import("redux").Dispatch<import("redux").AnyAction>;
29
35
  export declare function useStudent({ user }: {
30
36
  user: UserData;
@@ -237,6 +243,7 @@ export declare function useInstituteStudent({ user }: {
237
243
  cohorts?: undefined;
238
244
  applications?: undefined;
239
245
  getPlacementListings?: undefined;
246
+ logs?: undefined;
240
247
  } | {
241
248
  contacts: {
242
249
  add: (contactForm: Contact) => Promise<import("@reduxjs/toolkit").PayloadAction<Contact, string, {
@@ -363,6 +370,147 @@ export declare function useInstituteStudent({ user }: {
363
370
  getPlacementListings: () => Promise<{
364
371
  [k: string]: PlacementListing;
365
372
  }>;
373
+ logs: {
374
+ status: string;
375
+ values: {
376
+ [key: string]: DocumentData;
377
+ };
378
+ fetch: (placementId: string, selectedDate: string) => Promise<import("@reduxjs/toolkit").PayloadAction<{
379
+ data: DocumentData;
380
+ selectedDate: string;
381
+ }, string, {
382
+ arg: {
383
+ placementId: string;
384
+ selectedDate: string;
385
+ };
386
+ requestId: string;
387
+ requestStatus: "fulfilled";
388
+ }, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
389
+ arg: {
390
+ placementId: string;
391
+ selectedDate: string;
392
+ };
393
+ requestId: string;
394
+ requestStatus: "rejected";
395
+ aborted: boolean;
396
+ condition: boolean;
397
+ } & ({
398
+ rejectedWithValue: true;
399
+ } | ({
400
+ rejectedWithValue: false;
401
+ } & {})), import("@reduxjs/toolkit").SerializedError>>;
402
+ save: (value: any[] | {
403
+ [key: string]: unknown;
404
+ }, selectedDate: string, userType: string, placementId: string) => Promise<import("@reduxjs/toolkit").PayloadAction<{
405
+ data: unknown;
406
+ selectedDate: string;
407
+ userType: string;
408
+ }, string, {
409
+ arg: {
410
+ value: any[] | {
411
+ [key: string]: unknown;
412
+ };
413
+ selectedDate: string;
414
+ userType: string;
415
+ placementId: string;
416
+ };
417
+ requestId: string;
418
+ requestStatus: "fulfilled";
419
+ }, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
420
+ arg: {
421
+ value: any[] | {
422
+ [key: string]: unknown;
423
+ };
424
+ selectedDate: string;
425
+ userType: string;
426
+ placementId: string;
427
+ };
428
+ requestId: string;
429
+ requestStatus: "rejected";
430
+ aborted: boolean;
431
+ condition: boolean;
432
+ } & ({
433
+ rejectedWithValue: true;
434
+ } | ({
435
+ rejectedWithValue: false;
436
+ } & {})), import("@reduxjs/toolkit").SerializedError>>;
437
+ saveFile: (files: {
438
+ file: FileList;
439
+ }, userType: string, selectedDate: string, placementId: string) => Promise<import("@reduxjs/toolkit").PayloadAction<{
440
+ data: string[];
441
+ userType: string;
442
+ selectedDate: string;
443
+ }, string, {
444
+ arg: {
445
+ files: {
446
+ file: FileList;
447
+ };
448
+ userType: string;
449
+ selectedDate: string;
450
+ placementId: string;
451
+ };
452
+ requestId: string;
453
+ requestStatus: "fulfilled";
454
+ }, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
455
+ arg: {
456
+ files: {
457
+ file: FileList;
458
+ };
459
+ userType: string;
460
+ selectedDate: string;
461
+ placementId: string;
462
+ };
463
+ requestId: string;
464
+ requestStatus: "rejected";
465
+ aborted: boolean;
466
+ condition: boolean;
467
+ } & ({
468
+ rejectedWithValue: true;
469
+ } | ({
470
+ rejectedWithValue: false;
471
+ } & {})), import("@reduxjs/toolkit").SerializedError>>;
472
+ removeFile: (openFile: {
473
+ name: string;
474
+ url: string;
475
+ }, userType: string, selectedDate: string, placementId: string) => Promise<import("@reduxjs/toolkit").PayloadAction<{
476
+ openFile: {
477
+ name: string;
478
+ url: string;
479
+ };
480
+ userType: string;
481
+ selectedDate: string;
482
+ }, string, {
483
+ arg: {
484
+ openFile: {
485
+ name: string;
486
+ url: string;
487
+ };
488
+ userType: string;
489
+ selectedDate: string;
490
+ placementId: string;
491
+ };
492
+ requestId: string;
493
+ requestStatus: "fulfilled";
494
+ }, never> | import("@reduxjs/toolkit").PayloadAction<unknown, string, {
495
+ arg: {
496
+ openFile: {
497
+ name: string;
498
+ url: string;
499
+ };
500
+ userType: string;
501
+ selectedDate: string;
502
+ placementId: string;
503
+ };
504
+ requestId: string;
505
+ requestStatus: "rejected";
506
+ aborted: boolean;
507
+ condition: boolean;
508
+ } & ({
509
+ rejectedWithValue: true;
510
+ } | ({
511
+ rejectedWithValue: false;
512
+ } & {})), import("@reduxjs/toolkit").SerializedError>>;
513
+ };
366
514
  error?: undefined;
367
515
  };
368
516
  export declare function useProvider({ user }: {
package/lib/reduxHooks.js CHANGED
@@ -20,6 +20,7 @@ const upcomingStudentPlacementsSlice_1 = require("./features/placements/studentP
20
20
  const firebaseQuery_1 = __importDefault(require("./firebase/firebaseQuery"));
21
21
  const readDatabase_1 = require("./firebase/readDatabase");
22
22
  const util_1 = require("./firebase/util");
23
+ const logsSlice_1 = require("./features/logs/logsSlice");
23
24
  exports.useAppSelector = react_redux_1.useSelector;
24
25
  const useAppDispatch = () => (0, react_redux_1.useDispatch)();
25
26
  exports.useAppDispatch = useAppDispatch;
@@ -222,6 +223,8 @@ function useInstituteStudent({ user }) {
222
223
  const [cohorts, setCohorts] = (0, react_1.useState)();
223
224
  const firebaseQuery = new firebaseQuery_1.default();
224
225
  const { userGroups, forms, institute } = useInstitute({ user });
226
+ const logs = (0, exports.useAppSelector)((state) => state.logs);
227
+ const dispatch = (0, exports.useAppDispatch)();
225
228
  (0, react_1.useEffect)(() => {
226
229
  const isAdmin = user.userGroup === "admin";
227
230
  const canViewCohorts = user.viewCohorts !== "none";
@@ -266,6 +269,14 @@ function useInstituteStudent({ user }) {
266
269
  cohorts,
267
270
  applications,
268
271
  getPlacementListings,
272
+ logs: {
273
+ status: logs.status,
274
+ values: logs.values,
275
+ fetch: async (placementId, selectedDate) => dispatch((0, logsSlice_1.fetchLogs)({ placementId, selectedDate })),
276
+ save: async (value, selectedDate, userType, placementId) => dispatch((0, logsSlice_1.editLog)({ value, selectedDate, userType, placementId })),
277
+ saveFile: async (files, userType, selectedDate, placementId) => dispatch((0, logsSlice_1.addFile)({ files, userType, selectedDate, placementId })),
278
+ removeFile: async (openFile, userType, selectedDate, placementId) => dispatch((0, logsSlice_1.deleteFile)({ openFile, userType, selectedDate, placementId }))
279
+ }
269
280
  };
270
281
  }
271
282
  function useProvider({ user }) {
@@ -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.225",
5
+ "version": "1.20.227",
6
6
  "main": "lib/index.js",
7
7
  "types": "lib/index.d.ts",
8
8
  "scripts": {
package/src/config.ts CHANGED
@@ -6,6 +6,7 @@ import upcomingStudentPlacementsReducer from "./features/placements/studentPlace
6
6
  import completedStudentPlacementsReducer from "./features/placements/studentPlacements/completedStudentPlacementsSlice"
7
7
  import contactsReducer from "./features/contacts/contactsSlice"
8
8
  import activePlacementReducer from "./features/placements/studentPlacements/activePlacement"
9
+ import logsReducer from "./features/logs/logsSlice"
9
10
  import AsyncStorage from '@react-native-async-storage/async-storage'
10
11
 
11
12
 
@@ -20,7 +21,8 @@ const reducers = combineReducers({
20
21
  completedStudentPlacements: completedStudentPlacementsReducer,
21
22
  contacts: contactsReducer,
22
23
  activePlacement: activePlacementReducer,
23
- jobs: jobsReducer
24
+ jobs: jobsReducer,
25
+ logs: logsReducer,
24
26
  });
25
27
 
26
28
 
@@ -44,7 +46,8 @@ export type RootState = {
44
46
  completedStudentPlacements: RootStateType["completedStudentPlacements"],
45
47
  activePlacement: RootStateType["activePlacement"],
46
48
  contacts: RootStateType["contacts"],
47
- jobs: RootStateType["jobs"]
49
+ jobs: RootStateType["jobs"],
50
+ logs: RootStateType["logs"],
48
51
  }
49
52
 
50
53
 
@@ -0,0 +1,208 @@
1
+ import {createSlice, createAsyncThunk} from "@reduxjs/toolkit";
2
+ import FirebaseQuery from "../../firebase/firebaseQuery";
3
+ import { arrayRemove, arrayUnion, DocumentData } from "firebase/firestore";
4
+ import { deleteStorageItem, uploadFiles } from "../../firebase/writeDatabase";
5
+
6
+ type InitialLogsState = {
7
+ status: string,
8
+ values: {
9
+ [key: string]: DocumentData
10
+ }
11
+ }
12
+
13
+ const initialState: InitialLogsState = {
14
+ status: "",
15
+ values: {}
16
+ };
17
+
18
+ export const fetchLogs = createAsyncThunk(
19
+ "logs/fetchLogs",
20
+ async ({placementId, selectedDate}: {placementId: string, selectedDate: string}, { rejectWithValue }) => {
21
+ const firebaseQuery = new FirebaseQuery();
22
+ try {
23
+ const data = await firebaseQuery.getDocData(["logs", `${placementId}-${selectedDate}`])
24
+ return {"data": data, "selectedDate": selectedDate}
25
+
26
+ } catch (error) {
27
+ return {"data": {}, "selectedDate": selectedDate}
28
+ }
29
+ }
30
+ );
31
+
32
+ export const editLog = createAsyncThunk(
33
+ "logs/editLog",
34
+ async ({value, selectedDate, userType, placementId}: {value: any[] | {[key: string]: unknown}, selectedDate: string, userType: string, placementId: string}, { rejectWithValue }) => {
35
+ const firebaseQuery = new FirebaseQuery();
36
+ try {
37
+ const empty =
38
+ (Array.isArray(value) && value.length === 0) ||
39
+ (Object.entries(Object.values(value)[0] as { [key: string]: unknown })
40
+ .filter(([k, v]) => (![`${userType}Uid`, "completed"].includes(k)) && v)
41
+ .length === 0);
42
+
43
+ const updatedValue = empty
44
+ ? null
45
+ : Array.isArray(value)
46
+ ? value
47
+ : Object.values(value)[0];
48
+
49
+ await firebaseQuery.set(
50
+ ["logs", `${placementId}-${selectedDate}`],
51
+ { [userType]: updatedValue },
52
+ true
53
+ );
54
+
55
+ await firebaseQuery.update(
56
+ ["placements", placementId],
57
+ { [userType + "Logs"]: empty ? arrayRemove(selectedDate) : arrayUnion(selectedDate) }
58
+ );
59
+ return {"data": updatedValue, "selectedDate": selectedDate, "userType": userType}
60
+
61
+ } catch (error) {
62
+ return rejectWithValue(error);
63
+ }
64
+ }
65
+ )
66
+
67
+ export const addFile = createAsyncThunk(
68
+ "logs/addFile",
69
+ async ({files, userType, selectedDate, placementId}: {files: {file: FileList}, userType: string, selectedDate: string, placementId: string}, { rejectWithValue }) => {
70
+ const firebaseQuery = new FirebaseQuery();
71
+
72
+ try {
73
+ const newFileNames = Array.from(files.file).map(file => file.name);
74
+ await uploadFiles(
75
+ Array.from(files.file),
76
+ ["placements", placementId, "log", `${userType}_files`, selectedDate]
77
+ );
78
+
79
+ await firebaseQuery.set(
80
+ ["logs", `${placementId}-${selectedDate}`],
81
+ { [`${userType}_files`]: arrayUnion(...newFileNames) },
82
+ true
83
+ );
84
+
85
+ return {"data": newFileNames, "userType": userType, "selectedDate": selectedDate}
86
+
87
+ } catch (error) {
88
+ return rejectWithValue(error);
89
+ }
90
+
91
+ }
92
+ )
93
+
94
+ export const deleteFile = createAsyncThunk(
95
+ "logs/deleteFile",
96
+ async ({openFile, userType, selectedDate, placementId}: {openFile: {name: string, url: string}, userType: string, selectedDate: string, placementId: string}, { rejectWithValue }) => {
97
+ const firebaseQuery = new FirebaseQuery();
98
+
99
+ try {
100
+ await deleteStorageItem(`placements/${placementId}/log/${userType}_files/${selectedDate}/${openFile.name}`);
101
+ await firebaseQuery.set(
102
+ ["logs", `${placementId}-${selectedDate}`],
103
+ { [`${userType}_files`]: arrayRemove(openFile.name) },
104
+ true
105
+ );
106
+ return {"openFile": openFile, "userType": userType, "selectedDate": selectedDate}
107
+
108
+ } catch (error) {
109
+ return rejectWithValue(error);
110
+ }
111
+
112
+ }
113
+ )
114
+
115
+ export const logsSlice = createSlice({
116
+ name: "logs",
117
+ initialState,
118
+
119
+ reducers: {},
120
+
121
+ extraReducers(builder){
122
+ builder
123
+ .addCase(fetchLogs.pending, (state) => {
124
+ state.status = "loading"
125
+ })
126
+
127
+ .addCase(fetchLogs.fulfilled, (state, action) => {
128
+ state.status = "success";
129
+ const {data, selectedDate} = action.payload
130
+ state.values = {...state.values, [selectedDate]: data}
131
+ })
132
+
133
+ .addCase(fetchLogs.rejected, (state) => {
134
+ state.status = "rejected"
135
+ })
136
+
137
+ builder
138
+ .addCase(editLog.pending, (state) => {
139
+ state.status = "loading"
140
+ })
141
+
142
+ .addCase(editLog.fulfilled, (state, action) => {
143
+ state.status = "success";
144
+ const {data, selectedDate, userType} = action.payload
145
+
146
+ const updatedLog = {
147
+ ...state.values,
148
+ [userType]: data
149
+ }
150
+ state.values = {...state.values, [selectedDate]: updatedLog}
151
+ })
152
+
153
+ .addCase(editLog.rejected, (state) => {
154
+ state.status = "rejected"
155
+ })
156
+
157
+ builder
158
+ .addCase(addFile.pending, (state) => {
159
+ state.status = "loading"
160
+ })
161
+
162
+ .addCase(addFile.fulfilled, (state, action) => {
163
+ state.status = "success";
164
+ const {data, selectedDate, userType} = action.payload;
165
+ const currentFiles = state.values[selectedDate]?.[`${userType}_files`] || [];
166
+ const updatedFiles = [...currentFiles, ...data];
167
+
168
+ state.values = {
169
+ ...state.values,
170
+ [selectedDate]: {
171
+ ...state.values[selectedDate],
172
+ [`${userType}_files`]: updatedFiles
173
+ }
174
+ };
175
+ })
176
+
177
+ .addCase(addFile.rejected, (state) => {
178
+ state.status = "rejected"
179
+ })
180
+
181
+
182
+ builder
183
+ .addCase(deleteFile.pending, (state) => {
184
+ state.status = "loading"
185
+ })
186
+
187
+ .addCase(deleteFile.fulfilled, (state, action) => {
188
+ state.status = "success";
189
+ const {openFile, selectedDate, userType} = action.payload;
190
+ const currentLog = state.values[selectedDate] || {}
191
+ const updatedFiles = currentLog[`${userType}_files`]?.filter((file: string) => file !== openFile.name) || [];
192
+
193
+ state.values = {
194
+ ...state.values,
195
+ [selectedDate]: {
196
+ ...currentLog,
197
+ [`${userType}_files`]: updatedFiles
198
+ }
199
+ };
200
+ })
201
+
202
+ .addCase(deleteFile.rejected, (state) => {
203
+ state.status = "rejected"
204
+ })
205
+ }
206
+ })
207
+
208
+ export default logsSlice.reducer;
package/src/index.ts CHANGED
@@ -24,6 +24,7 @@ export * from "./features/contacts/contactsSlice";
24
24
  export * from "./features/placements/studentPlacements/upcomingStudentPlacementsSlice";
25
25
  export * from "./features/placements/studentPlacements/completedStudentPlacementsSlice";
26
26
  export * from "./features/placements/studentPlacements/useStudentPlacements";
27
+ export * from "./features/logs/logsSlice";
27
28
  export * from "./features/referrals/useReferrals";
28
29
  export * from "./features/updates/useUpdates";
29
30
  export * from "./features/global/users/useUserFunctions";
package/src/reduxHooks.ts CHANGED
@@ -11,6 +11,7 @@ import FirebaseQuery from "./firebase/firebaseQuery"
11
11
  import { Address, Application, CohortData, Contact, EmailTemplate, InstituteData, PlacementListing, ProviderData, SavedPlacement, StudentPlacementData, UserData, UserGroupData } from "./typeDefinitions"
12
12
  import {getOrganisation, getPlacementsWhere} from "./firebase/readDatabase"
13
13
  import {convertDate} from "./firebase/util"
14
+ import { addFile, deleteFile, editLog, fetchLogs } from "./features/logs/logsSlice"
14
15
 
15
16
  export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
16
17
  export const useAppDispatch = () => useDispatch<AppDispatch>();
@@ -242,6 +243,8 @@ export function useInstituteStudent({user}: {user: UserData}) {
242
243
  const [cohorts, setCohorts] = useState<{[key:string]: CohortData}>();
243
244
  const firebaseQuery = new FirebaseQuery();
244
245
  const {userGroups, forms, institute} = useInstitute({user})
246
+ const logs = useAppSelector((state) => state.logs)
247
+ const dispatch = useAppDispatch()
245
248
 
246
249
  useEffect(() => {
247
250
  const isAdmin = user.userGroup === "admin";
@@ -290,6 +293,15 @@ export function useInstituteStudent({user}: {user: UserData}) {
290
293
  cohorts,
291
294
  applications,
292
295
  getPlacementListings,
296
+ logs: {
297
+ status: logs.status,
298
+ values: logs.values,
299
+ fetch: async (placementId: string, selectedDate: string) => dispatch(fetchLogs({placementId, selectedDate})),
300
+ save: async (value: any[] | {[key: string]: unknown}, selectedDate: string, userType: string, placementId: string) => dispatch(editLog({value, selectedDate, userType, placementId})),
301
+ saveFile: async (files: {file: FileList}, userType: string, selectedDate: string, placementId: string) => dispatch(addFile({files, userType, selectedDate, placementId})),
302
+ removeFile: async (openFile: {name: string, url: string}, userType: string, selectedDate: string, placementId: string) => dispatch(deleteFile({openFile, userType, selectedDate, placementId}))
303
+ }
304
+
293
305
  }
294
306
 
295
307
  }