@quesmed/types-rn 2.6.272 → 2.6.273
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/package.json
CHANGED
|
@@ -42,6 +42,10 @@ export interface IChangeOsceRoleVar {
|
|
|
42
42
|
}
|
|
43
43
|
export type IChangeOsceRoleData = RestrictedData<graphqlNormalize & IOsceMarksheet, 'changeOsceRole'>;
|
|
44
44
|
export declare const MARK_OSCE_MARKSHEET_MARK: import("@apollo/client").DocumentNode;
|
|
45
|
+
export declare const getStationScore: (marks: IOsceMarksheetMark[]) => {
|
|
46
|
+
total: number;
|
|
47
|
+
userScore: number;
|
|
48
|
+
};
|
|
45
49
|
export interface IMarkOsceMarksheetMarkVar {
|
|
46
50
|
osceMarksheetMarkId: Id;
|
|
47
51
|
mark: number | EPaceMarkType;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.END_VOICE_SESSION = exports.CREATE_VOICE_SESSION = exports.optimisticSetOsceMarksheetFeedback = exports.updateCacheOnSetOsceMarksheetFeedback = exports.SET_OSCE_MARKSHEET_FEEDBACK = exports.updateCacheOnAutoMarkOsceMarksheet = exports.AUTO_MARK_OSCE_MARKSHEET = exports.STREAM_OSCE_CHAT_MESSAGE = exports.LEAVE_OSCE_MARKSHEET = exports.optimisticEndOsceMarksheet = exports.updateCacheOnEndOsceMarksheet = exports.END_OSCE_MARKSHEET = exports.MODIFY_OSCE_MARKSHEET = exports.updateCacheOnSaveOsceMarksheet = exports.SAVE_OSCE_MARKSHEET = exports.PRESTART_OSCE_MARKSHEET = exports.START_OSCE_TIMER = exports.START_OSCE_MARKSHEET = exports.SELECT_OSCE_STATION = exports.updateCacheOnMarkOsceMarksheetMark = exports.optimisticMarkOsceMarksheetMark = exports.MARK_OSCE_MARKSHEET_MARK = exports.CHANGE_OSCE_ROLE = exports.BUILD_OSCE_MARKSHEET = exports.CREATE_OR_JOIN_OSCE_MARKSHEET = exports.CANCEL_OSCE_MATCHMAKING = exports.CHECK_OSCE_MATCHMAKING = exports.ACCEPT_OSCE_MATCHMAKING = exports.START_OSCE_MATCHMAKING = void 0;
|
|
3
|
+
exports.END_VOICE_SESSION = exports.CREATE_VOICE_SESSION = exports.optimisticSetOsceMarksheetFeedback = exports.updateCacheOnSetOsceMarksheetFeedback = exports.SET_OSCE_MARKSHEET_FEEDBACK = exports.updateCacheOnAutoMarkOsceMarksheet = exports.AUTO_MARK_OSCE_MARKSHEET = exports.STREAM_OSCE_CHAT_MESSAGE = exports.LEAVE_OSCE_MARKSHEET = exports.optimisticEndOsceMarksheet = exports.updateCacheOnEndOsceMarksheet = exports.END_OSCE_MARKSHEET = exports.MODIFY_OSCE_MARKSHEET = exports.updateCacheOnSaveOsceMarksheet = exports.SAVE_OSCE_MARKSHEET = exports.PRESTART_OSCE_MARKSHEET = exports.START_OSCE_TIMER = exports.START_OSCE_MARKSHEET = exports.SELECT_OSCE_STATION = exports.updateCacheOnMarkOsceMarksheetMark = exports.optimisticMarkOsceMarksheetMark = exports.getStationScore = exports.MARK_OSCE_MARKSHEET_MARK = exports.CHANGE_OSCE_ROLE = exports.BUILD_OSCE_MARKSHEET = exports.CREATE_OR_JOIN_OSCE_MARKSHEET = exports.CANCEL_OSCE_MATCHMAKING = exports.CHECK_OSCE_MATCHMAKING = exports.ACCEPT_OSCE_MATCHMAKING = exports.START_OSCE_MATCHMAKING = void 0;
|
|
4
4
|
const client_1 = require("@apollo/client");
|
|
5
5
|
const models_1 = require("../../../models");
|
|
6
6
|
const fragments_1 = require("../../fragments");
|
|
@@ -101,6 +101,46 @@ exports.MARK_OSCE_MARKSHEET_MARK = (0, client_1.gql) `
|
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
103
|
`;
|
|
104
|
+
const getStationScore = (marks) => {
|
|
105
|
+
const MarkMap = {
|
|
106
|
+
1: 2,
|
|
107
|
+
2: 1,
|
|
108
|
+
3: 0,
|
|
109
|
+
};
|
|
110
|
+
if (!marks?.length) {
|
|
111
|
+
return {
|
|
112
|
+
total: 0,
|
|
113
|
+
userScore: 0,
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
const { total, userScore } = marks.reduce((acc, mark) => {
|
|
117
|
+
const choices = mark.osceStationMark?.choices;
|
|
118
|
+
const multiplier = mark.secondaryMark ? 2 : 1;
|
|
119
|
+
// Maximum possible score
|
|
120
|
+
acc.total += choices?.length
|
|
121
|
+
? choices.reduce((sum, choice) => sum + multiplier * choice.score, 0)
|
|
122
|
+
: 1;
|
|
123
|
+
if (choices) {
|
|
124
|
+
// paces product
|
|
125
|
+
acc.userScore += MarkMap[mark.mark] ?? 0;
|
|
126
|
+
if (mark.secondaryMark) {
|
|
127
|
+
acc.userScore += MarkMap[mark.secondaryMark] ?? 0;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
else {
|
|
131
|
+
acc.userScore += mark.mark ? 1 : 0;
|
|
132
|
+
}
|
|
133
|
+
return acc;
|
|
134
|
+
}, {
|
|
135
|
+
total: 0,
|
|
136
|
+
userScore: 0,
|
|
137
|
+
});
|
|
138
|
+
return {
|
|
139
|
+
total,
|
|
140
|
+
userScore,
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
exports.getStationScore = getStationScore;
|
|
104
144
|
const optimisticMarkOsceMarksheetMark = (variables, productType) => {
|
|
105
145
|
const data = {};
|
|
106
146
|
if (productType === models_1.EProductType.PACES) {
|
|
@@ -169,6 +209,13 @@ const updateCacheOnMarkOsceMarksheetMark = (cache, result, options) => {
|
|
|
169
209
|
mark
|
|
170
210
|
score
|
|
171
211
|
secondaryMark
|
|
212
|
+
selectedChoice
|
|
213
|
+
osceStationMark {
|
|
214
|
+
id
|
|
215
|
+
choices {
|
|
216
|
+
score
|
|
217
|
+
}
|
|
218
|
+
}
|
|
172
219
|
}
|
|
173
220
|
}
|
|
174
221
|
`,
|
|
@@ -176,10 +223,7 @@ const updateCacheOnMarkOsceMarksheetMark = (cache, result, options) => {
|
|
|
176
223
|
if (!marksheet?.marks?.length) {
|
|
177
224
|
return;
|
|
178
225
|
}
|
|
179
|
-
const
|
|
180
|
-
const total = hasSecondaryMarks ? 2 * marksheet.marks.length : marksheet.marks.length;
|
|
181
|
-
// const scored = marksheet.marks.filter(({ mark }) => Boolean(mark)).length;
|
|
182
|
-
const userScore = marksheet.marks.reduce((sum, m) => sum + Number(m.score), 0);
|
|
226
|
+
const { total, userScore } = (0, exports.getStationScore)(marksheet.marks);
|
|
183
227
|
cache.modify({
|
|
184
228
|
id: cache.identify({ id: marksheetId, __typename: 'OsceMarksheet' }),
|
|
185
229
|
fields: {
|