placementt-core 1.20.200 → 1.20.201
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/features/analytics/useAnalytics.d.ts +2 -0
- package/lib/features/analytics/useAnalytics.js +21 -16
- package/lib/features/analytics/useAnalytics.js.map +1 -1
- package/lib/features/global/downtime/useDowntime.d.ts +1 -0
- package/lib/features/global/downtime/useDowntime.js +9 -5
- package/lib/features/global/downtime/useDowntime.js.map +1 -1
- package/lib/features/placements/studentPlacements/useStudentPlacements.d.ts +2 -11
- package/lib/features/placements/studentPlacements/useStudentPlacements.js +1 -18
- package/lib/features/placements/studentPlacements/useStudentPlacements.js.map +1 -1
- package/lib/features/updates/useUpdates.d.ts +1 -0
- package/lib/features/updates/useUpdates.js +13 -12
- package/lib/features/updates/useUpdates.js.map +1 -1
- package/lib/reduxHooks.d.ts +18 -0
- package/lib/reduxHooks.js +14 -0
- package/lib/reduxHooks.js.map +1 -1
- package/package.json +1 -1
- package/src/features/analytics/useAnalytics.tsx +24 -15
- package/src/features/global/downtime/useDowntime.tsx +11 -6
- package/src/features/placements/studentPlacements/useStudentPlacements.tsx +4 -19
- package/src/features/updates/useUpdates.tsx +14 -12
- package/src/reduxHooks.ts +17 -0
|
@@ -5,11 +5,13 @@ export declare function useAnalyticsCard({ user }: {
|
|
|
5
5
|
}): {
|
|
6
6
|
total: number | undefined;
|
|
7
7
|
completed: number | undefined;
|
|
8
|
+
fetchAnalyticsCardDetails: () => Promise<void>;
|
|
8
9
|
};
|
|
9
10
|
export declare function useAnalyticsViews(user: UserData | null): {
|
|
10
11
|
placementsWithoutAnalytics: {
|
|
11
12
|
[key: string]: StudentPlacementData;
|
|
12
13
|
} | undefined;
|
|
14
|
+
fetchAnalyticsViews: () => Promise<void>;
|
|
13
15
|
};
|
|
14
16
|
export declare function useReviewPlacementItem(id: string, onComplete: () => void): {
|
|
15
17
|
analytics: {
|
|
@@ -15,28 +15,33 @@ function useAnalyticsCard({ user }) {
|
|
|
15
15
|
const [completed, setCompleted] = (0, react_1.useState)();
|
|
16
16
|
const [_, setPlacementsWithoutAnalytics] = (0, react_1.useState)();
|
|
17
17
|
const firebaseQuery = new firebaseQuery_1.default();
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
18
|
+
const fetchAnalyticsCardDetails = async () => {
|
|
19
|
+
try {
|
|
20
|
+
setTotal(await firebaseQuery.getCount("placements", [(0, firestore_1.where)("uid", "==", user.id)]));
|
|
21
|
+
setCompleted(await firebaseQuery.getCount("placements", [(0, firestore_1.where)("uid", "==", user.id), (0, firestore_1.where)("completed", "==", true)]));
|
|
22
|
+
setPlacementsWithoutAnalytics(await firebaseQuery.getDocsWhere("placements", [(0, firestore_1.where)("uid", "==", user.id)]));
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.log(error);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
return ({ ...{ total, completed, fetchAnalyticsCardDetails } });
|
|
26
29
|
}
|
|
27
30
|
exports.useAnalyticsCard = useAnalyticsCard;
|
|
28
31
|
function useAnalyticsViews(user) {
|
|
29
32
|
const [placementsWithoutAnalytics, setPlacementsWithoutAnalytics] = (0, react_1.useState)();
|
|
30
33
|
const firebaseQuery = new firebaseQuery_1.default();
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
const p = Object.fromEntries(Object.entries(placements).filter(([k, v]) => (!v.units || !v.personalAnalytics)));
|
|
34
|
+
const fetchAnalyticsViews = async () => {
|
|
35
|
+
try {
|
|
36
|
+
const docs = await firebaseQuery.getDocsWhere("placements", [(0, firestore_1.where)("uid", "==", user === null || user === void 0 ? void 0 : user.id)]);
|
|
37
|
+
const p = Object.fromEntries(Object.entries(docs).filter(([_, v]) => (!v.units || !v.personalAnalytics)));
|
|
36
38
|
setPlacementsWithoutAnalytics(p);
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.log(error);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
return ({ ...{ placementsWithoutAnalytics, fetchAnalyticsViews } });
|
|
40
45
|
}
|
|
41
46
|
exports.useAnalyticsViews = useAnalyticsViews;
|
|
42
47
|
function useReviewPlacementItem(id, onComplete) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useAnalytics.js","sourceRoot":"","sources":["../../../src/features/analytics/useAnalytics.tsx"],"names":[],"mappings":";;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"useAnalytics.js","sourceRoot":"","sources":["../../../src/features/analytics/useAnalytics.tsx"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,17 @@ const react_1 = require("react");
|
|
|
10
10
|
function useDowntime({ user }) {
|
|
11
11
|
const [downtime, setDowntime] = (0, react_1.useState)();
|
|
12
12
|
const firebaseQuery = new firebaseQuery_1.default();
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
const fetchDownTime = async () => {
|
|
14
|
+
try {
|
|
15
|
+
const docs = await firebaseQuery.getDocsWhere("downtime", [(0, firestore_1.where)("products", "array-contains", user === null || user === void 0 ? void 0 : user.product), (0, firestore_1.where)("active", "==", true)]);
|
|
15
16
|
const downtimeDocs = { ...docs };
|
|
16
17
|
setDowntime(downtimeDocs[Object.keys(downtimeDocs)[0]] || false);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
console.log(error);
|
|
21
|
+
}
|
|
22
|
+
};
|
|
23
|
+
return ({ ...{ downtime, setDowntime, fetchDownTime } });
|
|
20
24
|
}
|
|
21
25
|
exports.useDowntime = useDowntime;
|
|
22
26
|
//# sourceMappingURL=useDowntime.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDowntime.js","sourceRoot":"","sources":["../../../../src/features/global/downtime/useDowntime.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyC;AACzC,oFAA4D;AAC5D,
|
|
1
|
+
{"version":3,"file":"useDowntime.js","sourceRoot":"","sources":["../../../../src/features/global/downtime/useDowntime.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAAyC;AACzC,oFAA4D;AAC5D,iCAA+B;AAG/B,SAAgB,WAAW,CAAC,EAAC,IAAI,EAAmB;IAChD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,GAAuC,CAAC;IAChF,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAE1C,MAAM,aAAa,GAAG,KAAK,IAAI,EAAE;QAC7B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,UAAU,EAAE,CAAC,IAAA,iBAAK,EAAC,UAAU,EAAE,gBAAgB,EAAE,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,CAAC,EAAE,IAAA,iBAAK,EAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAA;YAC5I,MAAM,YAAY,GAAG,EAAE,GAAG,IAAsD,EAAC,CAAC;YAClF,WAAW,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC;QAErE,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACZ,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IAEL,CAAC,CAAA;IAED,OAAO,CAAC,EAAC,GAAG,EAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAC,EAAC,CAAC,CAAA;AAExD,CAAC;AAlBD,kCAkBC"}
|
|
@@ -1,26 +1,17 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { QueryConstraint } from "firebase/firestore";
|
|
3
|
-
import {
|
|
3
|
+
import { UserData } from "../../../typeDefinitions";
|
|
4
4
|
export declare function useStudentPlacements({ user, uid, queryConstraint }: {
|
|
5
5
|
user: UserData;
|
|
6
6
|
uid?: string;
|
|
7
7
|
queryConstraint?: QueryConstraint[];
|
|
8
8
|
}): {
|
|
9
9
|
placements: {
|
|
10
|
-
[key: string]: StudentPlacementData;
|
|
10
|
+
[key: string]: import("../../../typeDefinitions").StudentPlacementData;
|
|
11
11
|
} | undefined;
|
|
12
12
|
loadMoreIcon: boolean;
|
|
13
13
|
loadMorePlacements: (fStartPlacementAfter?: import("@firebase/firestore").QueryDocumentSnapshot<import("@firebase/firestore").DocumentData> | undefined) => Promise<void>;
|
|
14
14
|
setQuery: import("react").Dispatch<import("react").SetStateAction<string>>;
|
|
15
15
|
setInitialQueryLimit: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
16
16
|
resetPlacements: () => void;
|
|
17
|
-
getUserPlacements: () => Promise<void | import("@firebase/firestore").QuerySnapshot<import("@firebase/firestore").DocumentData> | {
|
|
18
|
-
[k: string]: any;
|
|
19
|
-
}>;
|
|
20
|
-
getPlacementsStart: (start: Date, end: Date) => Promise<{
|
|
21
|
-
[key: string]: StudentPlacementData;
|
|
22
|
-
}>;
|
|
23
|
-
getPlacementsEnd: (end: Date) => Promise<{
|
|
24
|
-
[key: string]: StudentPlacementData;
|
|
25
|
-
}>;
|
|
26
17
|
};
|
|
@@ -1,27 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.useStudentPlacements = void 0;
|
|
7
|
-
const firestore_1 = require("firebase/firestore");
|
|
8
|
-
const firebaseQuery_1 = __importDefault(require("../../../firebase/firebaseQuery"));
|
|
9
|
-
const readDatabase_1 = require("../../../firebase/readDatabase");
|
|
10
|
-
const util_1 = require("../../../firebase/util");
|
|
11
4
|
const hooks_1 = require("../../../hooks");
|
|
12
5
|
function useStudentPlacements({ user, uid, queryConstraint }) {
|
|
13
|
-
const firebaseQuery = new firebaseQuery_1.default();
|
|
14
6
|
const { placements, loadMoreIcon, loadMorePlacements, setQuery, setInitialQueryLimit, reset } = (0, hooks_1.useStudentPlacementList)({ ...{ user: user, uid: uid || (user === null || user === void 0 ? void 0 : user.id), queryConstraint } });
|
|
15
|
-
|
|
16
|
-
return await (0, readDatabase_1.getPlacementsWhere)({ w: (0, firestore_1.where)("uid", "==", user === null || user === void 0 ? void 0 : user.id) });
|
|
17
|
-
};
|
|
18
|
-
const getPlacementsStart = async (start, end) => {
|
|
19
|
-
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"))]);
|
|
20
|
-
};
|
|
21
|
-
const getPlacementsEnd = async (end) => {
|
|
22
|
-
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"))]);
|
|
23
|
-
};
|
|
24
|
-
return ({ ...{ placements, loadMoreIcon, loadMorePlacements, setQuery, setInitialQueryLimit, resetPlacements: reset, getUserPlacements, getPlacementsStart, getPlacementsEnd } });
|
|
7
|
+
return ({ ...{ placements, loadMoreIcon, loadMorePlacements, setQuery, setInitialQueryLimit, resetPlacements: reset } });
|
|
25
8
|
}
|
|
26
9
|
exports.useStudentPlacements = useStudentPlacements;
|
|
27
10
|
//# sourceMappingURL=useStudentPlacements.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useStudentPlacements.js","sourceRoot":"","sources":["../../../../src/features/placements/studentPlacements/useStudentPlacements.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"useStudentPlacements.js","sourceRoot":"","sources":["../../../../src/features/placements/studentPlacements/useStudentPlacements.tsx"],"names":[],"mappings":";;;AACA,0CAAyD;AAGzD,SAAgB,oBAAoB,CAAC,EAAC,IAAI,EAAE,GAAG,EAAE,eAAe,EAAsE;IAClI,MAAM,EAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,KAAK,EAAC,GAAG,IAAA,+BAAuB,EAAC,EAAC,GAAG,EAAC,IAAI,EAAE,IAAgB,EAAE,GAAG,EAAE,GAAG,KAAI,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,EAAE,CAAA,EAAE,eAAe,EAAC,EAAC,CAAC,CAAA;IAE3L,OAAO,CAAC,EAAC,GAAG,EAAC,UAAU,EAAE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,KAAK,EAAC,EAAC,CAAC,CAAC;AACzH,CAAC;AAJD,oDAIC"}
|
|
@@ -10,17 +10,18 @@ const react_1 = require("react");
|
|
|
10
10
|
function useUpdates({ user }) {
|
|
11
11
|
const [active, setActive] = (0, react_1.useState)();
|
|
12
12
|
const firebaseQuery = new firebaseQuery_1.default();
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
13
|
+
const fetchUpdates = async () => {
|
|
14
|
+
var _a;
|
|
15
|
+
try {
|
|
16
|
+
const docs = await firebaseQuery.getDocsWhere("updates", [(0, firestore_1.orderBy)("created", "desc"), (0, firestore_1.limit)(1)]);
|
|
17
|
+
const item = Object.values(docs)[0];
|
|
18
|
+
if (!((_a = user === null || user === void 0 ? void 0 : user.readUpdates) === null || _a === void 0 ? void 0 : _a.includes(item.id)))
|
|
19
|
+
setActive(item);
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
console.log(error);
|
|
23
|
+
}
|
|
24
|
+
};
|
|
24
25
|
const dismiss = () => {
|
|
25
26
|
if (!user)
|
|
26
27
|
return;
|
|
@@ -33,7 +34,7 @@ function useUpdates({ user }) {
|
|
|
33
34
|
console.log(error);
|
|
34
35
|
}
|
|
35
36
|
};
|
|
36
|
-
return ({ ...{ active, dismiss } });
|
|
37
|
+
return ({ ...{ active, dismiss, fetchUpdates } });
|
|
37
38
|
}
|
|
38
39
|
exports.useUpdates = useUpdates;
|
|
39
40
|
//# sourceMappingURL=useUpdates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useUpdates.js","sourceRoot":"","sources":["../../../src/features/updates/useUpdates.tsx"],"names":[],"mappings":";;;;;;AAAA,iFAAyD;AACzD,kDAA8D;AAC9D,
|
|
1
|
+
{"version":3,"file":"useUpdates.js","sourceRoot":"","sources":["../../../src/features/updates/useUpdates.tsx"],"names":[],"mappings":";;;;;;AAAA,iFAAyD;AACzD,kDAA8D;AAC9D,iCAAgC;AAGhC,SAAgB,UAAU,CAAC,EAAC,IAAI,EAAmB;IAChD,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAA,gBAAQ,GAA6C,CAAC;IAClF,MAAM,aAAa,GAAG,IAAI,uBAAa,EAAE,CAAC;IAE1C,MAAM,YAAY,GAAG,KAAK,IAAI,EAAE;;QAC/B,IAAI,CAAC;YACD,MAAM,IAAI,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC,SAAS,EAAE,CAAC,IAAA,mBAAO,EAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAA,iBAAK,EAAC,CAAC,CAAC,CAAC,CAAC,CAAA;YAChG,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAiE,CAAC,CAAC,CAAC,CAAC,CAAC;YACjG,IAAI,CAAC,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,WAAW,0CAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;QAE/D,CAAC;QAAC,OAAM,KAAK,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACvB,CAAC;IAEL,CAAC,CAAA;IAGG,MAAM,OAAO,GAAG,GAAG,EAAE;QACjB,IAAI,CAAC,IAAI;YAAE,OAAM;QAEjB,IAAI,CAAC;YACD,aAAa,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,EAAC,WAAW,EAAE,IAAA,sBAAU,EAAC,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,EAAE,CAAC,EAAC,CAAC,CAAA;YAC/E,4FAA4F;YAC5F,SAAS,CAAC,SAAS,CAAC,CAAC;QACzB,CAAC;QACD,OAAM,KAAK,EAAE,CAAC;YACV,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;QACtB,CAAC;IACL,CAAC,CAAA;IAEH,OAAO,CAAC,EAAC,GAAG,EAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAC,EAAC,CAAC,CAAA;AAE/C,CAAC;AAhCD,gCAgCC"}
|
package/lib/reduxHooks.d.ts
CHANGED
|
@@ -109,6 +109,15 @@ export declare function useStudent({ user }: {
|
|
|
109
109
|
add: (formData: StudentPlacementData) => Promise<void>;
|
|
110
110
|
update: (placementId: string, attributes: Partial<StudentPlacementData>) => Promise<void>;
|
|
111
111
|
delete: (id: string) => Promise<void>;
|
|
112
|
+
getUserPlacements: () => Promise<void | import("@firebase/firestore").QuerySnapshot<import("@firebase/firestore").DocumentData> | {
|
|
113
|
+
[k: string]: any;
|
|
114
|
+
}>;
|
|
115
|
+
getPlacementsStart: (start: Date, end: Date) => Promise<{
|
|
116
|
+
[key: string]: StudentPlacementData;
|
|
117
|
+
}>;
|
|
118
|
+
getPlacementsEnd: (end: Date) => Promise<{
|
|
119
|
+
[key: string]: StudentPlacementData;
|
|
120
|
+
}>;
|
|
112
121
|
activePlacement: StudentPlacementData | undefined;
|
|
113
122
|
dispatchActivePlacement: () => void;
|
|
114
123
|
dispatchUpcomingPlacement: () => void;
|
|
@@ -248,6 +257,15 @@ export declare function useInstituteStudent({ user }: {
|
|
|
248
257
|
add: (formData: StudentPlacementData) => Promise<void>;
|
|
249
258
|
update: (placementId: string, attributes: Partial<StudentPlacementData>) => Promise<void>;
|
|
250
259
|
delete: (id: string) => Promise<void>;
|
|
260
|
+
getUserPlacements: () => Promise<void | import("@firebase/firestore").QuerySnapshot<import("@firebase/firestore").DocumentData> | {
|
|
261
|
+
[k: string]: any;
|
|
262
|
+
}>;
|
|
263
|
+
getPlacementsStart: (start: Date, end: Date) => Promise<{
|
|
264
|
+
[key: string]: StudentPlacementData;
|
|
265
|
+
}>;
|
|
266
|
+
getPlacementsEnd: (end: Date) => Promise<{
|
|
267
|
+
[key: string]: StudentPlacementData;
|
|
268
|
+
}>;
|
|
251
269
|
activePlacement: StudentPlacementData | undefined;
|
|
252
270
|
dispatchActivePlacement: () => void;
|
|
253
271
|
dispatchUpcomingPlacement: () => void;
|
package/lib/reduxHooks.js
CHANGED
|
@@ -12,6 +12,8 @@ const activePlacement_1 = require("./features/placements/studentPlacements/activ
|
|
|
12
12
|
const completedStudentPlacementsSlice_1 = require("./features/placements/studentPlacements/completedStudentPlacementsSlice");
|
|
13
13
|
const upcomingStudentPlacementsSlice_1 = require("./features/placements/studentPlacements/upcomingStudentPlacementsSlice");
|
|
14
14
|
const firebaseQuery_1 = __importDefault(require("./firebase/firebaseQuery"));
|
|
15
|
+
const readDatabase_1 = require("./firebase/readDatabase");
|
|
16
|
+
const util_1 = require("./firebase/util");
|
|
15
17
|
exports.useAppSelector = react_redux_1.useSelector;
|
|
16
18
|
const useAppDispatch = () => (0, react_redux_1.useDispatch)();
|
|
17
19
|
exports.useAppDispatch = useAppDispatch;
|
|
@@ -70,6 +72,15 @@ function useStudent({ user }) {
|
|
|
70
72
|
else
|
|
71
73
|
dispatch((0, upcomingStudentPlacementsSlice_1.addUpcomingStudentPlacements)({ formData }));
|
|
72
74
|
};
|
|
75
|
+
const getUserPlacements = async () => {
|
|
76
|
+
return await (0, readDatabase_1.getPlacementsWhere)({ w: (0, firestore_1.where)("uid", "==", user === null || user === void 0 ? void 0 : user.id) });
|
|
77
|
+
};
|
|
78
|
+
const getPlacementsStart = async (start, end) => {
|
|
79
|
+
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"))]);
|
|
80
|
+
};
|
|
81
|
+
const getPlacementsEnd = async (end) => {
|
|
82
|
+
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"))]);
|
|
83
|
+
};
|
|
73
84
|
return {
|
|
74
85
|
contacts: {
|
|
75
86
|
add: async (contactForm) => await dispatch((0, contactsSlice_1.addContact)({ contactForm: contactForm, userId: user.id })),
|
|
@@ -83,6 +94,9 @@ function useStudent({ user }) {
|
|
|
83
94
|
add: async (formData) => await handleAddPlacement(formData),
|
|
84
95
|
update: async (placementId, attributes) => await handleUpdatePlacement(placementId, attributes),
|
|
85
96
|
delete: async (id) => await handleDeletePlacement(id),
|
|
97
|
+
getUserPlacements,
|
|
98
|
+
getPlacementsStart,
|
|
99
|
+
getPlacementsEnd,
|
|
86
100
|
activePlacement,
|
|
87
101
|
dispatchActivePlacement,
|
|
88
102
|
dispatchUpcomingPlacement,
|
package/lib/reduxHooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reduxHooks.js","sourceRoot":"","sources":["../src/reduxHooks.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAmD;AACnD,6CAA4E;AAE5E,qEAAyG;AACzG,yDAA2F;AAC3F,6FAAkH;AAClH,6HAAwN;AACxN,2HAAgO;AAChO,6EAAoD;
|
|
1
|
+
{"version":3,"file":"reduxHooks.js","sourceRoot":"","sources":["../src/reduxHooks.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {useState
|
|
1
|
+
import {useState} from "react"
|
|
2
2
|
import FirebaseQuery from "../../firebase/firebaseQuery"
|
|
3
3
|
import {where} from "firebase/firestore"
|
|
4
4
|
import {StudentPlacementData, UserData} from "../../typeDefinitions"
|
|
@@ -12,30 +12,39 @@ export function useAnalyticsCard({user}: {user: UserData}){
|
|
|
12
12
|
const [_, setPlacementsWithoutAnalytics] = useState<{[key:string]: StudentPlacementData}>();
|
|
13
13
|
const firebaseQuery = new FirebaseQuery();
|
|
14
14
|
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
const fetchAnalyticsCardDetails = async () => {
|
|
16
|
+
try {
|
|
17
|
+
setTotal(await firebaseQuery.getCount("placements", [where("uid", "==", user.id)]))
|
|
18
|
+
setCompleted(await firebaseQuery.getCount("placements", [where("uid", "==", user.id), where("completed", "==", true)]))
|
|
19
|
+
setPlacementsWithoutAnalytics(await firebaseQuery.getDocsWhere("placements", [where("uid", "==", user.id)]) as {[key:string]: StudentPlacementData});
|
|
20
|
+
|
|
21
|
+
} catch(error) {
|
|
22
|
+
console.log(error)
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
}
|
|
21
26
|
|
|
22
27
|
|
|
23
|
-
return ({...{total, completed}})
|
|
28
|
+
return ({...{total, completed, fetchAnalyticsCardDetails}})
|
|
24
29
|
}
|
|
25
30
|
|
|
26
31
|
export function useAnalyticsViews(user: UserData | null){
|
|
27
32
|
const [placementsWithoutAnalytics, setPlacementsWithoutAnalytics] = useState<{[key:string]: StudentPlacementData}>();
|
|
28
33
|
const firebaseQuery = new FirebaseQuery();
|
|
29
34
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
const p = Object.fromEntries(Object.entries(
|
|
35
|
+
const fetchAnalyticsViews = async () => {
|
|
36
|
+
try {
|
|
37
|
+
const docs = await firebaseQuery.getDocsWhere("placements", [where("uid", "==", user?.id)])
|
|
38
|
+
const p = Object.fromEntries(Object.entries(docs as {[key:string]: StudentPlacementData}).filter(([_, v]) => (!v.units || !v.personalAnalytics)))
|
|
34
39
|
setPlacementsWithoutAnalytics(p)
|
|
35
|
-
});
|
|
36
|
-
}, [user]);
|
|
37
40
|
|
|
38
|
-
|
|
41
|
+
} catch(error) {
|
|
42
|
+
console.log(error)
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
return ({...{placementsWithoutAnalytics, fetchAnalyticsViews}})
|
|
39
48
|
|
|
40
49
|
}
|
|
41
50
|
|
|
@@ -1,19 +1,24 @@
|
|
|
1
1
|
import {where} from "firebase/firestore";
|
|
2
2
|
import FirebaseQuery from "../../../firebase/firebaseQuery";
|
|
3
|
-
import {
|
|
3
|
+
import {useState} from "react";
|
|
4
4
|
import { UserData } from "../../../typeDefinitions";
|
|
5
5
|
|
|
6
6
|
export function useDowntime({user}: {user: UserData}){
|
|
7
7
|
const [downtime, setDowntime] = useState<{title: string, body: string}|false>();
|
|
8
8
|
const firebaseQuery = new FirebaseQuery();
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
10
|
+
const fetchDownTime = async () => {
|
|
11
|
+
try {
|
|
12
|
+
const docs = await firebaseQuery.getDocsWhere("downtime", [where("products", "array-contains", user?.product), where("active", "==", true)])
|
|
12
13
|
const downtimeDocs = { ...docs as {[key: string]: {title: string, body: string}}};
|
|
13
14
|
setDowntime(downtimeDocs[Object.keys(downtimeDocs)[0]] || false);
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
} catch(error) {
|
|
17
|
+
console.log(error)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
16
21
|
|
|
17
|
-
return ({...{downtime, setDowntime}})
|
|
22
|
+
return ({...{downtime, setDowntime, fetchDownTime}})
|
|
18
23
|
|
|
19
24
|
}
|
|
@@ -1,24 +1,9 @@
|
|
|
1
|
-
import { QueryConstraint
|
|
2
|
-
import FirebaseQuery from "../../../firebase/firebaseQuery";
|
|
3
|
-
import { getPlacementsWhere } from "../../../firebase/readDatabase";
|
|
4
|
-
import { convertDate } from "../../../firebase/util";
|
|
1
|
+
import { QueryConstraint } from "firebase/firestore";
|
|
5
2
|
import { useStudentPlacementList } from "../../../hooks";
|
|
6
|
-
import {
|
|
3
|
+
import { UserData } from "../../../typeDefinitions";
|
|
7
4
|
|
|
8
|
-
export function useStudentPlacements({user, uid, queryConstraint}: {user: UserData, uid?: string, queryConstraint?: QueryConstraint[]}){
|
|
5
|
+
export function useStudentPlacements({user, uid, queryConstraint}: {user: UserData, uid?: string, queryConstraint?: QueryConstraint[]}){
|
|
9
6
|
const {placements, loadMoreIcon, loadMorePlacements, setQuery, setInitialQueryLimit, reset} = useStudentPlacementList({...{user: user as UserData, uid: uid || user?.id, queryConstraint}})
|
|
10
7
|
|
|
11
|
-
|
|
12
|
-
return await getPlacementsWhere({w: where("uid", "==", user?.id)})
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
const getPlacementsStart = async (start: Date, end: Date) => {
|
|
16
|
-
return await firebaseQuery.getDocsWhere("placements", [where("uid", "==", user?.id), where("startDate", ">=", convertDate(start, "dbstring")), where("startDate", "<=", convertDate(end, "dbstring"))]) as {[key:string]: StudentPlacementData};
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
const getPlacementsEnd = async (end: Date) => {
|
|
20
|
-
return await firebaseQuery.getDocsWhere("placements", [where("uid", "==", user?.id), where("endDate", ">=", convertDate(end, "dbstring")), where("endDate", "<=", convertDate(end, "dbstring"))]) as {[key:string]: StudentPlacementData};
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
return ({...{placements, loadMoreIcon, loadMorePlacements, setQuery, setInitialQueryLimit, resetPlacements: reset, getUserPlacements, getPlacementsStart, getPlacementsEnd}});
|
|
8
|
+
return ({...{placements, loadMoreIcon, loadMorePlacements, setQuery, setInitialQueryLimit, resetPlacements: reset}});
|
|
24
9
|
}
|
|
@@ -1,22 +1,24 @@
|
|
|
1
1
|
import FirebaseQuery from "../../firebase/firebaseQuery";
|
|
2
2
|
import {orderBy, limit, arrayUnion} from "firebase/firestore";
|
|
3
|
-
import {useState
|
|
3
|
+
import {useState} from "react";
|
|
4
4
|
import { UserData } from "../../typeDefinitions";
|
|
5
5
|
|
|
6
6
|
export function useUpdates({user}: {user: UserData}){
|
|
7
7
|
const [active, setActive] = useState<{title: string, body: string, id: string}>();
|
|
8
8
|
const firebaseQuery = new FirebaseQuery();
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
10
|
+
const fetchUpdates = async () => {
|
|
11
|
+
try {
|
|
12
|
+
const docs = await firebaseQuery.getDocsWhere("updates", [orderBy("created", "desc"), limit(1)])
|
|
13
|
+
const item = Object.values(docs as {[key:string]: {title: string, body: string, id: string}})[0];
|
|
14
|
+
if (!user?.readUpdates?.includes(item.id)) setActive(item);
|
|
15
|
+
|
|
16
|
+
} catch(error) {
|
|
17
|
+
console.log(error)
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
}
|
|
21
|
+
|
|
20
22
|
|
|
21
23
|
const dismiss = () => {
|
|
22
24
|
if (!user) return
|
|
@@ -31,6 +33,6 @@ export function useUpdates({user}: {user: UserData}){
|
|
|
31
33
|
}
|
|
32
34
|
}
|
|
33
35
|
|
|
34
|
-
return ({...{active, dismiss}})
|
|
36
|
+
return ({...{active, dismiss, fetchUpdates}})
|
|
35
37
|
|
|
36
38
|
}
|
package/src/reduxHooks.ts
CHANGED
|
@@ -8,6 +8,8 @@ import { addCompletedStudentPlacements, deleteCompletedStudentPlacement, setComp
|
|
|
8
8
|
import { addUpcomingStudentPlacements, deleteUpcomingStudentPlacement, setUpcoming, setUpcomingStudentPlacements, updateUpcomingStudentPlacement } from "./features/placements/studentPlacements/upcomingStudentPlacementsSlice"
|
|
9
9
|
import FirebaseQuery from "./firebase/firebaseQuery"
|
|
10
10
|
import { Contact, StudentPlacementData, UserData } from "./typeDefinitions"
|
|
11
|
+
import { getPlacementsWhere } from "./firebase/readDatabase"
|
|
12
|
+
import { convertDate } from "./firebase/util"
|
|
11
13
|
|
|
12
14
|
export const useAppSelector: TypedUseSelectorHook<RootState> = useSelector
|
|
13
15
|
export const useAppDispatch = () => useDispatch<AppDispatch>();
|
|
@@ -75,6 +77,18 @@ export function useStudent({user} : {user: UserData}) {
|
|
|
75
77
|
else dispatch(addUpcomingStudentPlacements({formData}))
|
|
76
78
|
}
|
|
77
79
|
|
|
80
|
+
const getUserPlacements = async () => {
|
|
81
|
+
return await getPlacementsWhere({w: where("uid", "==", user?.id)})
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const getPlacementsStart = async (start: Date, end: Date) => {
|
|
85
|
+
return await firebaseQuery.getDocsWhere("placements", [where("uid", "==", user?.id), where("startDate", ">=", convertDate(start, "dbstring")), where("startDate", "<=", convertDate(end, "dbstring"))]) as {[key:string]: StudentPlacementData};
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const getPlacementsEnd = async (end: Date) => {
|
|
89
|
+
return await firebaseQuery.getDocsWhere("placements", [where("uid", "==", user?.id), where("endDate", ">=", convertDate(end, "dbstring")), where("endDate", "<=", convertDate(end, "dbstring"))]) as {[key:string]: StudentPlacementData};
|
|
90
|
+
}
|
|
91
|
+
|
|
78
92
|
return {
|
|
79
93
|
contacts: {
|
|
80
94
|
add: async (contactForm: Contact) => await dispatch(addContact({contactForm: contactForm, userId: user.id})),
|
|
@@ -89,6 +103,9 @@ export function useStudent({user} : {user: UserData}) {
|
|
|
89
103
|
add: async (formData: StudentPlacementData) => await handleAddPlacement(formData),
|
|
90
104
|
update: async (placementId: string, attributes: Partial<StudentPlacementData>) => await handleUpdatePlacement(placementId, attributes),
|
|
91
105
|
delete: async (id: string) => await handleDeletePlacement(id),
|
|
106
|
+
getUserPlacements,
|
|
107
|
+
getPlacementsStart,
|
|
108
|
+
getPlacementsEnd,
|
|
92
109
|
activePlacement,
|
|
93
110
|
dispatchActivePlacement,
|
|
94
111
|
dispatchUpcomingPlacement,
|