placementt-core 1.400.754 → 1.400.756

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.
@@ -1,4 +1,8 @@
1
- import { EmailSectionConfig, EmailSectionNames } from "./typeDefinitions";
1
+ import { EmailSectionConfig, EmailSectionNames, SectionDataFetcher } from "./typeDefinitions";
2
+ export declare const createEmailSectionRenderer: (fetcher?: SectionDataFetcher) => (sectionName: EmailSectionNames, data: {
3
+ [key: string]: unknown;
4
+ }) => Promise<string>;
5
+ /** @deprecated Use createEmailSectionRenderer() instead */
2
6
  export declare const emailCampaignSectionDataFetcher: (sectionName: EmailSectionNames, data: {
3
7
  [key: string]: unknown;
4
8
  }) => Promise<string>;
@@ -1,12 +1,101 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.sharedOpportunitiesForSchoolSection = exports.employerDatabaseSummarySection = exports.sharedOpportunitiesSection = exports.attendingEventsSection = exports.upcomingEventsSection = exports.emailCampaignSectionDataFetcher = void 0;
39
+ exports.sharedOpportunitiesForSchoolSection = exports.employerDatabaseSummarySection = exports.sharedOpportunitiesSection = exports.attendingEventsSection = exports.upcomingEventsSection = exports.emailCampaignSectionDataFetcher = exports.createEmailSectionRenderer = void 0;
7
40
  const firestore_1 = require("firebase/firestore");
8
41
  const firebaseQuery_1 = __importDefault(require("./firebase/firebaseQuery"));
9
42
  const util_1 = require("./firebase/util");
43
+ const constants_1 = require("./constants");
44
+ const createFirebaseWebFetcher = () => {
45
+ const fq = new firebaseQuery_1.default();
46
+ return {
47
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ getDocsWhere: (collection, conditions) => fq.getDocsWhere(collection, conditions.map((c) => (0, firestore_1.where)(c.field, c.op, c.value))),
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ getDocData: (path) => fq.getDocData(path),
51
+ getChart: async (type, data, title) => {
52
+ var _a, _b, _c, _d, _e;
53
+ if (typeof window === "undefined")
54
+ return "";
55
+ try {
56
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
57
+ const ChartModule = await Promise.resolve().then(() => __importStar(require("chart.js")));
58
+ const Chart = (_a = ChartModule.Chart) !== null && _a !== void 0 ? _a : (_b = ChartModule.default) === null || _b === void 0 ? void 0 : _b.Chart;
59
+ if (!Chart)
60
+ return "";
61
+ const registerables = (_e = (_c = ChartModule.registerables) !== null && _c !== void 0 ? _c : (_d = ChartModule.default) === null || _d === void 0 ? void 0 : _d.registerables) !== null && _e !== void 0 ? _e : [];
62
+ Chart.register(...registerables);
63
+ const canvas = document.createElement("canvas");
64
+ canvas.width = 600;
65
+ canvas.height = 400;
66
+ const ctx = canvas.getContext("2d");
67
+ if (!ctx)
68
+ return "";
69
+ const labels = Object.keys(data);
70
+ const values = labels.map((l) => { var _a; return (_a = data[l].value) !== null && _a !== void 0 ? _a : 0; });
71
+ const bgColors = labels.map((l) => { var _a; return `${(_a = data[l].color) !== null && _a !== void 0 ? _a : PRIMARY_COLOUR}70`; });
72
+ const borderColors = labels.map((l) => { var _a; return (_a = data[l].color) !== null && _a !== void 0 ? _a : PRIMARY_COLOUR; });
73
+ const chart = new Chart(ctx, {
74
+ type: type === "pie" ? "pie" : "bar",
75
+ data: {
76
+ labels,
77
+ datasets: [{ label: title, data: values, backgroundColor: bgColors, borderColor: borderColors, borderWidth: 2 }],
78
+ },
79
+ options: {
80
+ responsive: false,
81
+ animation: false,
82
+ plugins: {
83
+ legend: { display: type === "pie", position: "bottom" },
84
+ title: { display: Boolean(title), text: title, font: { size: 24, family: "nunito" }, color: "black" },
85
+ },
86
+ ...(type === "bar" ? { scales: { y: { ticks: { precision: 0 } }, x: { ticks: { font: { family: "nunito" }, color: "black" } } } } : {}),
87
+ },
88
+ });
89
+ const dataUrl = canvas.toDataURL("image/png");
90
+ chart.destroy();
91
+ return dataUrl;
92
+ }
93
+ catch {
94
+ return "";
95
+ }
96
+ },
97
+ };
98
+ };
10
99
  const PRIMARY_COLOUR = "#397DF2";
