placementt-core 11.0.533 → 11.0.892

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.
Files changed (76) hide show
  1. package/lib/constants.d.ts +13 -1
  2. package/lib/constants.js +86 -1
  3. package/lib/constants.js.map +1 -1
  4. package/lib/features/analytics/useAnalytics.d.ts +2 -0
  5. package/lib/features/analytics/useAnalytics.js +22 -19
  6. package/lib/features/analytics/useAnalytics.js.map +1 -1
  7. package/lib/features/global/downtime/useDowntime.d.ts +1 -0
  8. package/lib/features/global/downtime/useDowntime.js +9 -7
  9. package/lib/features/global/downtime/useDowntime.js.map +1 -1
  10. package/lib/features/global/users/useUserFunctions.js +1 -1
  11. package/lib/features/global/users/useUserFunctions.js.map +1 -1
  12. package/lib/features/jobs/jobsSlice.d.ts +10 -2
  13. package/lib/features/jobs/jobsSlice.js +5 -2
  14. package/lib/features/jobs/jobsSlice.js.map +1 -1
  15. package/lib/features/placements/studentPlacements/activePlacement.d.ts +5 -1
  16. package/lib/features/placements/studentPlacements/activePlacement.js +7 -3
  17. package/lib/features/placements/studentPlacements/activePlacement.js.map +1 -1
  18. package/lib/features/placements/studentPlacements/completedStudentPlacementsSlice.d.ts +3 -2
  19. package/lib/features/placements/studentPlacements/completedStudentPlacementsSlice.js +4 -1
  20. package/lib/features/placements/studentPlacements/completedStudentPlacementsSlice.js.map +1 -1
  21. package/lib/features/placements/studentPlacements/upcomingStudentPlacementsSlice.d.ts +2 -2
  22. package/lib/features/placements/studentPlacements/upcomingStudentPlacementsSlice.js +1 -1
  23. package/lib/features/placements/studentPlacements/upcomingStudentPlacementsSlice.js.map +1 -1
  24. package/lib/features/placements/studentPlacements/useStudentPlacements.d.ts +2 -12
  25. package/lib/features/placements/studentPlacements/useStudentPlacements.js +1 -26
  26. package/lib/features/placements/studentPlacements/useStudentPlacements.js.map +1 -1
  27. package/lib/features/updates/useUpdates.d.ts +1 -0
  28. package/lib/features/updates/useUpdates.js +13 -12
  29. package/lib/features/updates/useUpdates.js.map +1 -1
  30. package/lib/firebase/firebase.d.ts +5 -3
  31. package/lib/firebase/firebase.js +23 -12
  32. package/lib/firebase/firebase.js.map +1 -1
  33. package/lib/firebase/firebaseConfig.js.map +1 -1
  34. package/lib/firebase/firebaseQuery.d.ts +6 -2
  35. package/lib/firebase/firebaseQuery.js +11 -3
  36. package/lib/firebase/firebaseQuery.js.map +1 -1
  37. package/lib/firebase/readDatabase.d.ts +2 -4
  38. package/lib/firebase/readDatabase.js +30 -5
  39. package/lib/firebase/readDatabase.js.map +1 -1
  40. package/lib/firebase/writeDatabase.d.ts +6 -2
  41. package/lib/firebase/writeDatabase.js +2 -1
  42. package/lib/firebase/writeDatabase.js.map +1 -1
  43. package/lib/hooks.d.ts +277 -192
  44. package/lib/hooks.js +1437 -704
  45. package/lib/hooks.js.map +1 -1
  46. package/lib/reduxHooks.d.ts +122 -5
  47. package/lib/reduxHooks.js +132 -29
  48. package/lib/reduxHooks.js.map +1 -1
  49. package/lib/tasksAndTips.d.ts +19 -7
  50. package/lib/tasksAndTips.js +637 -164
  51. package/lib/tasksAndTips.js.map +1 -1
  52. package/lib/typeDefinitions.d.ts +321 -110
  53. package/lib/util.d.ts +15 -3
  54. package/lib/util.js +47 -10
  55. package/lib/util.js.map +1 -1
  56. package/package.json +7 -4
  57. package/src/constants.ts +91 -3
  58. package/src/features/analytics/useAnalytics.tsx +25 -17
  59. package/src/features/global/downtime/useDowntime.tsx +11 -7
  60. package/src/features/global/users/useUserFunctions.tsx +1 -1
  61. package/src/features/jobs/jobsSlice.ts +9 -3
  62. package/src/features/placements/studentPlacements/activePlacement.ts +8 -3
  63. package/src/features/placements/studentPlacements/completedStudentPlacementsSlice.ts +5 -2
  64. package/src/features/placements/studentPlacements/upcomingStudentPlacementsSlice.ts +2 -2
  65. package/src/features/placements/studentPlacements/useStudentPlacements.tsx +4 -28
  66. package/src/features/updates/useUpdates.tsx +14 -12
  67. package/src/firebase/firebase.tsx +26 -15
  68. package/src/firebase/firebaseConfig.tsx +1 -1
  69. package/src/firebase/firebaseQuery.tsx +11 -3
  70. package/src/firebase/readDatabase.tsx +34 -6
  71. package/src/firebase/writeDatabase.tsx +3 -1
  72. package/src/hooks.tsx +1804 -935
  73. package/src/reduxHooks.ts +144 -32
  74. package/src/tasksAndTips.ts +689 -166
  75. package/src/typeDefinitions.ts +373 -109
  76. package/src/util.ts +63 -18
@@ -1,7 +1,7 @@
1
1
  import { TypedUseSelectorHook } from "react-redux";
2
2
  import { RootState } from "./config";
3
3
  import { Job } from "./features/jobs/jobsSlice";
4
- import { Address, Application, Contact, PlacementListing, ProviderData, StudentPlacementData, UserData } from "./typeDefinitions";
4
+ import { Address, Application, CohortData, Contact, EmailTemplate, InstituteData, PlacementListing, ProviderData, StudentPlacementData, UserData, UserGroupData } from "./typeDefinitions";
5
5
  export declare const useAppSelector: TypedUseSelectorHook<RootState>;
