placementt-core 1.400.1001 → 1.400.1004
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/deploy-all.js +19 -8
- package/lib/algoliaConfig.d.ts +11 -0
- package/lib/algoliaConfig.js +15 -0
- package/lib/algoliaConfig.js.map +1 -0
- package/lib/features/search/globalSearch.js +5 -3
- package/lib/features/search/globalSearch.js.map +1 -1
- package/lib/hooks.js +6 -5
- package/lib/hooks.js.map +1 -1
- package/package.json +1 -1
- package/src/algoliaConfig.ts +12 -0
- package/src/features/search/globalSearch.ts +4 -3
- package/src/hooks.tsx +6 -5
- package/test-local.js +20 -5
- package/watch-local.js +21 -5
package/deploy-all.js
CHANGED
|
@@ -25,10 +25,25 @@ function updateVersion(version) {
|
|
|
25
25
|
|
|
26
26
|
// ---- Keep original file contents for reset ----
|
|
27
27
|
const firebaseConfigPath = 'src/firebase/firebaseConfig.tsx';
|
|
28
|
-
|
|
28
|
+
// Every Algolia client reads the app id from this one module, so swapping it
|
|
29
|
+
// here is what repoints the whole package at the dev Algolia application.
|
|
30
|
+
const algoliaConfigPath = 'src/algoliaConfig.ts';
|
|
29
31
|
|
|
30
32
|
const originalFirebaseConfig = fs.readFileSync(firebaseConfigPath, 'utf8');
|
|
31
|
-
const
|
|
33
|
+
const originalAlgoliaConfig = fs.readFileSync(algoliaConfigPath, 'utf8');
|
|
34
|
+
|
|
35
|
+
// A dev build that silently keeps the prod app id would query the production
|
|
36
|
+
// indexes, so refuse to publish one rather than let the swap miss.
|
|
37
|
+
function toDevAlgoliaConfig(source) {
|
|
38
|
+
const swapped = source.replace(/XMPXCMUUOJ/g, 'A0ZB50I7VS');
|
|
39
|
+
|
|
40
|
+
if (swapped === source) {
|
|
41
|
+
console.error(`❌ No prod Algolia app id found in ${algoliaConfigPath} — the dev build would still point at production.`);
|
|
42
|
+
process.exit(1);
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
return swapped;
|
|
46
|
+
}
|
|
32
47
|
|
|
33
48
|
// -------------------------------
|
|
34
49
|
// 1️⃣ PROD VERSION
|
|
@@ -53,11 +68,7 @@ let firebaseConfig = originalFirebaseConfig.replace(
|
|
|
53
68
|
);
|
|
54
69
|
fs.writeFileSync(firebaseConfigPath, firebaseConfig);
|
|
55
70
|
|
|
56
|
-
|
|
57
|
-
/XMPXCMUUOJ/g,
|
|
58
|
-
'A0ZB50I7VS'
|
|
59
|
-
);
|
|
60
|
-
fs.writeFileSync(hooksPath, hooks);
|
|
71
|
+
fs.writeFileSync(algoliaConfigPath, toDevAlgoliaConfig(originalAlgoliaConfig));
|
|
61
72
|
|
|
62
73
|
const devVersion = `1.400.${nextPatch}`;
|
|
63
74
|
updateVersion(devVersion);
|
|
@@ -93,7 +104,7 @@ run('npm publish --tag emu');
|
|
|
93
104
|
// -------------------------------
|
|
94
105
|
console.log("🧹 Resetting source files...");
|
|
95
106
|
fs.writeFileSync(firebaseConfigPath, originalFirebaseConfig);
|
|
96
|
-
fs.writeFileSync(
|
|
107
|
+
fs.writeFileSync(algoliaConfigPath, originalAlgoliaConfig);
|
|
97
108
|
|
|
98
109
|
console.log("🎉 Deployment complete!");
|
|
99
110
|
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which Algolia application the package talks to.
|
|
3
|
+
*
|
|
4
|
+
* This lives on its own, away from any code that runs on import, because the
|
|
5
|
+
* dev flavour of placementt-core is published by rewriting the app id in this
|
|
6
|
+
* file (see deploy-all.js, test-local.js and watch-local.js). Keeping every
|
|
7
|
+
* Algolia client pointed at this one constant is what stops a dev build from
|
|
8
|
+
* querying the production indexes — so read the id from here rather than
|
|
9
|
+
* writing it inline at a call site.
|
|
10
|
+
*/
|
|
11
|
+
export declare const ALGOLIA_APP_ID = "A0ZB50I7VS";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Which Algolia application the package talks to.
|
|
4
|
+
*
|
|
5
|
+
* This lives on its own, away from any code that runs on import, because the
|
|
6
|
+
* dev flavour of placementt-core is published by rewriting the app id in this
|
|
7
|
+
* file (see deploy-all.js, test-local.js and watch-local.js). Keeping every
|
|
8
|
+
* Algolia client pointed at this one constant is what stops a dev build from
|
|
9
|
+
* querying the production indexes — so read the id from here rather than
|
|
10
|
+
* writing it inline at a call site.
|
|
11
|
+
*/
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.ALGOLIA_APP_ID = void 0;
|
|
14
|
+
exports.ALGOLIA_APP_ID = "A0ZB50I7VS";
|
|
15
|
+
//# sourceMappingURL=algoliaConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"algoliaConfig.js","sourceRoot":"","sources":["../src/algoliaConfig.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEU,QAAA,cAAc,GAAG,YAAY,CAAC"}
|
|
@@ -17,7 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
exports.nonEmptyGlobalSearchSections = exports.totalGlobalSearchHits = exports.globalSearch = exports.availableGlobalSearchIndexes = exports.GLOBAL_SEARCH_INDEXES = exports.GLOBAL_SEARCH_INDEX_HITS = exports.GLOBAL_SEARCH_OVERVIEW_HITS = void 0;
|
|
18
18
|
const algoliasearch_1 = __importDefault(require("algoliasearch"));
|
|
19
19
|
const util_1 = require("../../firebase/util");
|
|
20
|
-
const
|
|
20
|
+
const algoliaConfig_1 = require("../../algoliaConfig");
|
|
21
21
|
/** How many results a section shows before the user drills into one index. */
|
|
22
22
|
exports.GLOBAL_SEARCH_OVERVIEW_HITS = 5;
|
|
23
23
|
/** How many results one index shows per page once the user has drilled in. */
|
|
@@ -55,7 +55,9 @@ exports.GLOBAL_SEARCH_INDEXES = [
|
|
|
55
55
|
labelSingular: "employer",
|
|
56
56
|
indexName: "providerContacts",
|
|
57
57
|
available: (institute) => Boolean(institute && institute.network !== false),
|
|
58
|
-
|
|
58
|
+
// The oId is a Firestore id, so it goes into the attribute path unquoted —
|
|
59
|
+
// the same shape algoliaProviderContactSearch already uses.
|
|
60
|
+
filters: (user) => `savedBy.${user.oId}.exists:true`,
|
|
59
61
|
toHit: (hit) => ({
|
|
60
62
|
id: hit.objectID,
|
|
61
63
|
title: hit.name || fullName(hit.contactForename, hit.contactSurname) || "Unnamed employer",
|
|
@@ -109,7 +111,7 @@ const globalSearch = async ({ user, institute, query, indexIds, hitsPerPage = ex
|
|
|
109
111
|
.filter((index) => !indexIds || indexIds.includes(index.id));
|
|
110
112
|
if (!indexes.length)
|
|
111
113
|
return {};
|
|
112
|
-
const client = (0, algoliasearch_1.default)(ALGOLIA_APP_ID, user.algoliaKey);
|
|
114
|
+
const client = (0, algoliasearch_1.default)(algoliaConfig_1.ALGOLIA_APP_ID, user.algoliaKey);
|
|
113
115
|
const { results } = await client.multipleQueries(indexes.map((index) => ({
|
|
114
116
|
indexName: index.indexName,
|
|
115
117
|
query: trimmed,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globalSearch.js","sourceRoot":"","sources":["../../../src/features/search/globalSearch.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;GAUG;;;;;;AAEH,kEAA0C;AAE1C,8CAA+D;
|
|
1
|
+
{"version":3,"file":"globalSearch.js","sourceRoot":"","sources":["../../../src/features/search/globalSearch.ts"],"names":[],"mappings":"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"}
|
package/lib/hooks.js
CHANGED
|
@@ -42,6 +42,7 @@ const writeDatabase_1 = require("./firebase/writeDatabase");
|
|
|
42
42
|
const algoliasearch_1 = __importDefault(require("algoliasearch"));
|
|
43
43
|
const storage_1 = require("firebase/storage");
|
|
44
44
|
const util_2 = require("./util");
|
|
45
|
+
const algoliaConfig_1 = require("./algoliaConfig");
|
|
45
46
|
const DEFAULTQUERYLIMIT = 5;
|
|
46
47
|
function useStudentPlacementList({ user, student, queryConstraint, ql = DEFAULTQUERYLIMIT }) {
|
|
47
48
|
const [loadMoreIcon, setLoadMoreIcon] = (0, react_1.useState)(true);
|
|
@@ -137,7 +138,7 @@ function useOldInstitutePlacementList({ id, user, cohort, queryConstraint, ql =
|
|
|
137
138
|
const [oId, setOId] = (0, react_1.useState)();
|
|
138
139
|
const [placements, setPlacements] = (0, react_1.useState)();
|
|
139
140
|
const [startPlacementAfter, setStartPlacementAfter] = (0, react_1.useState)(); // uid, pId
|
|
140
|
-
const algoliaClient = (0, algoliasearch_1.default)(
|
|
141
|
+
const algoliaClient = (0, algoliasearch_1.default)(algoliaConfig_1.ALGOLIA_APP_ID, user.algoliaKey);
|
|
141
142
|
const placementsIndex = algoliaClient.initIndex("placements");
|
|
142
143
|
(0, react_1.useEffect)(() => {
|
|
143
144
|
if (user.product !== "institutes" || user.userType !== "Staff") {
|
|
@@ -467,7 +468,7 @@ function useParentPaginator({ user, filters, view, school, additionalEntryProces
|
|
|
467
468
|
return { tableData, page, loading, setFilters, setView, pageUp, pageDown, sorts, exportCSV };
|
|
468
469
|
}
|
|
469
470
|
const algoliaPlacementSearch = async (data, user, query, sort, page, filters, limit, cohort, inProgress) => {
|
|
470
|
-
const algoliaClient = (0, algoliasearch_1.default)(
|
|
471
|
+
const algoliaClient = (0, algoliasearch_1.default)(algoliaConfig_1.ALGOLIA_APP_ID, user.algoliaKey);
|
|
471
472
|
const placementsIndex = algoliaClient.initIndex(sort ? Object.values(sort[1]).join("_") : "placements");
|
|
472
473
|
// const usersIndex = algoliaClient.initIndex("users");
|
|
473
474
|
// let userSearchString = `userType:Students AND status:active AND oId:${user.oId} AND product:${user.product}`
|
|
@@ -890,7 +891,7 @@ function useFilterTablePaginator({ data }) {
|
|
|
890
891
|
return ({ ...{ tableData, setPage, setFilters, page } });
|
|
891
892
|
}
|
|
892
893
|
const algoliaProviderContactSearch = async (data, user, query, sort, page, filters, limit, cohort, inProgress) => {
|
|
893
|
-
const algoliaClient = (0, algoliasearch_1.default)(
|
|
894
|
+
const algoliaClient = (0, algoliasearch_1.default)(algoliaConfig_1.ALGOLIA_APP_ID, user.algoliaKey);
|
|
894
895
|
const placementsIndex = algoliaClient.initIndex(sort ? "providerContacts_" + Object.values(sort[1]).join("_") : "providerContacts");
|
|
895
896
|
if (!data)
|
|
896
897
|
return {};
|
|
@@ -1096,7 +1097,7 @@ function useProviderContactPaginator({ data, institute, user, event, view, initi
|
|
|
1096
1097
|
return { tableData, pageUp, pageDown, setFilters, sorts, page, setView, loading, updateSearch, updateSort, sort, exportCSV };
|
|
1097
1098
|
}
|
|
1098
1099
|
const algoliaUsersSearch = async (data, user, query, sort, page, filters, limit, cohort, userType) => {
|
|
1099
|
-
const algoliaClient = (0, algoliasearch_1.default)(
|
|
1100
|
+
const algoliaClient = (0, algoliasearch_1.default)(algoliaConfig_1.ALGOLIA_APP_ID, user.algoliaKey);
|
|
1100
1101
|
const userIndex = algoliaClient.initIndex(sort ? `users_${Object.values(sort[1]).join("_")}` : "users");
|
|
1101
1102
|
if (!data || !data.where)
|
|
1102
1103
|
return {};
|
|
@@ -1299,7 +1300,7 @@ function useCohortUserPaginator({ user, cohort, data, search, userType, sort })
|
|
|
1299
1300
|
const [dataListenerUnsubscribe, setDataListenerUnsubscribe] = (0, react_1.useState)();
|
|
1300
1301
|
const [queries, setQueries] = (0, react_1.useState)();
|
|
1301
1302
|
const [prevSearch, setPrevSearch] = (0, react_1.useState)();
|
|
1302
|
-
const algoliaClient = (0, algoliasearch_1.default)(
|
|
1303
|
+
const algoliaClient = (0, algoliasearch_1.default)(algoliaConfig_1.ALGOLIA_APP_ID, user.algoliaKey);
|
|
1303
1304
|
const usersIndex = algoliaClient.initIndex("users");
|
|
1304
1305
|
const sortOptions = {
|
|
1305
1306
|
["Forename - Asc"]: ["details.forename", "asc"],
|