11
100
  function activityTypeLabel(type) {
12
101
  const labels = {
@@ -27,93 +116,124 @@ function sectionStyles(color) {
27
116
  emptyText: `font-family: nunito, sans-serif; color: #666; font-size: 13px; margin: 4px 0;`,
28
117
  };
29
118
  }
30
- const emailCampaignSectionDataFetcher = async (sectionName, data) => {
31
- const firebaseQuery = new firebaseQuery_1.default();
32
- const oId = data.oId;
33
- const primaryColor = data.primaryColor;
34
- const today = (0, util_1.convertDate)(new Date(), "dbstring");
35
- switch (sectionName) {
36
- case "upcomingEventsSection": {
37
- const eventsRaw = await firebaseQuery.getDocsWhere(["externalEvents"], [(0, firestore_1.where)("oId", "==", oId), (0, firestore_1.where)("startDate", ">=", today)]);
38
- const events = Object.entries(eventsRaw).map(([id, e]) => ({
39
- id,
40
- title: e.name,
41
- description: e.description,
42
- startDate: (0, util_1.convertDate)(e.startDate, "visual") || e.startDate || "",
43
- endDate: e.endDate ? (0, util_1.convertDate)(e.endDate, "visual") : undefined,
44
- activityType: e.activityType || e.activityId || "other",
45
- location: e.locality,
46
- image: e.image,
47
- }));
48
- return exports.upcomingEventsSection.render({ placeholder: false, events: events, oId, primaryColor });
49
- }
50
- case "attendingEventsSection": {
51
- const providerContactId = data.providerContactId;
52
- const attendeesRaw = await firebaseQuery.getDocsWhere(["externalEventAttendees"], [(0, firestore_1.where)("providerContactId", "==", providerContactId), (0, firestore_1.where)("oId", "==", oId)]);
53
- const events = (await Promise.all(Object.values(attendeesRaw).map(async (attendee) => {
54
- const event = await firebaseQuery.getDocData(["externalEvents", attendee.eventId]);
55
- if (!(event === null || event === void 0 ? void 0 : event.startDate) || (event.endDate && event.endDate < today))
56
- return null;
57
- return {
58
- title: event.name,
59
- description: event.description,
60
- startDate: (0, util_1.convertDate)(event.startDate, "visual") || event.startDate,
61
- endDate: event.endDate ? (0, util_1.convertDate)(event.endDate, "visual") : undefined,
62
- activityType: event.activityType || event.activityId || "other",
63
- location: event.locality,
119
+ const createEmailSectionRenderer = (fetcher) => {
120
+ const f = fetcher !== null && fetcher !== void 0 ? fetcher : createFirebaseWebFetcher();
121
+ return async (sectionName, data) => {
122
+ const oId = data.oId;
123
+ const primaryColor = data.primaryColor;
124
+ const today = (0, util_1.convertDate)(new Date(), "dbstring");
125
+ switch (sectionName) {
126
+ case "upcomingEventsSection": {
127
+ const eventsRaw = await f.getDocsWhere(["externalEvents"], [{ field: "oId", op: "==", value: oId }, { field: "startDate", op: ">=", value: today }]);
128
+ const events = Object.entries(eventsRaw).map(([id, e]) => ({
129
+ id,
130
+ title: e.name,
131
+ description: e.description,
132
+ startDate: (0, util_1.convertDate)(e.startDate, "visual") || e.startDate || "",
133
+ endDate: e.endDate ? (0, util_1.convertDate)(e.endDate, "visual") : undefined,
134
+ activityType: e.activityType || e.activityId || "other",
135
+ location: e.locality,
136
+ image: e.image,
137
+ }));
138
+ return exports.upcomingEventsSection.render({ placeholder: false, events: events, oId, primaryColor });
139
+ }
140
+ case "attendingEventsSection": {
141
+ const providerContactId = data.providerContactId;
142
+ const attendeesRaw = await f.getDocsWhere(["externalEventAttendees"], [{ field: "providerContactId", op: "==", value: providerContactId }, { field: "oId", op: "==", value: oId }]);
143
+ const events = (await Promise.all(Object.values(attendeesRaw).map(async (attendee) => {
144
+ const event = await f.getDocData(["externalEvents", attendee.eventId]);
145
+ if (!(event === null || event === void 0 ? void 0 : event.startDate) || (event.endDate && event.endDate < today))
146
+ return null;
147
+ return {
148
+ title: event.name,
149
+ description: event.description,
150
+ startDate: (0, util_1.convertDate)(event.startDate, "visual") || event.startDate,
151
+ endDate: event.endDate ? (0, util_1.convertDate)(event.endDate, "visual") : undefined,
152
+ activityType: event.activityType || event.activityId || "other",
153
+ location: event.locality,
154
+ };
155
+ }))).filter(Boolean);
156
+ return exports.attendingEventsSection.render({ placeholder: false, events: events, primaryColor });
157
+ }
158
+ case "sharedOpportunitiesSection": {
159
+ const providerContactId = data.providerContactId;
160
+ const oppsRaw = await f.getDocsWhere(["externalEventRequests"], [{ field: "providerContactId", op: "==", value: providerContactId }]);
161
+ const opportunities = Object.entries(oppsRaw).map(([id, r]) => ({
162
+ id,
163
+ title: r.title || "",
164
+ description: r.description,
165
+ type: r.activityType,
166
+ created: r.created,
167
+ }));
168
+ return exports.sharedOpportunitiesSection.render({ placeholder: false, opportunities: opportunities, oId, primaryColor });
169
+ }
170
+ case "employerDatabaseSummarySection": {
171
+ const contactsRaw = await f.getDocsWhere(["providerContacts"], [{ field: `savedBy.${oId}.exists`, op: "==", value: true }]);
172
+ const contacts = Object.values(contactsRaw);
173
+ const sectors = new Set(contacts.map((c) => c.sector).filter(Boolean));
174
+ const consentedActivities = {};
175
+ contacts.forEach((c) => {
176
+ var _a;
177
+ const saved = (_a = c.savedBy) === null || _a === void 0 ? void 0 : _a[oId];
178
+ if (saved === null || saved === void 0 ? void 0 : saved.activities) {
179
+ saved.activities.forEach((activity) => {
180
+ consentedActivities[activity] = (consentedActivities[activity] || 0) + 1;
181
+ });
182
+ }
183
+ });
184
+ const stats = {
185
+ totalContacts: contacts.length,
186
+ sectors: sectors.size,
187
+ consentedActivities,
64
188
  };
65
- }))).filter(Boolean);
66
- return exports.attendingEventsSection.render({ placeholder: false, events: events, primaryColor });
67
- }
68
- case "sharedOpportunitiesSection": {
69
- const providerContactId = data.providerContactId;
70
- const oppsRaw = await firebaseQuery.getDocsWhere(["externalEventRequests"], [(0, firestore_1.where)("providerContactId", "==", providerContactId)]);
71
- const opportunities = Object.entries(oppsRaw).map(([id, r]) => ({
72
- id,
73
- title: r.title || "",
74
- description: r.description,
75
- type: r.activityType,
76
- created: r.created,
77
- }));
78
- return exports.sharedOpportunitiesSection.render({ placeholder: false, opportunities: opportunities, oId, primaryColor });
79
- }
80
- case "employerDatabaseSummarySection": {
81
- const contactsRaw = await firebaseQuery.getDocsWhere(["providerContacts"], [(0, firestore_1.where)(`savedBy.${oId}.exists`, "==", true)]);
82
- const contacts = Object.values(contactsRaw);
83
- const sectors = new Set(contacts.map((c) => c.sector).filter(Boolean));
84
- const consentedActivities = {};
85
- contacts.forEach((c) => {
86
- var _a;
87
- const saved = (_a = c.savedBy) === null || _a === void 0 ? void 0 : _a[oId];
88
- if (saved === null || saved === void 0 ? void 0 : saved.activities) {
89
- saved.activities.forEach((activity) => {
90
- consentedActivities[activity] = (consentedActivities[activity] || 0) + 1;
91
- });
189
+ const sectorCounts = {};
190
+ contacts.forEach((c) => {
191
+ var _a;
192
+ const sector = (_a = c.sector) === null || _a === void 0 ? void 0 : _a.trim();
193
+ if (!sector)
194
+ return;
195
+ if (!sectorCounts[sector])
196
+ sectorCounts[sector] = { value: 0, color: constants_1.sectorColours[sector] };
197
+ sectorCounts[sector].value += 1;
198
+ });
199
+ const activitiesRaw = await f.getDocsWhere(["externalActivities"], [{ field: "public", op: "==", value: true }]);
200
+ const activityCounts = Object.fromEntries(Object.entries(activitiesRaw).map(([activityId, activity]) => {
201
+ const count = contacts.reduce((total, c) => {
202
+ var _a, _b, _c;
203
+ const acts = (_c = (_b = (_a = c.savedBy) === null || _a === void 0 ? void 0 : _a[oId]) === null || _b === void 0 ? void 0 : _b.activities) !== null && _c !== void 0 ? _c : [];
204
+ return acts.includes(activityId) ? total + 1 : total;
205
+ }, 0);
206
+ return [activity.title || activityId, { value: count, color: activity.color }];
207
+ }));
208
+ let sectorChartSrc;
209
+ let activityChartSrc;
210
+ if (f.getChart) {
211
+ [sectorChartSrc, activityChartSrc] = await Promise.all([
212
+ Object.keys(sectorCounts).length ? f.getChart("pie", sectorCounts, "Sectors") : Promise.resolve(undefined),
213
+ Object.keys(activityCounts).length ? f.getChart("bar", activityCounts, "Employers consented to activities") : Promise.resolve(undefined),
214
+ ]);
92
215
  }
93
- });
94
- const stats = {
95
- totalContacts: contacts.length,
96
- sectors: sectors.size,
97
- consentedActivities,
98
- };
99
- return exports.employerDatabaseSummarySection.render({ placeholder: false, stats, primaryColor });
100
- }
101
- case "sharedOpportunitiesForSchoolSection": {
102
- const oppsRaw = await firebaseQuery.getDocsWhere(["externalEventRequests"], [(0, firestore_1.where)("schools", "array-contains", oId)]);
103
- const opportunities = Object.entries(oppsRaw).map(([id, r]) => ({
104
- id,
105
- title: r.title || "",
106
- description: r.description,
107
- type: r.activityType,
108
- created: r.created,
109
- }));
110
- return exports.sharedOpportunitiesForSchoolSection.render({ placeholder: false, opportunities: opportunities, primaryColor });
216
+ return exports.employerDatabaseSummarySection.render({ placeholder: false, stats, primaryColor, sectorChartSrc, activityChartSrc });
217
+ }
218
+ case "sharedOpportunitiesForSchoolSection": {
219
+ const oppsRaw = await f.getDocsWhere(["externalEventRequests"], [{ field: "schools", op: "array-contains", value: oId }]);
220
+ const opportunities = Object.entries(oppsRaw).map(([id, r]) => ({
221
+ id,
222
+ title: r.title || "",
223
+ description: r.description,
224
+ type: r.activityType,
225
+ created: r.created,
226
+ }));
227
+ return exports.sharedOpportunitiesForSchoolSection.render({ placeholder: false, opportunities: opportunities, primaryColor });
228
+ }
229
+ default:
230
+ return "";
111
231
  }
112
- default:
113
- return "";
114
- }
232
+ };
115
233
  };
116
- exports.emailCampaignSectionDataFetcher = emailCampaignSectionDataFetcher;
234
+ exports.createEmailSectionRenderer = createEmailSectionRenderer;
235
+ /** @deprecated Use createEmailSectionRenderer() instead */
236
+ exports.emailCampaignSectionDataFetcher = (0, exports.createEmailSectionRenderer)();
117
237
  exports.upcomingEventsSection = {
118
238
  id: "upcomingEvents",
119
239
  title: "Upcoming Events",
@@ -306,7 +426,7 @@ exports.employerDatabaseSummarySection = {
306
426
  description: "A summary of the employer database — total contacts, sectors represented, and consent breakdown by activity.",
307
427
  emailInput: [{ type: "heading-one", children: [{ text: "Our Employer Database" }] }, { type: "paragraph", children: [{ text: "We have a range of employers you can call on when organising events. Add your event to CareerThread to invite them." }] }],
308
428
  forTemplates: ["schoolsEmailCampaign"],
309
- render: ({ placeholder, stats, primaryColor: pc }) => {
429
+ render: ({ placeholder, stats, primaryColor: pc, sectorChartSrc, activityChartSrc }) => {
310
430
  const color = pc || PRIMARY_COLOUR;
311
431
  const s = sectionStyles(color);
312
432
  const displayStats = placeholder ? {
@@ -368,11 +488,13 @@ exports.employerDatabaseSummarySection = {
368
488
  </td>
369
489
  </tr>
370
490
  </table>
491
+ ${sectorChartSrc ? `<img src="${sectorChartSrc}" style="width:100%;height:auto;display:block;margin:8px 0;border-radius:8px;" alt="Sector breakdown" />` : ""}
371
492
  ${activityCardRows.length ? `
372
493
  <p style="font-size:14px;font-weight:bold;font-family:nunito,sans-serif;margin:8px 0 4px 0;color:#333;">Consented to Activities</p>
373
494
  <table width="100%" cellpadding="0" cellspacing="0" border="0" style="border-collapse:collapse;">
374
495
  ${activityCardRows.join("")}
375
496
  </table>` : ""}
497
+ ${activityChartSrc ? `<img src="${activityChartSrc}" style="width:100%;height:auto;display:block;margin:8px 0;border-radius:8px;" alt="Activity consents" />` : ""}
376
498
  </div>`;
377
499
  },
378
500
  };
@@ -1 +1 @@
1
- {"version":3,"file":"emailSections.js","sourceRoot":"","sources":["../src/emailSections.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"emailSections.js","sourceRoot":"","sources":["../src/emailSections.ts"],"names":[],"mappings":"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"}
@@ -2126,6 +2126,19 @@ export type TrustInvite = {
2126
2126
  messageId?: string;
2127
2127
  }[];
2128
2128
  };
2129
+ export type WhereCondition = {
2130
+ field: string;
2131
+ op: "==" | "!=" | "<" | "<=" | ">" | ">=" | "array-contains" | "in" | "not-in" | "array-contains-any";
2132
+ value: unknown;
2133
+ };
2134
+ export interface SectionDataFetcher {
2135
+ getDocsWhere<T>(collection: string[], conditions: WhereCondition[]): Promise<Record<string, T>>;
2136
+ getDocData<T>(path: string[]): Promise<T | null>;
2137
+ getChart?: (type: "pie" | "bar", data: Record<string, {
2138
+ value: number;
2139
+ color?: string;
2140
+ }>, title: string) => Promise<string>;
2141
+ }
2129
2142
  export type EmailContentObject = {
2130
2143
  subject: string;
2131
2144
  preheader: string;
@@ -2153,6 +2166,7 @@ export type EmailContentObject = {
2153
2166
  sectionData?: {
2154
2167
  [sectionId: string]: EmailSectionRenderProps;
2155
2168
  };
2169
+ sectionDataFetcher?: SectionDataFetcher;
2156
2170
  };
2157
2171
  export type YearScoreData = {
2158
2172
  eventsInvited?: number;
package/lib/util.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import { WhereFilterOp } from "firebase/firestore";
2
- import { AlumniConversation, DataViewerSelectionBackend, DataViewerSelectionWeb, EmailSectionNames, EmailTemplateConfig, ExternalEvent, ExternalEventAttendee, ExternalEventCareersSchool, ExternalEventStudent, FlagCodes, InstituteData, ProviderContactData, StudentPlacementData, UserData, WorkflowStage, YearScoreData } from "./typeDefinitions";
2
+ import { AlumniConversation, DataViewerSelectionBackend, DataViewerSelectionWeb, EmailTemplateConfig, ExternalEvent, ExternalEventAttendee, ExternalEventCareersSchool, ExternalEventStudent, FlagCodes, InstituteData, ProviderContactData, SectionDataFetcher, StudentPlacementData, UserData, WorkflowStage, YearScoreData } from "./typeDefinitions";
3
3
  import { Descendant } from "slate";
4
4
  type PlacementFlagCodeParams = {
5
5
  placement: StudentPlacementData;
@@ -25,7 +25,7 @@ export declare const getMostRecentAlumniMessage: (conversation: AlumniConversati
25
25
  delivered: "blocked" | "pending" | true;
26
26
  id: string;
27
27
  } | null;
28
- export declare function buildEmailHTML({ preheader, title, salutation, body, primaryColor, primaryButton, secondaryButton, primaryImage, designatedStaffEmail, organisationName, params, data, sectionData, emailSectionRenderer }: {
28
+ export declare function buildEmailHTML({ preheader, title, salutation, body, primaryColor, primaryButton, secondaryButton, primaryImage, designatedStaffEmail, organisationName, params, data, sectionData, sectionDataFetcher }: {
29
29
  preheader: string;
30
30
  title: string;
31
31
  salutation?: string;
@@ -44,16 +44,14 @@ export declare function buildEmailHTML({ preheader, title, salutation, body, pri
44
44
  organisationName?: string;
45
45
  params?: EmailTemplateConfig;
46
46
  data?: {
47
- [key: string]: string | undefined;
47
+ [key: string]: string | Buffer<ArrayBufferLike> | undefined;
48
48
  };
49
49
  sectionData?: {
50
50
  [sectionId: string]: {
51
51
  [key: string]: unknown;
52
52
  };
53
53
  };
54
- emailSectionRenderer?: (sectionName: EmailSectionNames, data: {
55
- [key: string]: unknown;
56
- }) => Promise<string>;
54
+ sectionDataFetcher?: SectionDataFetcher;
57
55
  }): Promise<string>;
58
56
  export declare const getWeightsForOES: (years: number) => {
59
57
  weights: number[];
package/lib/util.js CHANGED
@@ -18,6 +18,7 @@ const firestore_1 = require("firebase/firestore");
18
18
  const firebaseQuery_1 = __importDefault(require("./firebase/firebaseQuery"));
19
19
  const util_1 = require("./firebase/util");
20
20
  const constants_1 = require("./constants");
21
+ const emailSections_1 = require("./emailSections");
21
22
  const getPlacementFlagCodes = async ({ placement, studentData, workflow, institute, user }) => {
22
23
  var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
23
24
  let flags = placement.flags || [];
@@ -178,7 +179,8 @@ const getMostRecentAlumniMessage = (conversation) => {
178
179
  return mostRecent || null; // Return most recent or null if none found
179
180
  };
180
181
  exports.getMostRecentAlumniMessage = getMostRecentAlumniMessage;
181
- async function buildEmailHTML({ preheader, title, salutation, body, primaryColor = constants_1.PRIMARY_COLOUR, primaryButton, secondaryButton, primaryImage = "https://firebasestorage.googleapis.com/v0/b/placementt-dfa17.appspot.com/o/public%2FCareerThreadLogoForEmail.png?alt=media&token=046b5555-cd79-4fc9-bc89-90395e3fa351v", designatedStaffEmail, organisationName, params, data, sectionData, emailSectionRenderer }) {
182
+ async function buildEmailHTML({ preheader, title, salutation, body, primaryColor = constants_1.PRIMARY_COLOUR, primaryButton, secondaryButton, primaryImage = "https://firebasestorage.googleapis.com/v0/b/placementt-dfa17.appspot.com/o/public%2FCareerThreadLogoForEmail.png?alt=media&token=046b5555-cd79-4fc9-bc89-90395e3fa351v", designatedStaffEmail, organisationName, params, data, sectionData, sectionDataFetcher }) {
183
+ const emailSectionRenderer = sectionDataFetcher ? (0, emailSections_1.createEmailSectionRenderer)(sectionDataFetcher) : undefined;
182
184
  const serialiseSlate = (nodes) => {
183
185
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
184
186
  return nodes.map((n) => {