6
6
  export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<import("redux").EmptyObject & {
7
7
  upcomingStudentPlacements: import("./features/placements/studentPlacements/upcomingStudentPlacementsSlice").UpcomingPlacementState;
@@ -28,6 +28,7 @@ export declare const useAppDispatch: () => import("redux-thunk").ThunkDispatch<i
28
28
  export declare function useStudent({ user }: {
29
29
  user: UserData;
30
30
  }): {
31
+ error: string;
31
32
  contacts?: undefined;
32
33
  placements?: undefined;
33
34
  applications?: undefined;
@@ -102,13 +103,32 @@ export declare function useStudent({ user }: {
102
103
  [key: string]: unknown;
103
104
  };
104
105
  };
106
+ fetchContacts: () => void;
105
107
  getById: (item: string) => Promise<import("@firebase/firestore").DocumentData>;
106
108
  };
107
109
  placements: {
108
110
  add: (formData: StudentPlacementData) => Promise<void>;
109
- update: (placementId: string, data: StudentPlacementData) => Promise<void>;
111
+ update: (placementId: string, attributes: Partial<StudentPlacementData>) => Promise<void>;
110
112
  delete: (id: string) => Promise<void>;
113
+ getUserPlacements: () => Promise<void | import("@firebase/firestore").QuerySnapshot<import("@firebase/firestore").DocumentData> | {
114
+ [k: string]: any;
115
+ }>;
116
+ getPlacementsStart: (start: Date, end: Date) => Promise<{
117
+ [key: string]: StudentPlacementData;
118
+ }>;
119
+ getPlacementsEnd: (end: Date) => Promise<{
120
+ [key: string]: StudentPlacementData;
121
+ }>;
111
122
  activePlacement: StudentPlacementData | undefined;
123
+ editActivePlacement: (attributes: Partial<StudentPlacementData>) => {
124
+ payload: any;
125
+ type: "activePlacement/editActivePlacement";
126
+ };
127
+ updateActivePlacement: () => void;
128
+ updateUpcomingPlacement: () => void;
129
+ fetchUpcomingPlacements: () => void;
130
+ fetchCompletedPlacements: () => void;
131
+ dispatchActivePlacement: () => void;
112
132
  upcoming: StudentPlacementData | undefined;
113
133
  upcomingPlacements: {
114
134
  [key: string]: StudentPlacementData;
@@ -120,16 +140,23 @@ export declare function useStudent({ user }: {
120
140
  };
121
141
  applications: {
122
142
  [key: string]: Application & {
123
- listing: PlacementListing;
124
- provider: ProviderData;
143
+ listing: PlacementListing | false;
144
+ provider: ProviderData | false;
125
145
  address: Address;
126
146
  };
127
147
  } | undefined;
148
+ error?: undefined;
128
149
  };
129
150
  export declare function useInstituteStaff({ user }: {
130
151
  user: UserData;
131
152
  }): {
153
+ error: string;
132
154
  jobs?: undefined;
155
+ institute?: undefined;
156
+ userGroups?: undefined;
157
+ forms?: undefined;
158
+ cohorts?: undefined;
159
+ emailTemplates?: undefined;
133
160
  } | {
134
161
  jobs: {
135
162
  setJobs: (jobs: {
@@ -156,14 +183,58 @@ export declare function useInstituteStaff({ user }: {
156
183
  payload: any;
157
184
  type: "jobs/setJobStatus";
158
185
  }>;
186
+ updateJob: ({ jobId, data }: {
187
+ jobId: string;
188
+ data: string;
189
+ }) => Promise<{
190
+ payload: any;
191
+ type: "jobs/updateJob";
192
+ }>;
159
193
  getById: (id: string) => Promise<import("@firebase/firestore").DocumentData>;
160
194
  };
195
+ institute: InstituteData | undefined;
196
+ userGroups: {
197
+ [key: string]: UserGroupData;
198
+ } | undefined;
199
+ forms: {
200
+ [key: string]: unknown;
201
+ } | undefined;
202
+ cohorts: {
203
+ [key: string]: CohortData;
204
+ } | undefined;
205
+ emailTemplates: {
206
+ [key: string]: EmailTemplate;
207
+ } | undefined;
208
+ error?: undefined;
209
+ };
210
+ export declare function useInstitute({ user }: {
211
+ user: UserData;
212
+ }): {
213
+ error: string;
214
+ userGroups?: undefined;
215
+ forms?: undefined;
216
+ institute?: undefined;
217
+ } | {
218
+ userGroups: {
219
+ [key: string]: UserGroupData;
220
+ } | undefined;
221
+ forms: {
222
+ [key: string]: unknown;
223
+ } | undefined;
224
+ institute: InstituteData | undefined;
225
+ error?: undefined;
161
226
  };
162
227
  export declare function useInstituteStudent({ user }: {
163
228
  user: UserData;
164
229
  }): {
230
+ error: string;
165
231
  contacts?: undefined;
166
232
  placements?: undefined;
233
+ institute?: undefined;
234
+ userGroups?: undefined;
235
+ forms?: undefined;
236
+ cohorts?: undefined;
237
+ applications?: undefined;
167
238
  } | {
168
239
  contacts: {
169
240
  add: (contactForm: Contact) => Promise<import("@reduxjs/toolkit").PayloadAction<Contact, string, {
@@ -235,13 +306,32 @@ export declare function useInstituteStudent({ user }: {
235
306
  [key: string]: unknown;
236
307
  };
237
308
  };
309
+ fetchContacts: () => void;
238
310
  getById: (item: string) => Promise<import("@firebase/firestore").DocumentData>;
239
311
  } | undefined;
240
312
  placements: {
241
313
  add: (formData: StudentPlacementData) => Promise<void>;
242
- update: (placementId: string, data: StudentPlacementData) => Promise<void>;
314
+ update: (placementId: string, attributes: Partial<StudentPlacementData>) => Promise<void>;
243
315
  delete: (id: string) => Promise<void>;
316
+ getUserPlacements: () => Promise<void | import("@firebase/firestore").QuerySnapshot<import("@firebase/firestore").DocumentData> | {
317
+ [k: string]: any;
318
+ }>;
319
+ getPlacementsStart: (start: Date, end: Date) => Promise<{
320
+ [key: string]: StudentPlacementData;
321
+ }>;
322
+ getPlacementsEnd: (end: Date) => Promise<{
323
+ [key: string]: StudentPlacementData;
324
+ }>;
244
325
  activePlacement: StudentPlacementData | undefined;
326
+ editActivePlacement: (attributes: Partial<StudentPlacementData>) => {
327
+ payload: any;
328
+ type: "activePlacement/editActivePlacement";
329
+ };
330
+ updateActivePlacement: () => void;
331
+ updateUpcomingPlacement: () => void;
332
+ fetchUpcomingPlacements: () => void;
333
+ fetchCompletedPlacements: () => void;
334
+ dispatchActivePlacement: () => void;
245
335
  upcoming: StudentPlacementData | undefined;
246
336
  upcomingPlacements: {
247
337
  [key: string]: StudentPlacementData;
@@ -251,10 +341,29 @@ export declare function useInstituteStudent({ user }: {
251
341
  };
252
342
  getById: (item: string) => Promise<import("@firebase/firestore").DocumentData>;
253
343
  } | undefined;
344
+ institute: InstituteData | undefined;
345
+ userGroups: {
346
+ [key: string]: UserGroupData;
347
+ } | undefined;
348
+ forms: {
349
+ [key: string]: unknown;
350
+ } | undefined;
351
+ cohorts: {
352
+ [key: string]: CohortData;
353
+ } | undefined;
354
+ applications: {
355
+ [key: string]: Application & {
356
+ listing: PlacementListing | false;
357
+ provider: ProviderData | false;
358
+ address: Address;
359
+ };
360
+ } | undefined;
361
+ error?: undefined;
254
362
  };
255
363
  export declare function useProvider({ user }: {
256
364
  user: UserData;
257
365
  }): {
366
+ error: string;
258
367
  jobs?: undefined;
259
368
  } | {
260
369
  jobs: {
@@ -282,6 +391,14 @@ export declare function useProvider({ user }: {
282
391
  payload: any;
283
392
  type: "jobs/setJobStatus";
284
393
  }>;
394
+ updateJob: ({ jobId, data }: {
395
+ jobId: string;
396
+ data: string;
397
+ }) => Promise<{
398
+ payload: any;
399
+ type: "jobs/updateJob";
400
+ }>;
285
401
  getById: (id: string) => Promise<import("@firebase/firestore").DocumentData>;
286
402
  } | undefined;
403
+ error?: undefined;
287
404
  };
package/lib/reduxHooks.js CHANGED
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.useAppDispatch = exports.useAppSelector = void 0;
7
7
  exports.useStudent = useStudent;
8
8
  exports.useInstituteStaff = useInstituteStaff;
9
+ exports.useInstitute = useInstitute;
9
10
  exports.useInstituteStudent = useInstituteStudent;
10
11
  exports.useProvider = useProvider;
11
12
  const firestore_1 = require("firebase/firestore");
@@ -17,12 +18,14 @@ const activePlacement_1 = require("./features/placements/studentPlacements/activ
17
18
  const completedStudentPlacementsSlice_1 = require("./features/placements/studentPlacements/completedStudentPlacementsSlice");
18
19
  const upcomingStudentPlacementsSlice_1 = require("./features/placements/studentPlacements/upcomingStudentPlacementsSlice");
19
20
  const firebaseQuery_1 = __importDefault(require("./firebase/firebaseQuery"));
21
+ const readDatabase_1 = require("./firebase/readDatabase");
22
+ const util_1 = require("./firebase/util");
20
23
  exports.useAppSelector = react_redux_1.useSelector;
21
24
  const useAppDispatch = () => (0, react_redux_1.useDispatch)();
22
25
  exports.useAppDispatch = useAppDispatch;
23
26
  function useStudent({ user }) {
24
- if (!user || user.product !== "students")
25
- return {};
27
+ if (!user || user.userType !== "Students")
28
+ return { error: "Unauthorized" };
26
29
  const upcomingPlacements = (0, exports.useAppSelector)((state) => state.upcomingStudentPlacements.values);
27
30
  const completedPlacements = (0, exports.useAppSelector)((state) => state.completedStudentPlacements.values);
28
31
  const activePlacement = (0, exports.useAppSelector)((state) => state.activePlacement.values);
@@ -42,28 +45,46 @@ function useStudent({ user }) {
42
45
  firebaseQuery.collectionSnapshot(contactsSlice_1.setContacts, "contacts", contactsConstraints, dispatch);
43
46
  firebaseQuery.collectionSnapshot(async (fApplications) => {
44
47
  const applicationsWithProviderAndListing = Object.fromEntries(await Promise.all(Object.entries(fApplications).map(async ([id, application]) => {
45
- const provider = await firebaseQuery.getDocData(["providers", application.providerId]);
46
- const listing = await firebaseQuery.getDocData(["placementListings", application.listingId]);
47
- const address = listing.addressId && await firebaseQuery.getDocData(["addresses", listing.addressId]);
48
- return [id, { ...application, listing: listing, provider: provider, address: address }];
48
+ const provider = await firebaseQuery.getDocData(["providers", application.providerId]).catch(() => false);
49
+ const listing = await firebaseQuery.getDocData(["placementListings", application.listingId]).catch(() => false);
50
+ return [id, { ...application, listing: listing, provider: provider }];
49
51
  })));
50
52
  setApplications(applicationsWithProviderAndListing);
51
53
  }, "applications", applicationsConstraints);
52
- }, [dispatch, user.id]);
53
- (0, react_1.useEffect)(() => {
54
- if (!user.id)
55
- return;
56
- dispatch((0, activePlacement_1.fetchActivePlacement)({ userId: user.id }));
57
- }, [dispatch, user.id, upcomingPlacements]);
58
- (0, react_1.useEffect)(() => {
59
- console.log("UPDATE UPCOMING");
54
+ }, [user.id]);
55
+ /*
56
+ useEffect(() => {
57
+ if (!user.id) return
58
+ dispatch(fetchActivePlacement({userId: user.id}))
59
+ }, [dispatch, user.id, upcomingPlacements]);
60
+ */
61
+ const fetchUpcomingPlacements = () => {
62
+ const constraints = [(0, firestore_1.where)("uid", "==", user.id), (0, firestore_1.where)("inProgress", "==", true), (0, firestore_1.orderBy)("startDate")];
63
+ firebaseQuery.collectionSnapshot(upcomingStudentPlacementsSlice_1.setUpcomingStudentPlacements, "placements", constraints, dispatch);
64
+ };
65
+ const fetchCompletedPlacements = () => {
66
+ const constraints = [(0, firestore_1.where)("uid", "==", user.id), (0, firestore_1.where)("completed", "==", true), (0, firestore_1.orderBy)("startDate")];
67
+ firebaseQuery.collectionSnapshot(completedStudentPlacementsSlice_1.setCompletedStudentPlacements, "placements", constraints, dispatch);
68
+ };
69
+ const fetchContacts = () => {
70
+ const constraints = [(0, firestore_1.where)("uid", "==", user.id)];
71
+ firebaseQuery.collectionSnapshot(contactsSlice_1.setContacts, "contacts", constraints, dispatch);
72
+ };
73
+ const updateUpcomingPlacement = () => {
60
74
  if (!upcomingPlacements || !Object.entries(upcomingPlacements).length) {
61
75
  dispatch((0, upcomingStudentPlacementsSlice_1.setUpcoming)(undefined));
62
76
  return;
63
77
  }
64
78
  const upcomingPlacement = Object.entries(upcomingPlacements).find(([, v]) => new Date(v.startDate).getTime() > today.getTime());
65
79
  upcomingPlacement ? dispatch((0, upcomingStudentPlacementsSlice_1.setUpcoming)(upcomingPlacement[1])) : dispatch((0, upcomingStudentPlacementsSlice_1.setUpcoming)(undefined));
66
- }, [dispatch, upcomingPlacements]);
80
+ };
81
+ const updateActivePlacement = () => {
82
+ const key = Object.keys(upcomingPlacements).find((key) => {
83
+ const placement = upcomingPlacements[key];
84
+ return placement.active;
85
+ });
86
+ key ? dispatch((0, activePlacement_1.setActivePlacement)(upcomingPlacements[key])) : dispatch((0, activePlacement_1.setActivePlacement)(null));
87
+ };
67
88
  const getItemById = async (path, id) => {
68
89
  return await firebaseQuery.getDocData([path, id]);
69
90
  };
@@ -73,11 +94,11 @@ function useStudent({ user }) {
73
94
  else
74
95
  dispatch((0, completedStudentPlacementsSlice_1.deleteCompletedStudentPlacement)({ placementId: id }));
75
96
  };
76
- const handleUpdatePlacement = async (id, data) => {
97
+ const handleUpdatePlacement = async (id, attributes) => {
77
98
  if (upcomingPlacements[id])
78
- dispatch((0, upcomingStudentPlacementsSlice_1.updateUpcomingStudentPlacement)({ placementId: id, attributes: data }));
99
+ dispatch((0, upcomingStudentPlacementsSlice_1.updateUpcomingStudentPlacement)({ placementId: id, attributes }));
79
100
  else
80
- dispatch((0, completedStudentPlacementsSlice_1.updateCompletedStudentPlacement)({ placementId: id, attributes: data }));
101
+ dispatch((0, completedStudentPlacementsSlice_1.updateCompletedStudentPlacement)({ placementId: id, attributes }));
81
102
  };
82
103
  const handleAddPlacement = async (formData) => {
83
104
  if (formData.completed)
@@ -85,19 +106,41 @@ function useStudent({ user }) {
85
106
  else
86
107
  dispatch((0, upcomingStudentPlacementsSlice_1.addUpcomingStudentPlacements)({ formData }));
87
108
  };
109
+ const getUserPlacements = async () => {
110
+ return await (0, readDatabase_1.getPlacementsWhere)({ w: (0, firestore_1.where)("uid", "==", user === null || user === void 0 ? void 0 : user.id) });
111
+ };
112
+ const getPlacementsStart = async (start, end) => {
113
+ return await firebaseQuery.getDocsWhere("placements", [(0, firestore_1.where)("uid", "==", user === null || user === void 0 ? void 0 : user.id), (0, firestore_1.where)("startDate", ">=", (0, util_1.convertDate)(start, "dbstring")), (0, firestore_1.where)("startDate", "<=", (0, util_1.convertDate)(end, "dbstring"))]);
114
+ };
115
+ const getPlacementsEnd = async (end) => {
116
+ return await firebaseQuery.getDocsWhere("placements", [(0, firestore_1.where)("uid", "==", user === null || user === void 0 ? void 0 : user.id), (0, firestore_1.where)("endDate", ">=", (0, util_1.convertDate)(end, "dbstring")), (0, firestore_1.where)("endDate", "<=", (0, util_1.convertDate)(end, "dbstring"))]);
117
+ };
118
+ const dispatchActivePlacement = () => {
119
+ dispatch((0, activePlacement_1.fetchActivePlacement)({ userId: user.id }));
120
+ };
88
121
  return {
89
122
  contacts: {
90
- add: async (contactForm) => dispatch((0, contactsSlice_1.addContact)({ contactForm: contactForm, userId: user.id })),
91
- update: async (contactId, data) => dispatch((0, contactsSlice_1.updateContact)({ contactId: contactId, attributes: data })),
92
- delete: async (contactId) => dispatch((0, contactsSlice_1.deleteContact)({ contactId: contactId })),
123
+ add: async (contactForm) => await dispatch((0, contactsSlice_1.addContact)({ contactForm: contactForm, userId: user.id })),
124
+ update: async (contactId, data) => await dispatch((0, contactsSlice_1.updateContact)({ contactId: contactId, attributes: data })),
125
+ delete: async (contactId) => await dispatch((0, contactsSlice_1.deleteContact)({ contactId: contactId })),
93
126
  contacts,
127
+ fetchContacts,
94
128
  getById: async (item) => await getItemById("contacts", item)
95
129
  },
96
130
  placements: {
97
131
  add: async (formData) => await handleAddPlacement(formData),
98
- update: async (placementId, data) => handleUpdatePlacement(placementId, data),
132
+ update: async (placementId, attributes) => await handleUpdatePlacement(placementId, attributes),
99
133
  delete: async (id) => await handleDeletePlacement(id),
134
+ getUserPlacements,
135
+ getPlacementsStart,
136
+ getPlacementsEnd,
100
137
  activePlacement,
138
+ editActivePlacement: (attributes) => dispatch((0, activePlacement_1.editActivePlacement)(attributes)),
139
+ updateActivePlacement,
140
+ updateUpcomingPlacement,
141
+ fetchUpcomingPlacements,
142
+ fetchCompletedPlacements,
143
+ dispatchActivePlacement,
101
144
  upcoming,
102
145
  upcomingPlacements: upcomingPlacements || {},
103
146
  completedPlacements: completedPlacements || {},
@@ -108,10 +151,26 @@ function useStudent({ user }) {
108
151
  }
109
152
  ;
110
153
  function useInstituteStaff({ user }) {
154
+ if (!user || (user === null || user === void 0 ? void 0 : user.product) !== "institutes" || user.userType !== "Staff")
155
+ return { error: "Unauthorized" };
111
156
  const firebaseQuery = new firebaseQuery_1.default();
112
157
  const dispatch = (0, exports.useAppDispatch)();
113
- if (!user || (user === null || user === void 0 ? void 0 : user.product) !== "institutes" || user.userType !== "Staff")
114
- return {};
158
+ const { userGroups, forms, institute } = useInstitute({ user });
159
+ const [cohorts, setCohorts] = (0, react_1.useState)();
160
+ const [emailTemplates, setEmailTemplates] = (0, react_1.useState)();
161
+ (0, react_1.useEffect)(() => {
162
+ const cohortConstraints = [(0, firestore_1.where)("oId", "==", user.oId)];
163
+ if (user.userGroup !== "admin") {
164
+ if (user.viewAddresses !== "all") {
165
+ cohortConstraints.push((0, firestore_1.where)("addressId", "in", user.visibleAddresses));
166
+ }
167
+ if (user.viewCohorts !== "all") {
168
+ cohortConstraints.push((0, firestore_1.where)((0, firestore_1.documentId)(), "in", user.visibleCohorts));
169
+ }
170
+ }
171
+ firebaseQuery.collectionSnapshot(setCohorts, "cohorts", cohortConstraints);
172
+ firebaseQuery.collectionSnapshot(setEmailTemplates, "emailTemplates", [(0, firestore_1.where)("product", "==", user.product), (0, firestore_1.where)("oId", "==", user.oId)]);
173
+ }, [user.oId, user.userGroup, user.viewAddresses, user.viewCohorts, user.visibleAddresses, user.visibleCohorts, user.product]);
115
174
  const getJobById = async (id) => {
116
175
  try {
117
176
  const job = await firebaseQuery.getDocData(["jobs", id]);
@@ -127,22 +186,66 @@ function useInstituteStaff({ user }) {
127
186
  addJob: async ({ job, jobId }) => dispatch((0, jobsSlice_1.addJob)({ job: job, jobId: jobId })),
128
187
  setMarkRead: async (payload) => dispatch((0, jobsSlice_1.setMarkRead)(payload)),
129
188
  setJobStatus: async ({ jobId, status }) => dispatch((0, jobsSlice_1.setJobStatus)({ jobId: jobId, status: status })),
189
+ updateJob: async ({ jobId, data }) => dispatch((0, jobsSlice_1.updateJob)({ jobId: jobId, data: data })),
130
190
  getById: getJobById
131
- }
191
+ },
192
+ institute,
193
+ userGroups,
194
+ forms,
195
+ cohorts,
196
+ emailTemplates,
197
+ };
198
+ }
199
+ function useInstitute({ user }) {
200
+ if (!user || (user === null || user === void 0 ? void 0 : user.product) !== "institutes")
201
+ return { error: "Unauthorized" };
202
+ const [userGroups, setUserGroups] = (0, react_1.useState)();
203
+ const [forms, setForms] = (0, react_1.useState)();
204
+ const [institute, setInstitute] = (0, react_1.useState)();
205
+ const firebaseQuery = new firebaseQuery_1.default();
206
+ (0, react_1.useEffect)(() => {
207
+ (0, readDatabase_1.getOrganisation)(user, (data) => setInstitute(data));
208
+ firebaseQuery.collectionSnapshot(setUserGroups, "userGroups", [(0, firestore_1.where)("oId", "==", user.oId), (0, firestore_1.where)("product", "==", user.product)]);
209
+ firebaseQuery.collectionSnapshot(setForms, "forms", [(0, firestore_1.where)("oId", "==", user.oId), (0, firestore_1.where)("product", "==", user.product)]);
210
+ }, [user.product, user.oId]);
211
+ return {
212
+ userGroups,
213
+ forms,
214
+ institute,
132
215
  };
133
216
  }
134
217
  function useInstituteStudent({ user }) {
135
- const { contacts, placements } = useStudent({ user });
136
218
  if (!user || (user === null || user === void 0 ? void 0 : user.product) !== "institutes" || user.userType !== "Students")
137
- return {};
219
+ return { error: "Unauthorized" };
220
+ const { contacts, placements, applications } = useStudent({ user });
221
+ const [cohorts, setCohorts] = (0, react_1.useState)();
222
+ const firebaseQuery = new firebaseQuery_1.default();
223
+ const { userGroups, forms, institute } = useInstitute({ user });
224
+ (0, react_1.useEffect)(() => {
225
+ const isAdmin = user.userGroup === "admin";
226
+ const canViewCohorts = user.viewCohorts !== "none";
227
+ const canViewAddresses = user.viewAddresses !== "none";
228
+ if (isAdmin || (canViewCohorts && canViewAddresses)) {
229
+ const cohortConstraints = [(0, firestore_1.where)("oId", "==", user.oId)];
230
+ firebaseQuery.collectionSnapshot(setCohorts, "cohorts", cohortConstraints);
231
+ }
232
+ else {
233
+ setCohorts({});
234
+ }
235
+ }, [user.oId, user.id, user.userGroup, user.viewCohorts, user.viewAddresses, user.product]);
138
236
  return {
139
237
  contacts,
140
- placements
238
+ placements,
239
+ institute,
240
+ userGroups,
241
+ forms,
242
+ cohorts,
243
+ applications,
141
244
  };
142
245
  }
143
246
  function useProvider({ user }) {
144
247
  if (!user || (user === null || user === void 0 ? void 0 : user.product) !== "providers")
145
- return {};
248
+ return { error: "Unauthorized" };
146
249
  const { jobs } = useInstituteStaff({ user });
147
250
  return {
148
251
  jobs
@@ -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":";;;;;;AAkBA,gCA4IC;AAGD,8CAiDC;AAED,oCAqBC;AAED,kDA+BC;AAED,kCASC;AArRD,kDAA+D;AAC/D,iCAA2C;AAC3C,6CAA4E;AAE5E,qEAAyG;AACzG,yDAAsG;AACtG,6FAAuI;AACvI,6HAAwN;AACxN,2HAAgO;AAChO,6EAAoD;AAEpD,0DAA2E;AAC3E,0CAA2C;AAE9B,QAAA,cAAc,GAAoC,yBAAW,CAAA;AACnE,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,IAAA,yBAAW,GAAe,CAAC;AAAlD,QAAA,cAAc,kBAAoC;AAG/D,SAAgB,UAAU,CAAC,EAAC,IAAI,EAAoB;IAChD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;QAAE,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,CAAC;IAE1E,MAAM,kBAAkB,GAAG,IAAA,sBAAc,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAAA;IAC5F,MAAM,mBAAmB,GAAG,IAAA,sBAAc,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAA;IAC9F,MAAM,eAAe,GAAG,IAAA,sBAAc,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;IAC/E,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAA;IACpF,MAAM,QAAQ,GAAG,IAAA,sBAAc,EAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;IACjE,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,gBAAQ,GAAkH,CAAC;IACnK,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAE1C,MAAM,QAAQ,GAAG,IAAA,sBAAc,GAAE,CAAC;IAElC,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;IAEzB,MAAM,uBAAuB,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7D,MAAM,6BAA6B,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACpG,MAAM,8BAA8B,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAA;IACpG,MAAM,mBAAmB,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAEzD,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,aAAa,CAAC,kBAAkB,CAAC,6DAA4B,EAAE,YAAY,EAAE,6BAA6B,EAAE,QAAQ,CAAC,CAAC;QACtH,aAAa,CAAC,kBAAkB,CAAC,+DAA6B,EAAE,YAAY,EAAE,8BAA8B,EAAE,QAAQ,CAAC,CAAC;QACxH,aAAa,CAAC,kBAAkB,CAAC,2BAAW,EAAE,UAAU,EAAE,mBAAmB,EAAE,QAAQ,CAAC,CAAC;QACzF,aAAa,CAAC,kBAAkB,CAAC,KAAK,EAAE,aAA2C,EAAE,EAAE;YAEnF,MAAM,kCAAkC,GAAsG,MAAM,CAAC,WAAW,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,EAAE,EAAE;gBAC7O,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,WAAW,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAAuB,CAAC;gBAChI,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,mBAAmB,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,KAAK,CAA2B,CAAC;gBAC1I,OAAO,CAAC,EAAE,EAAE,EAAC,GAAG,WAAW,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAC,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC,CAAC,CAAC;YAEL,eAAe,CAAC,kCAAkC,CAAC,CAAC;QAExD,CAAC,EAAE,cAAc,EAAE,uBAAuB,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAClB;;;;;MAKE;IACE,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACjC,MAAM,WAAW,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC,CAAA;QACxG,aAAa,CAAC,kBAAkB,CAAC,6DAA4B,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACxG,CAAC,CAAA;IAED,MAAM,wBAAwB,GAAG,GAAG,EAAE;QAClC,MAAM,WAAW,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,IAAA,mBAAO,EAAC,WAAW,CAAC,CAAC,CAAA;QACvG,aAAa,CAAC,kBAAkB,CAAC,+DAA6B,EAAE,YAAY,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACzG,CAAC,CAAA;IAED,MAAM,aAAa,GAAG,GAAG,EAAE;QACvB,MAAM,WAAW,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;QACjD,aAAa,CAAC,kBAAkB,CAAC,2BAAW,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC;IACrF,CAAC,CAAA;IAED,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACjC,IAAI,CAAC,kBAAkB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,MAAM,EAAE,CAAC;YACpE,QAAQ,CAAC,IAAA,4CAAW,EAAC,SAAS,CAAC,CAAC,CAAC;YACjC,OAAO;QACX,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,KAAK,CAAC,OAAO,EAAE,CAAC,CAAA;QAC/H,iBAAiB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAA,4CAAW,EAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAA,4CAAW,EAAC,SAAS,CAAC,CAAC,CAAA;IACtG,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,GAAG,EAAE;QAC/B,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YACrD,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;YACzC,OAAO,SAAS,CAAC,MAAM,CAAA;QAC3B,CAAC,CAAC,CAAA;QACF,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAA,oCAAkB,EAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAA,oCAAkB,EAAC,IAAI,CAAC,CAAC,CAAA;IACpG,CAAC,CAAA;IAED,MAAM,WAAW,GAAG,KAAK,EAAE,IAA6B,EAAE,EAAU,EAAE,EAAE;QACpE,OAAO,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAA;IACrD,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;QAC/C,IAAI,kBAAkB,CAAC,EAAE,CAAC;YAAE,QAAQ,CAAC,IAAA,+DAA8B,EAAC,EAAC,WAAW,EAAE,EAAE,EAAC,CAAC,CAAC,CAAA;;YAClF,QAAQ,CAAC,IAAA,iEAA+B,EAAC,EAAC,WAAW,EAAE,EAAE,EAAC,CAAC,CAAC,CAAA;IACrE,CAAC,CAAA;IAED,MAAM,qBAAqB,GAAG,KAAK,EAAE,EAAU,EAAE,UAAyC,EAAG,EAAE;QAC3F,IAAI,kBAAkB,CAAC,EAAE,CAAC;YAAE,QAAQ,CAAC,IAAA,+DAA8B,EAAC,EAAC,WAAW,EAAE,EAAE,EAAE,UAAU,EAAC,CAAC,CAAC,CAAA;;YAC9F,QAAQ,CAAC,IAAA,iEAA+B,EAAC,EAAC,WAAW,EAAE,EAAE,EAAE,UAAU,EAAC,CAAC,CAAC,CAAA;IACjF,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,KAAK,EAAE,QAA8B,EAAE,EAAE;QACjE,IAAI,QAAQ,CAAC,SAAS;YAAE,QAAQ,CAAC,IAAA,+DAA6B,EAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAA;;YACtE,QAAQ,CAAC,IAAA,6DAA4B,EAAC,EAAC,QAAQ,EAAC,CAAC,CAAC,CAAA;IAC1D,CAAC,CAAA;IAED,MAAM,iBAAiB,GAAG,KAAK,IAAI,EAAE;QACjC,OAAO,MAAM,IAAA,iCAAkB,EAAC,EAAC,CAAC,EAAE,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,EAAC,CAAC,CAAA;IACtE,CAAC,CAAA;IAED,MAAM,kBAAkB,GAAG,KAAK,EAAE,KAAW,EAAE,GAAS,EAAE,EAAE;QACxD,OAAO,MAAM,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,WAAW,EAAE,IAAI,EAAE,IAAA,kBAAW,EAAC,KAAK,EAAE,UAAU,CAAC,CAAC,EAAE,IAAA,iBAAK,EAAC,WAAW,EAAE,IAAI,EAAE,IAAA,kBAAW,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAyC,CAAC;IACpP,CAAC,CAAA;IAED,MAAM,gBAAgB,GAAG,KAAK,EAAE,GAAS,EAAE,EAAE;QACzC,OAAO,MAAM,aAAa,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAC,EAAE,IAAA,iBAAK,EAAC,SAAS,EAAE,IAAI,EAAE,IAAA,kBAAW,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC,EAAE,IAAA,iBAAK,EAAC,SAAS,EAAE,IAAI,EAAE,IAAA,kBAAW,EAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC,CAAyC,CAAC;IAC9O,CAAC,CAAA;IAED,MAAM,uBAAuB,GAAG,GAAG,EAAE;QACjC,QAAQ,CAAC,IAAA,sCAAoB,EAAC,EAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC,CAAA;IACrD,CAAC,CAAA;IAED,OAAO;QACH,QAAQ,EAAE;YACN,GAAG,EAAE,KAAK,EAAE,WAAoB,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAA,0BAAU,EAAC,EAAC,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAC,CAAC,CAAC;YAC5G,MAAM,EAAE,KAAK,EAAE,SAAiB,EAAE,IAAsB,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAA,6BAAa,EAAC,EAAC,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAC,CAAC,CAAC;YACpI,MAAM,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,CAAC,MAAM,QAAQ,CAAC,IAAA,6BAAa,EAAC,EAAC,SAAS,EAAE,SAAS,EAAC,CAAC,CAAC;YAC1F,QAAQ;YACR,aAAa;YACb,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,WAAW,CAAC,UAAU,EAAE,IAAI,CAAC;SACvE;QAED,UAAU,EAAE;YACR,GAAG,EAAE,KAAK,EAAE,QAA8B,EAAE,EAAE,CAAC,MAAM,kBAAkB,CAAC,QAAQ,CAAC;YACjF,MAAM,EAAE,KAAK,EAAE,WAAmB,EAAE,UAAyC,EAAE,EAAE,CAAC,MAAM,qBAAqB,CAAC,WAAW,EAAE,UAAU,CAAC;YACtI,MAAM,EAAE,KAAK,EAAE,EAAU,EAAE,EAAE,CAAC,MAAM,qBAAqB,CAAC,EAAE,CAAC;YAC7D,iBAAiB;YACjB,kBAAkB;YAClB,gBAAgB;YAChB,eAAe;YACf,mBAAmB,EAAE,CAAC,UAAyC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAA,qCAAmB,EAAC,UAAU,CAAC,CAAC;YAC7G,qBAAqB;YACrB,uBAAuB;YACvB,uBAAuB;YACvB,wBAAwB;YACxB,uBAAuB;YACvB,QAAQ;YACR,kBAAkB,EAAE,kBAAkB,IAAI,EAAE;YAC5C,mBAAmB,EAAE,mBAAmB,IAAI,EAAE;YAC9C,OAAO,EAAE,KAAK,EAAE,IAAY,EAAE,EAAE,CAAC,MAAM,WAAW,CAAC,YAAY,EAAE,IAAI,CAAC;SACzE;QACD,YAAY,EAAE,YAAY;KAC7B,CAAE;AACP,CAAC;AAAA,CAAC;AAGF,SAAgB,iBAAiB,CAAC,EAAC,IAAI,EAAmB;IACtD,IAAI,CAAC,IAAI,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO;QAAE,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,CAAC;IAEzG,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAC1C,MAAM,QAAQ,GAAG,IAAA,sBAAc,GAAE,CAAC;IAClC,MAAM,EAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAC,GAAG,YAAY,CAAC,EAAC,IAAI,EAAC,CAAC,CAAA;IAC3D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,GAA8B,CAAC;IACrE,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,IAAA,gBAAQ,GAAiC,CAAC;IAGtF,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,iBAAiB,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACzD,IAAI,IAAI,CAAC,SAAS,KAAK,OAAO,EAAE,CAAC;YAC7B,IAAI,IAAI,CAAC,aAAa,KAAK,KAAK,EAAE,CAAC;gBAC/B,iBAAiB,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,WAAW,EAAE,IAAI,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;YAC5E,CAAC;YACD,IAAI,IAAI,CAAC,WAAW,KAAK,KAAK,EAAE,CAAC;gBAC7B,iBAAiB,CAAC,IAAI,CAAC,IAAA,iBAAK,EAAC,IAAA,sBAAU,GAAE,EAAE,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;YAC3E,CAAC;QACL,CAAC;QACD,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC3E,aAAa,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,gBAAgB,EAAE,CAAC,IAAA,iBAAK,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAChJ,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,gBAAgB,EAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAA;IAE9H,MAAM,UAAU,GAAG,KAAK,EAAE,EAAU,EAAE,EAAE;QACpC,IAAI,CAAC;YACD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,UAAU,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAA;YACxD,OAAO,GAAG,CAAA;QAEZ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,KAAK,CAAA;QACb,CAAC;IACP,CAAC,CAAA;IAED,OAAO;QACH,IAAI,EAAE;YACF,OAAO,EAAE,KAAK,EAAE,IAA4B,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAA,mBAAO,EAAC,IAAI,CAAC,CAAC;YACxE,MAAM,EAAE,KAAK,EAAE,EAAC,GAAG,EAAE,KAAK,EAAsC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAA,kBAAM,EAAC,EAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,KAAK,EAAC,CAAC,CAAC;YAC/G,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAE,QAAQ,CAAC,IAAA,uBAAW,EAAC,OAAO,CAAC,CAAC;YAC/D,YAAY,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,MAAM,EAAkC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAA,wBAAY,EAAC,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAC,CAAC,CAAC;YAChI,SAAS,EAAE,KAAK,EAAE,EAAC,KAAK,EAAE,IAAI,EAAgC,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAA,qBAAS,EAAC,EAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;YAClH,OAAO,EAAE,UAAU;SACtB;QACD,SAAS;QACT,UAAU;QACV,KAAK;QACL,OAAO;QACP,cAAc;KACjB,CAAA;AACL,CAAC;AAED,SAAgB,YAAY,CAAC,EAAC,IAAI,EAAmB;IACjD,IAAI,CAAC,IAAI,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,YAAY;QAAE,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,CAAC;IAE5E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,IAAA,gBAAQ,GAAiC,CAAC;IAC9E,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,GAA2B,CAAC;IAC9D,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,GAAiB,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAG1C,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,IAAA,8BAAe,EAAC,IAAI,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAqB,CAAC,CAAC,CAAC;QACrE,aAAa,CAAC,kBAAkB,CAAC,aAAa,EAAE,YAAY,EAAE,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAA,iBAAK,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACpI,aAAa,CAAC,kBAAkB,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,IAAA,iBAAK,EAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAC9H,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAE5B,OAAO;QACH,UAAU;QACV,KAAK;QACL,SAAS;KACZ,CAAA;AAEL,CAAC;AAED,SAAgB,mBAAmB,CAAC,EAAC,IAAI,EAAmB;IACxD,IAAI,CAAC,IAAI,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,YAAY,IAAI,IAAI,CAAC,QAAQ,KAAK,UAAU;QAAE,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,CAAC;IAE5G,MAAM,EAAC,QAAQ,EAAE,UAAU,EAAE,YAAY,EAAC,GAAG,UAAU,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;IAChE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAA,gBAAQ,GAA8B,CAAC;IACrE,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAC1C,MAAM,EAAC,UAAU,EAAE,KAAK,EAAE,SAAS,EAAC,GAAG,YAAY,CAAC,EAAC,IAAI,EAAC,CAAC,CAAA;IAE3D,IAAA,iBAAS,EAAC,GAAG,EAAE;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,CAAC;QAC3C,MAAM,cAAc,GAAG,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC;QACnD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,KAAK,MAAM,CAAC;QAEvD,IAAI,OAAO,IAAI,CAAC,cAAc,IAAI,gBAAgB,CAAC,EAAE,CAAC;YAClD,MAAM,iBAAiB,GAAG,CAAC,IAAA,iBAAK,EAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;YACzD,aAAa,CAAC,kBAAkB,CAAC,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAC/E,CAAC;aAAM,CAAC;YACJ,UAAU,CAAC,EAAE,CAAC,CAAC;QACnB,CAAC;IACL,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAE5F,OAAO;QACH,QAAQ;QACR,UAAU;QACV,SAAS;QACT,UAAU;QACV,KAAK;QACL,OAAO;QACP,YAAY;KACf,CAAA;AAEL,CAAC;AAED,SAAgB,WAAW,CAAC,EAAC,IAAI,EAAmB;IAChD,IAAI,CAAC,IAAI,IAAI,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,MAAK,WAAW;QAAE,OAAO,EAAC,KAAK,EAAE,cAAc,EAAC,CAAC;IAE3E,MAAM,EAAC,IAAI,EAAC,GAAG,iBAAiB,CAAC,EAAC,IAAI,EAAC,CAAC,CAAC;IAEzC,OAAO;QACH,IAAI;KACP,CAAA;AAEL,CAAC;AAID,kCAAkC;AAClC,yCAAyC;AAEzC,2BAA2B;AAE3B,kBAAkB;AAClB,IAAI;AAEJ,oCAAoC;AACpC,yCAAyC;AAEzC,6BAA6B;AAE7B,kBAAkB;AAClB,IAAI"}
@@ -1,10 +1,10 @@
1
- import { CohortData, InstituteData, ProviderData, UserData } from "./typeDefinitions";
2
- type InstituteTipNames = "createCohort" | "uploadStaff" | "assignStaffRoles" | "uploadPlacements" | "allowExternalPlacementUpload" | "uploadStaffGuidance" | "uploadStudentGuidance";
1
+ import { CohortData, InstituteData, OrganisationAddress, ProviderData, SchoolData, UserData } from "./typeDefinitions";
2
+ type InstituteTipNames = "createCohort" | "addSchools" | "uploadStaff" | "assignStaffRoles" | "uploadPlacements" | "allowExternalPlacementUpload" | "uploadStaffGuidance" | "uploadStudentGuidance";
3
3
  type ProviderTipNames = string;
4
4
  type StudentTipNames = string;
5
- export type InstituteTaskNames = "missingParentEmail" | "verifyInsurance" | "verifyRiskAssessment" | "verifyDbsCheck" | "inactiveStudents" | "uploadStudents" | "inactiveStaff" | "requiredStage" | "approveExternalPlacement" | "overdueStage";
5
+ export type InstituteTaskNames = "missingParentEmail" | "approveAlumniConversation" | "outstandingReminders" | "invalidStaffEmails" | "invalidStudentEmails" | "invalidParentEmails" | "invalidProviderEmails" | "verifyInsurance" | "verifyRiskAssessment" | "verifyDbsCheck" | "inactiveStudents" | "uploadStudents" | "inactiveStaff" | "requiredStage" | "approveExternalPlacement" | "overdueStage";
6
6
  export type StudentTaskNames = "completeOnboarding";
7
- export type ProviderTaskNames = "applicationRequireReview" | "requestedVisiblePlacementListings" | "requestedVisibleAddresses" | "completeStudentDocs" | "reviewOnboarding" | "completeListing" | "completeAddress" | "registrationRequests" | "placementStarting" | "completeFeedback" | "setUpFeedback";
7
+ export type ProviderTaskNames = "applicationRequireReview" | "activateStaff" | "requestedVisiblePlacementListings" | "requestedVisibleAddresses" | "completeStudentDocs" | "uploadOnboarding" | "reviewOnboarding" | "completeListing" | "completeAddress" | "registrationRequests" | "placementStarting" | "completeFeedback" | "setUpFeedback";
8
8
  export type TaskQueryReturnObject = {
9
9
  itemName?: InstituteTaskNames | InstituteTipNames | StudentTipNames | ProviderTipNames;
10
10
  title?: string;
@@ -16,7 +16,12 @@ export type TaskQueryReturnObject = {
16
16
  } | undefined;
17
17
  export type InstituteTaskObject = {
18
18
  [key in InstituteTaskNames]: {
19
- callback: (user: UserData, organisation: InstituteData | ProviderData, cohort: CohortData | [string, CohortData][]) => Promise<TaskQueryReturnObject | TaskQueryReturnObject[]>;
19
+ callback: ({ user, organisation, cohorts, schools }: {
20
+ user: UserData;
21
+ organisation: InstituteData & ProviderData;
22
+ cohorts: CohortData | [string, CohortData][];
23
+ schools?: SchoolData | [string, SchoolData][];
24
+ }) => Promise<TaskQueryReturnObject | TaskQueryReturnObject[]>;
20
25
  };
21
26
  };
22
27
  export type StudentTaskObject = {
@@ -29,7 +34,14 @@ export type ProviderTaskObject = {
29
34
  callback: (user: UserData) => Promise<TaskQueryReturnObject | TaskQueryReturnObject[]>;
30
35
  };
31
36
  };
32
- export declare const getTips: (user: UserData, organisation: InstituteData | ProviderData) => Promise<(TaskQueryReturnObject)[]>;
33
- export declare const getTasks: (user: UserData, organisation?: InstituteData | ProviderData, cohort?: CohortData) => Promise<(TaskQueryReturnObject)[]>;
37
+ export declare const getTips: (user: UserData, organisation: InstituteData | ProviderData, addresses?: {
38
+ [key: string]: OrganisationAddress;
39
+ }) => Promise<(TaskQueryReturnObject)[]>;
40
+ export declare const getTasks: ({ user, organisation, cohort, school }: {
41
+ user: UserData;
42
+ organisation?: InstituteData & ProviderData;
43
+ cohort?: CohortData;
44
+ school?: SchoolData;
45
+ }) => Promise<(TaskQueryReturnObject)[]>;
34
46
  export declare const dismissTip: (user: UserData, itemName: InstituteTaskNames | ProviderTaskNames | StudentTaskNames | InstituteTipNames | ProviderTipNames | StudentTipNames | undefined) => Promise<void>;
35
47
  export {};