@magmamath/students-features 0.3.0-rc.0 → 0.3.0-rc.1

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.
@@ -189,16 +189,33 @@ class ChatbotModel {
189
189
  ...message
190
190
  }) {
191
191
  const options = this.$alternatives.getState()?.options.hints ?? message.options;
192
- const messagesList = this.messages.$state.getState();
193
- const key = `${entityId}-${fieldId}`;
194
- const messages = messagesList[key];
195
- if (messages?.length > 1) return;
192
+ this.messages.setField({
193
+ key: `${entityId}-${fieldId}`,
194
+ fn: messages => {
195
+ if (!messages || messages.length > 1) return;
196
+ return [{
197
+ ...message,
198
+ options
199
+ }];
200
+ }
201
+ });
202
+ }
203
+ addOption({
204
+ options,
205
+ key
206
+ }) {
196
207
  this.messages.setField({
197
208
  key,
198
- data: [{
199
- ...message,
200
- options
201
- }]
209
+ fn: messages => {
210
+ if (!messages?.length) return;
211
+ const lastMessage = messages[messages.length - 1];
212
+ const copy = [...messages];
213
+ copy.splice(messages.length - 1, 1, {
214
+ ...lastMessage,
215
+ options: [...lastMessage.options, ...options]
216
+ });
217
+ return copy;
218
+ }
202
219
  });
203
220
  }
204
221
  bindKey($store) {
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","_index","_helpers","_api","_translation","_t2s","ChatbotModel","$currentKey","createStore","resetAlternatives","createEvent","setAlternatives","setIsOpen","toggleOpen","$isOpen","restore","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","ChatbotAPI","defaultMessages","sample","source","target","combine","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","ChatbotTranslation","t2s","ChatTextToSpeechModel","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","createEntityFieldStore","threadIds","availableChats","attach","$state","$isTranslated","mapParams","params","key","isTranslated","effect","createControllerEffect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","generateRandomId","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","messagesList","bindKey","$store","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","_index","_helpers","_api","_translation","_t2s","ChatbotModel","$currentKey","createStore","resetAlternatives","createEvent","setAlternatives","setIsOpen","toggleOpen","$isOpen","restore","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","ChatbotAPI","defaultMessages","sample","source","target","combine","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","ChatbotTranslation","t2s","ChatTextToSpeechModel","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","createEntityFieldStore","threadIds","availableChats","attach","$state","$isTranslated","mapParams","params","key","isTranslated","effect","createControllerEffect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","generateRandomId","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","addOption","lastMessage","copy","splice","bindKey","$store","exports"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAUA,IAAAC,MAAA,GAAAD,OAAA;AASA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,IAAA,GAAAL,OAAA;AAOO,MAAMM,YAAY,CAAC;EAMRC,WAAW,GAAG,IAAAC,qBAAW,EAAC,EAAE,CAAC;EAEpCC,iBAAiB,GAAG,IAAAC,qBAAW,EAAC,CAAC;EACjCC,eAAe,GAAG,IAAAD,qBAAW,EAAiC,CAAC;EAG/DE,SAAS,GAAG,IAAAF,qBAAW,EAAU,CAAC;EAClCG,UAAU,GAAG,IAAAH,qBAAW,EAAC,CAAC;EAC1BI,OAAO,GAAG,IAAAC,iBAAO,EAAC,IAAI,CAACH,SAAS,EAAE,KAAK,CAAC,CAACI,EAAE,CAAC,IAAI,CAACH,UAAU,EAAEI,MAAM,IAAI,CAACA,MAAM,CAAC;;EAExF;EACgBC,iBAAiB,GAAG,IAAAR,qBAAW,EAAC,CAAC;EAChCS,iBAAiB,GAAG,IAAAT,qBAAW,EAAS,CAAC;EACzCU,eAAe,GAAG,IAAAL,iBAAO,EAAC,IAAI,CAACI,iBAAiB,EAAE,IAAI,CAAC;EAE/DE,eAAe,GAAG,IAAAX,qBAAW,EAAU,CAAC;EACxCY,eAAe,GAAG,IAAAP,iBAAO,EAAC,IAAI,CAACM,eAAe,EAAE,KAAK,CAAC;EAM/DE,WAAWA,CAAC;IAAEC,OAAO;IAAEC,GAAG;IAAEC,QAAQ;IAAEC;EAAwB,CAAC,EAAE;IAC/D,IAAI,CAACF,GAAG,GAAG,IAAIG,eAAU,CAACH,GAAG,CAAC;IAE9B,IAAI,CAACI,eAAe,GAAGH,QAAQ;IAC/B,IAAI,CAACF,OAAO,GAAGA,OAAO;IACtB,IAAIG,IAAI,EAAE;MACR,IAAAG,gBAAM,EAAC;QACLC,MAAM,EAAEJ,IAAI;QACZK,MAAM,EAAE,IAAI,CAACzB;MACf,CAAC,CAAC;IACJ,CAAC,MAAM,IAAIiB,OAAO,EAAE;MAClB,IAAAM,gBAAM,EAAC;QACLC,MAAM,EAAE,IAAAE,iBAAO,EACbT,OAAO,EACP,CAAC;UAAEU,aAAa;UAAEC;QAAY,CAAC,KAAK,GAAGD,aAAa,IAAIC,WAAW,EACrE,CAAC;QACDH,MAAM,EAAE,IAAI,CAACzB;MACf,CAAC,CAAC;IACJ;IAEA,IAAI,CAAC6B,aAAa,GAAG,IAAArB,iBAAO,EAAC,IAAI,CAACU,GAAG,CAACY,iBAAiB,CAACC,QAAQ,EAAE,IAAI,CAAC,CACpEtB,EAAE,CAAC,IAAI,CAACL,eAAe,EAAE,CAAC4B,CAAC,EAAEC,OAAO,KAAKA,OAAO,CAAC,CACjDC,KAAK,CAAC,IAAI,CAAChC,iBAAiB,CAAC;;IAEhC;IACA,IAAI,CAACiC,WAAW,GAAG,IAAIC,+BAAkB,CAAC,IAAI,CAAC;IAC/C,IAAI,CAACC,GAAG,GAAG,IAAIC,0BAAqB,CAAC;MAAE/B,OAAO,EAAE,IAAI,CAACA,OAAO;MAAEW,GAAG,EAAE,IAAI,CAACA;IAAI,CAAC,CAAC;IAE9E,IAAI,CAACqB,iBAAiB,GAAG,IAAI,CAACC,uBAAuB,CAAC,CAAC;IACvD,IAAI,CAACC,oBAAoB,CAAC,CAAC;EAC7B;EAEStB,QAAQ,GAAG,IAAAuB,6BAAsB,EAAwB,CAAC;EAC1DC,SAAS,GAAG,IAAAD,6BAAsB,EAAS,CAAC;EAC5CE,cAAc,GAAG,IAAAF,6BAAsB,EAAU,CAAC;EAEnDF,uBAAuBA,CAAA,EAAG;IAChC,OAAO,IAAAK,gBAAM,EAAC;MACZrB,MAAM,EAAE,CAAC,IAAI,CAACxB,WAAW,EAAE,IAAI,CAACmB,QAAQ,CAAC2B,MAAM,EAAE,IAAI,CAACX,WAAW,CAACY,aAAa,CAAC;MAChFC,SAAS,EAAEA,CAACC,MAAsB,EAAE,CAACC,GAAG,EAAE/B,QAAQ,EAAEgC,YAAY,CAAC,MAAM;QACrE,GAAGF,MAAM;QACTC,GAAG;QACH/B,QAAQ;QACRgC;MACF,CAAC,CAAC;MACFC,MAAM,EAAE,IAAAC,6BAAsB,EAC5B,OAAO;QACLpB,OAAO;QACPqB,OAAO,GAAG,EAAE;QACZC,yBAAyB;QACzBC,iBAAiB;QACjBN,GAAG;QACH/B,QAAQ;QACRgC;MACa,CAAC,KAAK;QACnB,IAAI,CAACvC,iBAAiB,CAACsC,GAAG,CAAC;QAE3B,MAAMO,eAAe,GAAGtC,QAAQ,CAAC+B,GAAG,CAAC,IAAI,EAAE;QAE3C,IAAI,CAAC/B,QAAQ,CAACuC,QAAQ,CAAC;UACrBR,GAAG;UACHS,IAAI,EAAE,CACJ,GAAGF,eAAe,EAClB;YACEG,EAAE,EAAE,IAAAC,yBAAgB,EAAC,CAAC;YACtBP,OAAO,EAAEA,OAAO,IAAI,EAAE;YACtBE,iBAAiB;YACjBM,YAAY,EAAE,IAAI;YAClBC,QAAQ,EAAE9B,OAAO,CAAC8B,QAAQ,IAAI,EAAE;YAChCC,OAAO,EAAE;UACX,CAAC;QAEL,CAAC,CAAC;QAEF,MAAMC,QAAQ,GAAG,MAAM,IAAI,CAAC/C,GAAG,CAACgD,aAAa,CAACjC,OAAO,CAAC;QACtD,IAAIkB,YAAY,EAAE;UAChB,OAAO,MAAM,IAAI,CAAChB,WAAW,CAACgC,kBAAkB,CAAC;YAC/CC,cAAc,EAAEb,yBAAmC;YACnDD,OAAO,EAAE;cACP,GAAGW,QAAQ;cACXL,EAAE,EAAE,IAAAC,yBAAgB,EAAC,CAAC;cACtBC,YAAY,EAAE;YAChB;UACF,CAAC,CAAC;QACJ;QAEA,OAAOG,QAAQ;MACjB,CACF;IACF,CAAC,CAAC;EACJ;EAEQxB,oBAAoBA,CAAA,EAAG;IAC7B,IAAAlB,gBAAM,EAAC;MACL8C,KAAK,EAAE,IAAI,CAAC9B,iBAAiB,CAACR,QAAQ;MACtCP,MAAM,EAAE,CAAC,IAAI,CAACxB,WAAW,EAAE,IAAI,CAACmB,QAAQ,CAAC2B,MAAM,CAAU;MACzDwB,EAAE,EAAEA,CAAC,CAACpB,GAAG,EAAE/B,QAAQ,CAAC,EAAE8C,QAAQ,MAAM;QAAEf,GAAG;QAAE/B,QAAQ,EAAEA,QAAQ,CAAC+B,GAAG,CAAC,IAAI,EAAE;QAAEe;MAAS,CAAC;IACtF,CAAC,CAAC,CAACM,KAAK,CAAC,CAAC;MAAErB,GAAG;MAAE/B,QAAQ;MAAE8C;IAAS,CAAC,KAAK;MACxC,IAAI,CAAC9C,QAAQ,CAACuC,QAAQ,CAAC;QACrBR,GAAG;QACHS,IAAI,EAAE,CACJ,GAAGxC,QAAQ,EACX;UACEyC,EAAE,EAAE,IAAAC,yBAAgB,EAAC,CAAC;UACtBP,OAAO,EAAEW,QAAQ,CAACX,OAAO;UACzBQ,YAAY,EAAE,KAAK;UACnBC,QAAQ,EAAEE,QAAQ,CAACF,QAAQ;UAC3BC,OAAO,EAAEC,QAAQ,CAACD,OAAO;UACzBR,iBAAiB,EACf,mBAAmB,IAAIS,QAAQ,GAAGA,QAAQ,CAACT,iBAAiB,GAAGgB;QACnE,CAAC;MAEL,CAAC,CAAC;MAEF,IAAI,CAAC7B,SAAS,CAACe,QAAQ,CAAC;QAAER,GAAG;QAAES,IAAI,EAAEM,QAAQ,CAACF;MAAS,CAAC,CAAC;IAC3D,CAAC,CAAC;IAEF,IAAAxC,gBAAM,EAAC;MACL8C,KAAK,EAAE,IAAI,CAAC9B,iBAAiB,CAACkC,IAAI;MAClCjD,MAAM,EAAE,CAAC,IAAI,CAACxB,WAAW,EAAE,IAAI,CAACmB,QAAQ,CAAC2B,MAAM,CAAU;MACzDwB,EAAE,EAAEA,CAAC,CAACpB,GAAG,EAAE/B,QAAQ,CAAC,MAAM;QAAE+B,GAAG;QAAES,IAAI,EAAE,CAAC,GAAGxC,QAAQ,CAAC+B,GAAG,CAAC,EAAE,IAAI,CAAC5B,eAAe,CAACoD,KAAK;MAAE,CAAC,CAAC;MACxFC,MAAM,EAAEA,CAAC3C,CAAC,EAAE;QAAE0C;MAAM,CAAC,KAAKA,KAAK,CAACpB,OAAO,KAAK,0BAA0B;MACtE7B,MAAM,EAAE,IAAI,CAACN,QAAQ,CAACuC;IACxB,CAAC,CAAC;IAEF,IAAAnC,gBAAM,EAAC;MACL8C,KAAK,EAAE,IAAI,CAAC1D,iBAAiB;MAC7Ba,MAAM,EAAE,CAAC,IAAI,CAACX,eAAe,EAAE,IAAI,CAACM,QAAQ,CAAC2B,MAAM,CAAU;MAC7DwB,EAAE,EAAEA,CAAC,CAACM,cAAc,EAAEzD,QAAQ,CAAC,KAAK;QAClC,MAAM0D,QAAQ,GAAG;UAAE3B,GAAG,EAAE,EAAE;UAAES,IAAI,EAAE;QAAG,CAAC;QACtC,IAAI,CAACiB,cAAc,EAAE,OAAOC,QAAQ;QACpC,MAAMC,eAAe,GAAG3D,QAAQ,CAACyD,cAAc,CAAC;QAChD,IAAI,CAACE,eAAe,EAAEC,MAAM,EAAE,OAAOF,QAAQ;QAC7CC,eAAe,CAACE,GAAG,CAAC,CAAC;QACrB,OAAO;UAAE9B,GAAG,EAAE0B,cAAc;UAAEjB,IAAI,EAAEmB;QAAgB,CAAC;MACvD,CAAC;MACDH,MAAM,EAAEA,CAAC,CAACC,cAAc,CAAC,KAAK,CAAC,CAACA,cAAc;MAC9CnD,MAAM,EAAE,IAAI,CAACN,QAAQ,CAACuC;IACxB,CAAC,CAAC;EACJ;EAEOuB,iBAAiBA,CAAA,EAAG;IACzB,MAAM/B,GAAG,GAAG,IAAI,CAAClD,WAAW,CAACkF,QAAQ,CAAC,CAAC;IACvC,MAAM/D,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAAC2B,MAAM,CAACoC,QAAQ,CAAC,CAAC,CAAChC,GAAG,CAAC,IAAI,EAAE;IAE3D,IAAI/B,QAAQ,CAAC4D,MAAM,EAAE;IAErB,IAAI,CAAC5D,QAAQ,CAACuC,QAAQ,CAAC;MAAER,GAAG;MAAES,IAAI,EAAE,CAAC,IAAI,CAACrC,eAAe,CAAC6D,KAAK;IAAE,CAAC,CAAC;IACnE,IAAI,CAACvC,cAAc,CAACc,QAAQ,CAAC;MAAER,GAAG;MAAES,IAAI,EAAE;IAAK,CAAC,CAAC;EACnD;EAEOyB,cAAcA,CAAC;IAAEC,QAAQ;IAAEC,OAAO;IAAE,GAAGhC;EAA6B,CAAC,EAAE;IAC5E,MAAMU,OAAO,GAAG,IAAI,CAACnC,aAAa,CAACqD,QAAQ,CAAC,CAAC,EAAElB,OAAO,CAACuB,KAAK,IAAIjC,OAAO,CAACU,OAAO;IAC/E,IAAI,CAAC7C,QAAQ,CAACuC,QAAQ,CAAC;MACrBR,GAAG,EAAE,GAAGmC,QAAQ,IAAIC,OAAO,EAAE;MAC7BhB,EAAE,EAAEnD,QAAQ,IAAI;QACd,IAAI,CAACA,QAAQ,IAAIA,QAAQ,CAAC4D,MAAM,GAAG,CAAC,EAAE;QACtC,OAAO,CAAC;UAAE,GAAGzB,OAAO;UAAEU;QAAQ,CAAC,CAAC;MAClC;IACF,CAAC,CAAC;EACJ;EAEOwB,SAASA,CAAC;IAAExB,OAAO;IAAEd;EAAoB,CAAC,EAAE;IACjD,IAAI,CAAC/B,QAAQ,CAACuC,QAAQ,CAAC;MACrBR,GAAG;MACHoB,EAAE,EAAEnD,QAAQ,IAAI;QACd,IAAI,CAACA,QAAQ,EAAE4D,MAAM,EAAE;QACvB,MAAMU,WAAW,GAAGtE,QAAQ,CAACA,QAAQ,CAAC4D,MAAM,GAAG,CAAC,CAAC;QACjD,MAAMW,IAAI,GAAG,CAAC,GAAGvE,QAAQ,CAAC;QAC1BuE,IAAI,CAACC,MAAM,CAACxE,QAAQ,CAAC4D,MAAM,GAAG,CAAC,EAAE,CAAC,EAAE;UAClC,GAAGU,WAAW;UACdzB,OAAO,EAAE,CAAC,GAAGyB,WAAW,CAACzB,OAAO,EAAE,GAAGA,OAAO;QAC9C,CAAC,CAAC;QACF,OAAO0B,IAAI;MACb;IACF,CAAC,CAAC;EACJ;EAEOE,OAAOA,CAACC,MAAqB,EAAE;IACpC,IAAAtE,gBAAM,EAAC;MACLC,MAAM,EAAEqE,MAAM;MACdpE,MAAM,EAAE,IAAI,CAACzB;IACf,CAAC,CAAC;IACF,OAAO,IAAI;EACb;AACF;AAAC8F,OAAA,CAAA/F,YAAA,GAAAA,YAAA","ignoreList":[]}
@@ -11,10 +11,21 @@ function createEntityFieldStore() {
11
11
  const $state = (0, _effector.createStore)({}).on(setField, (state, {
12
12
  key,
13
13
  data
14
- }) => ({
15
- ...state,
16
- [key]: data
17
- })).reset(reset);
14
+ }) => {
15
+ if (typeof data === 'function') {
16
+ const currentData = state[key];
17
+ const newData = data(currentData);
18
+ if (newData === undefined) return state;
19
+ return {
20
+ ...state,
21
+ [key]: newData
22
+ };
23
+ }
24
+ return {
25
+ ...state,
26
+ [key]: data
27
+ };
28
+ }).reset(reset);
18
29
  return {
19
30
  $state,
20
31
  setField,
@@ -1 +1 @@
1
- {"version":3,"names":["_effector","require","createEntityFieldStore","setField","createEvent","reset","$state","createStore","on","state","key","data"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAOO,SAASC,sBAAsBA,CAAA,EAAM;EAC1C,MAAMC,QAAQ,GAAG,IAAAC,qBAAW,EAAiB,CAAC;EAC9C,MAAMC,KAAK,GAAG,IAAAD,qBAAW,EAAC,CAAC;EAE3B,MAAME,MAAM,GAAG,IAAAC,qBAAW,EAAoB,CAAC,CAAC,CAAC,CAC9CC,EAAE,CAACL,QAAQ,EAAE,CAACM,KAAK,EAAE;IAAEC,GAAG;IAAEC;EAAK,CAAC,MAAM;IAAE,GAAGF,KAAK;IAAE,CAACC,GAAG,GAAGC;EAAK,CAAC,CAAC,CAAC,CACnEN,KAAK,CAACA,KAAK,CAAC;EAEf,OAAO;IAAEC,MAAM;IAAEH,QAAQ;IAAEE;EAAM,CAAC;AACpC","ignoreList":[]}
1
+ {"version":3,"names":["_effector","require","createEntityFieldStore","setField","createEvent","reset","$state","createStore","on","state","key","data","currentData","newData","undefined"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AAMO,SAASC,sBAAsBA,CAAA,EAAM;EAC1C,MAAMC,QAAQ,GAAG,IAAAC,qBAAW,EAAiB,CAAC;EAC9C,MAAMC,KAAK,GAAG,IAAAD,qBAAW,EAAC,CAAC;EAE3B,MAAME,MAAM,GAAG,IAAAC,qBAAW,EAAoB,CAAC,CAAC,CAAC,CAC9CC,EAAE,CAACL,QAAQ,EAAE,CAACM,KAAK,EAAE;IAAEC,GAAG;IAAEC;EAAK,CAAC,KAAK;IACtC,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;MAC9B,MAAMC,WAAW,GAAGH,KAAK,CAACC,GAAG,CAAC;MAC9B,MAAMG,OAAO,GAAGF,IAAI,CAACC,WAAW,CAAC;MACjC,IAAIC,OAAO,KAAKC,SAAS,EAAE,OAAOL,KAAK;MACvC,OAAO;QAAE,GAAGA,KAAK;QAAE,CAACC,GAAG,GAAGG;MAAQ,CAAC;IACrC;IACA,OAAO;MAAE,GAAGJ,KAAK;MAAE,CAACC,GAAG,GAAGC;IAAK,CAAC;EAClC,CAAC,CAAC,CACDN,KAAK,CAACA,KAAK,CAAC;EAEf,OAAO;IAAEC,MAAM;IAAEH,QAAQ;IAAEE;EAAM,CAAC;AACpC","ignoreList":[]}
@@ -185,16 +185,33 @@ export class ChatbotModel {
185
185
  ...message
186
186
  }) {
187
187
  const options = this.$alternatives.getState()?.options.hints ?? message.options;
188
- const messagesList = this.messages.$state.getState();
189
- const key = `${entityId}-${fieldId}`;
190
- const messages = messagesList[key];
191
- if (messages?.length > 1) return;
188
+ this.messages.setField({
189
+ key: `${entityId}-${fieldId}`,
190
+ fn: messages => {
191
+ if (!messages || messages.length > 1) return;
192
+ return [{
193
+ ...message,
194
+ options
195
+ }];
196
+ }
197
+ });
198
+ }
199
+ addOption({
200
+ options,
201
+ key
202
+ }) {
192
203
  this.messages.setField({
193
204
  key,
194
- data: [{
195
- ...message,
196
- options
197
- }]
205
+ fn: messages => {
206
+ if (!messages?.length) return;
207
+ const lastMessage = messages[messages.length - 1];
208
+ const copy = [...messages];
209
+ copy.splice(messages.length - 1, 1, {
210
+ ...lastMessage,
211
+ options: [...lastMessage.options, ...options]
212
+ });
213
+ return copy;
214
+ }
198
215
  });
199
216
  }
200
217
  bindKey($store) {
@@ -1 +1 @@
1
- {"version":3,"names":["attach","createEvent","restore","sample","combine","createStore","createControllerEffect","createEntityFieldStore","generateRandomId","ChatbotAPI","ChatbotTranslation","ChatTextToSpeechModel","ChatbotModel","$currentKey","resetAlternatives","setAlternatives","setIsOpen","toggleOpen","$isOpen","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","defaultMessages","source","target","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","t2s","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","threadIds","availableChats","$state","$isTranslated","mapParams","params","key","isTranslated","effect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","messagesList","bindKey","$store"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["attach","createEvent","restore","sample","combine","createStore","createControllerEffect","createEntityFieldStore","generateRandomId","ChatbotAPI","ChatbotTranslation","ChatTextToSpeechModel","ChatbotModel","$currentKey","resetAlternatives","setAlternatives","setIsOpen","toggleOpen","$isOpen","on","isOpen","removeLastMessage","setLastMessageKey","$lastMessageKey","setScrollActive","$isScrollActive","constructor","credits","api","messages","$key","defaultMessages","source","target","$assignmentId","$exerciseId","$alternatives","getAlternativesFx","doneData","_","payload","reset","translation","t2s","sendHelpRequestFx","createSendHelpRequestFx","initChatReplyWatcher","threadIds","availableChats","$state","$isTranslated","mapParams","params","key","isTranslated","effect","message","translationTargetLanguage","translatedMessage","currentMessages","setField","data","id","isOwnMessage","threadId","options","response","postMessageFx","translateMessageFx","targetLanguage","clock","fn","watch","undefined","fail","error","filter","lastMessageKey","mockData","updatedMessages","length","pop","startConversation","getState","start","setHintMessage","entityId","fieldId","hints","addOption","lastMessage","copy","splice","bindKey","$store"],"sourceRoot":"../../../../../src","sources":["features/chatbot/model/ChatBotModel.ts"],"mappings":"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","ignoreList":[]}
@@ -7,10 +7,21 @@ export function createEntityFieldStore() {
7
7
  const $state = createStore({}).on(setField, (state, {
8
8
  key,
9
9
  data
10
- }) => ({
11
- ...state,
12
- [key]: data
13
- })).reset(reset);
10
+ }) => {
11
+ if (typeof data === 'function') {
12
+ const currentData = state[key];
13
+ const newData = data(currentData);
14
+ if (newData === undefined) return state;
15
+ return {
16
+ ...state,
17
+ [key]: newData
18
+ };
19
+ }
20
+ return {
21
+ ...state,
22
+ [key]: data
23
+ };
24
+ }).reset(reset);
14
25
  return {
15
26
  $state,
16
27
  setField,
@@ -1 +1 @@
1
- {"version":3,"names":["createEvent","createStore","createEntityFieldStore","setField","reset","$state","on","state","key","data"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAOnD,OAAO,SAASC,sBAAsBA,CAAA,EAAM;EAC1C,MAAMC,QAAQ,GAAGH,WAAW,CAAiB,CAAC;EAC9C,MAAMI,KAAK,GAAGJ,WAAW,CAAC,CAAC;EAE3B,MAAMK,MAAM,GAAGJ,WAAW,CAAoB,CAAC,CAAC,CAAC,CAC9CK,EAAE,CAACH,QAAQ,EAAE,CAACI,KAAK,EAAE;IAAEC,GAAG;IAAEC;EAAK,CAAC,MAAM;IAAE,GAAGF,KAAK;IAAE,CAACC,GAAG,GAAGC;EAAK,CAAC,CAAC,CAAC,CACnEL,KAAK,CAACA,KAAK,CAAC;EAEf,OAAO;IAAEC,MAAM;IAAEF,QAAQ;IAAEC;EAAM,CAAC;AACpC","ignoreList":[]}
1
+ {"version":3,"names":["createEvent","createStore","createEntityFieldStore","setField","reset","$state","on","state","key","data","currentData","newData","undefined"],"sourceRoot":"../../../../src","sources":["lib/effector/createEntityFieldStore.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,WAAW,QAAQ,UAAU;AAMnD,OAAO,SAASC,sBAAsBA,CAAA,EAAM;EAC1C,MAAMC,QAAQ,GAAGH,WAAW,CAAiB,CAAC;EAC9C,MAAMI,KAAK,GAAGJ,WAAW,CAAC,CAAC;EAE3B,MAAMK,MAAM,GAAGJ,WAAW,CAAoB,CAAC,CAAC,CAAC,CAC9CK,EAAE,CAACH,QAAQ,EAAE,CAACI,KAAK,EAAE;IAAEC,GAAG;IAAEC;EAAK,CAAC,KAAK;IACtC,IAAI,OAAOA,IAAI,KAAK,UAAU,EAAE;MAC9B,MAAMC,WAAW,GAAGH,KAAK,CAACC,GAAG,CAAC;MAC9B,MAAMG,OAAO,GAAGF,IAAI,CAACC,WAAW,CAAC;MACjC,IAAIC,OAAO,KAAKC,SAAS,EAAE,OAAOL,KAAK;MACvC,OAAO;QAAE,GAAGA,KAAK;QAAE,CAACC,GAAG,GAAGG;MAAQ,CAAC;IACrC;IACA,OAAO;MAAE,GAAGJ,KAAK;MAAE,CAACC,GAAG,GAAGC;IAAK,CAAC;EAClC,CAAC,CAAC,CACDL,KAAK,CAACA,KAAK,CAAC;EAEf,OAAO;IAAEC,MAAM;IAAEF,QAAQ;IAAEC;EAAM,CAAC;AACpC","ignoreList":[]}
@@ -1,9 +1,13 @@
1
1
  import { type Store, type Effect } from 'effector';
2
2
  import { ChatbotModelProps, ConversationMessage, SendHelpParams, SetHintMessageProps } from '../types/model.types';
3
- import { GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
3
+ import { ChatAnswer, GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
4
4
  import { ChatbotAPI } from './api';
5
5
  import { ChatbotTranslation } from './translation';
6
6
  import { ChatTextToSpeechModel } from './t2s';
7
+ type AddOptionProps = {
8
+ key: string;
9
+ options: ChatAnswer[];
10
+ };
7
11
  export declare class ChatbotModel {
8
12
  readonly api: ChatbotAPI;
9
13
  readonly translation: ChatbotTranslation;
@@ -28,30 +32,47 @@ export declare class ChatbotModel {
28
32
  $state: import("effector").StoreWritable<Record<string, ConversationMessage[]>>;
29
33
  setField: import("effector").EventCallable<{
30
34
  key: string;
35
+ } & ({
31
36
  data: ConversationMessage[];
32
- }>;
37
+ fn?: never;
38
+ } | {
39
+ data?: never;
40
+ fn: (props: void | ConversationMessage[]) => void | ConversationMessage[];
41
+ })>;
33
42
  reset: import("effector").EventCallable<void>;
34
43
  };
35
44
  readonly threadIds: {
36
45
  $state: import("effector").StoreWritable<Record<string, string>>;
37
46
  setField: import("effector").EventCallable<{
38
47
  key: string;
48
+ } & ({
39
49
  data: string;
40
- }>;
50
+ fn?: never;
51
+ } | {
52
+ data?: never;
53
+ fn: (props: string | void) => string | void;
54
+ })>;
41
55
  reset: import("effector").EventCallable<void>;
42
56
  };
43
57
  readonly availableChats: {
44
58
  $state: import("effector").StoreWritable<Record<string, boolean>>;
45
59
  setField: import("effector").EventCallable<{
46
60
  key: string;
61
+ } & ({
47
62
  data: boolean;
48
- }>;
63
+ fn?: never;
64
+ } | {
65
+ data?: never;
66
+ fn: (props: boolean | void) => boolean | void;
67
+ })>;
49
68
  reset: import("effector").EventCallable<void>;
50
69
  };
51
70
  private createSendHelpRequestFx;
52
71
  private initChatReplyWatcher;
53
72
  startConversation(): void;
54
73
  setHintMessage({ entityId, fieldId, ...message }: SetHintMessageProps): void;
74
+ addOption({ options, key }: AddOptionProps): void;
55
75
  bindKey($store: Store<string>): this;
56
76
  }
77
+ export {};
57
78
  //# sourceMappingURL=ChatBotModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EAEd,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAE7C,qBAAa,YAAY;IACvB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAEnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,SAAgB,WAAW,2CAAkB;IAE7C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IAExE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB;IAgC/D,QAAQ,CAAC,QAAQ;;;;;;;MAAkD;IACnE,QAAQ,CAAC,SAAS;;;;;;;MAAmC;IACrD,QAAQ,CAAC,cAAc;;;;;;;MAAoC;IAE3D,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,oBAAoB;IAiDrB,iBAAiB;IAUjB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IASrE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;CAOrC"}
1
+ {"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EAEd,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAE7C,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB,CAAA;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAEnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,SAAgB,WAAW,2CAAkB;IAE7C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IAExE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB;IAgC/D,QAAQ,CAAC,QAAQ;;;;;;;;;;;;MAAkD;IACnE,QAAQ,CAAC,SAAS;;;;;;;;;;;;MAAmC;IACrD,QAAQ,CAAC,cAAc;;;;;;;;;;;;MAAoC;IAE3D,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,oBAAoB;IAiDrB,iBAAiB;IAUjB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAWrE,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,cAAc;IAgB1C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;CAOrC"}
@@ -1,7 +1,12 @@
1
1
  type UpdateField<T> = {
2
2
  key: string;
3
+ } & ({
3
4
  data: T;
4
- };
5
+ fn?: never;
6
+ } | {
7
+ data?: never;
8
+ fn: (props: T | void) => T | void;
9
+ });
5
10
  export declare function createEntityFieldStore<T>(): {
6
11
  $state: import("effector").StoreWritable<Record<string, T>>;
7
12
  setField: import("effector").EventCallable<UpdateField<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,CAAC,CAAA;CACR,CAAA;AAED,wBAAgB,sBAAsB,CAAC,CAAC;;;;EASvC"}
1
+ {"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAAA;AAEnF,wBAAgB,sBAAsB,CAAC,CAAC;;;;EAiBvC"}
@@ -1,9 +1,13 @@
1
1
  import { type Store, type Effect } from 'effector';
2
2
  import { ChatbotModelProps, ConversationMessage, SendHelpParams, SetHintMessageProps } from '../types/model.types';
3
- import { GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
3
+ import { ChatAnswer, GetAlternativesResponse, PostMessageResponse } from '../types/api.types';
4
4
  import { ChatbotAPI } from './api';
5
5
  import { ChatbotTranslation } from './translation';
6
6
  import { ChatTextToSpeechModel } from './t2s';
7
+ type AddOptionProps = {
8
+ key: string;
9
+ options: ChatAnswer[];
10
+ };
7
11
  export declare class ChatbotModel {
8
12
  readonly api: ChatbotAPI;
9
13
  readonly translation: ChatbotTranslation;
@@ -28,30 +32,47 @@ export declare class ChatbotModel {
28
32
  $state: import("effector").StoreWritable<Record<string, ConversationMessage[]>>;
29
33
  setField: import("effector").EventCallable<{
30
34
  key: string;
35
+ } & ({
31
36
  data: ConversationMessage[];
32
- }>;
37
+ fn?: never;
38
+ } | {
39
+ data?: never;
40
+ fn: (props: void | ConversationMessage[]) => void | ConversationMessage[];
41
+ })>;
33
42
  reset: import("effector").EventCallable<void>;
34
43
  };
35
44
  readonly threadIds: {
36
45
  $state: import("effector").StoreWritable<Record<string, string>>;
37
46
  setField: import("effector").EventCallable<{
38
47
  key: string;
48
+ } & ({
39
49
  data: string;
40
- }>;
50
+ fn?: never;
51
+ } | {
52
+ data?: never;
53
+ fn: (props: string | void) => string | void;
54
+ })>;
41
55
  reset: import("effector").EventCallable<void>;
42
56
  };
43
57
  readonly availableChats: {
44
58
  $state: import("effector").StoreWritable<Record<string, boolean>>;
45
59
  setField: import("effector").EventCallable<{
46
60
  key: string;
61
+ } & ({
47
62
  data: boolean;
48
- }>;
63
+ fn?: never;
64
+ } | {
65
+ data?: never;
66
+ fn: (props: boolean | void) => boolean | void;
67
+ })>;
49
68
  reset: import("effector").EventCallable<void>;
50
69
  };
51
70
  private createSendHelpRequestFx;
52
71
  private initChatReplyWatcher;
53
72
  startConversation(): void;
54
73
  setHintMessage({ entityId, fieldId, ...message }: SetHintMessageProps): void;
74
+ addOption({ options, key }: AddOptionProps): void;
55
75
  bindKey($store: Store<string>): this;
56
76
  }
77
+ export {};
57
78
  //# sourceMappingURL=ChatBotModel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;AAGjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EAEd,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAGjF,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAE7C,qBAAa,YAAY;IACvB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAEnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,SAAgB,WAAW,2CAAkB;IAE7C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IAExE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB;IAgC/D,QAAQ,CAAC,QAAQ;;;;;;;MAAkD;IACnE,QAAQ,CAAC,SAAS;;;;;;;MAAmC;IACrD,QAAQ,CAAC,cAAc;;;;;;;MAAoC;IAE3D,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,oBAAoB;IAiDrB,iBAAiB;IAUjB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IASrE,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;CAOrC"}
1
+ {"version":3,"file":"ChatBotModel.d.ts","sourceRoot":"","sources":["../../../../../../src/features/chatbot/model/ChatBotModel.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,KAAK,EACV,KAAK,MAAM,EAGZ,MAAM,UAAU,CAAA;AAEjB,OAAO,EACL,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EAEd,mBAAmB,EACpB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAAE,UAAU,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAE7F,OAAO,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAClC,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,EAAE,qBAAqB,EAAE,MAAM,OAAO,CAAA;AAE7C,KAAK,cAAc,GAAG;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,OAAO,EAAE,UAAU,EAAE,CAAA;CACtB,CAAA;AAED,qBAAa,YAAY;IACvB,QAAQ,CAAC,GAAG,EAAE,UAAU,CAAA;IACxB,QAAQ,CAAC,WAAW,EAAE,kBAAkB,CAAA;IACxC,QAAQ,CAAC,GAAG,EAAE,qBAAqB,CAAA;IAEnC,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAA;IAC9C,SAAgB,WAAW,2CAAkB;IAE7C,QAAQ,CAAC,iBAAiB,yCAAgB;IAC1C,QAAQ,CAAC,eAAe,mEAAgD;IACxE,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,uBAAuB,GAAG,IAAI,CAAC,CAAA;IAE7D,QAAQ,CAAC,SAAS,4CAAyB;IAC3C,QAAQ,CAAC,UAAU,yCAAgB;IACnC,QAAQ,CAAC,OAAO,4CAAwE;IAGxF,SAAgB,iBAAiB,yCAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAwB;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwC;IAExE,QAAQ,CAAC,eAAe,4CAAyB;IACjD,QAAQ,CAAC,eAAe,4CAAuC;IAE/D,QAAQ,CAAC,iBAAiB,EAAE,MAAM,CAAC,cAAc,EAAE,mBAAmB,GAAG,mBAAmB,CAAC,CAAA;IAE7F,QAAQ,CAAC,eAAe,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAA;gBAE3C,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,iBAAiB;IAgC/D,QAAQ,CAAC,QAAQ;;;;;;;;;;;;MAAkD;IACnE,QAAQ,CAAC,SAAS;;;;;;;;;;;;MAAmC;IACrD,QAAQ,CAAC,cAAc;;;;;;;;;;;;MAAoC;IAE3D,OAAO,CAAC,uBAAuB;IAwD/B,OAAO,CAAC,oBAAoB;IAiDrB,iBAAiB;IAUjB,cAAc,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,OAAO,EAAE,EAAE,mBAAmB;IAWrE,SAAS,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,cAAc;IAgB1C,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC;CAOrC"}
@@ -1,7 +1,12 @@
1
1
  type UpdateField<T> = {
2
2
  key: string;
3
+ } & ({
3
4
  data: T;
4
- };
5
+ fn?: never;
6
+ } | {
7
+ data?: never;
8
+ fn: (props: T | void) => T | void;
9
+ });
5
10
  export declare function createEntityFieldStore<T>(): {
6
11
  $state: import("effector").StoreWritable<Record<string, T>>;
7
12
  setField: import("effector").EventCallable<UpdateField<T>>;
@@ -1 +1 @@
1
- {"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,EAAE,CAAC,CAAA;CACR,CAAA;AAED,wBAAgB,sBAAsB,CAAC,CAAC;;;;EASvC"}
1
+ {"version":3,"file":"createEntityFieldStore.d.ts","sourceRoot":"","sources":["../../../../../src/lib/effector/createEntityFieldStore.ts"],"names":[],"mappings":"AAEA,KAAK,WAAW,CAAC,CAAC,IAAI;IACpB,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,EAAE,CAAC,EAAE,KAAK,CAAA;CAAE,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC;IAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,GAAG,IAAI,CAAA;CAAE,CAAC,CAAA;AAEnF,wBAAgB,sBAAsB,CAAC,CAAC;;;;EAiBvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magmamath/students-features",
3
- "version": "0.3.0-rc.0",
3
+ "version": "0.3.0-rc.1",
4
4
  "description": "Magmamath features library",
5
5
  "source": "src/index.ts",
6
6
  "main": "dist/commonjs/index.js",
@@ -9,7 +9,6 @@ import {
9
9
  createStore,
10
10
  } from 'effector'
11
11
  import { createControllerEffect, createEntityFieldStore } from '../../../lib/effector'
12
-
13
12
  import {
14
13
  ChatbotModelProps,
15
14
  ConversationMessage,
@@ -17,13 +16,17 @@ import {
17
16
  SendHelpProps,
18
17
  SetHintMessageProps,
19
18
  } from '../types/model.types'
20
- import { GetAlternativesResponse, PostMessageResponse } from '../types/api.types'
21
-
19
+ import { ChatAnswer, GetAlternativesResponse, PostMessageResponse } from '../types/api.types'
22
20
  import { generateRandomId } from '../../../lib/helpers/helpers'
23
21
  import { ChatbotAPI } from './api'
24
22
  import { ChatbotTranslation } from './translation'
25
23
  import { ChatTextToSpeechModel } from './t2s'
26
24
 
25
+ type AddOptionProps = {
26
+ key: string
27
+ options: ChatAnswer[]
28
+ }
29
+
27
30
  export class ChatbotModel {
28
31
  readonly api: ChatbotAPI
29
32
  readonly translation: ChatbotTranslation
@@ -205,11 +208,29 @@ export class ChatbotModel {
205
208
 
206
209
  public setHintMessage({ entityId, fieldId, ...message }: SetHintMessageProps) {
207
210
  const options = this.$alternatives.getState()?.options.hints ?? message.options
208
- const messagesList = this.messages.$state.getState()
209
- const key = `${entityId}-${fieldId}`
210
- const messages = messagesList[key]
211
- if (messages?.length > 1) return
212
- this.messages.setField({ key, data: [{ ...message, options }] })
211
+ this.messages.setField({
212
+ key: `${entityId}-${fieldId}`,
213
+ fn: messages => {
214
+ if (!messages || messages.length > 1) return
215
+ return [{ ...message, options }]
216
+ },
217
+ })
218
+ }
219
+
220
+ public addOption({ options, key }: AddOptionProps) {
221
+ this.messages.setField({
222
+ key,
223
+ fn: messages => {
224
+ if (!messages?.length) return
225
+ const lastMessage = messages[messages.length - 1]
226
+ const copy = [...messages]
227
+ copy.splice(messages.length - 1, 1, {
228
+ ...lastMessage,
229
+ options: [...lastMessage.options, ...options],
230
+ })
231
+ return copy
232
+ },
233
+ })
213
234
  }
214
235
 
215
236
  public bindKey($store: Store<string>) {
@@ -2,15 +2,22 @@ import { createEvent, createStore } from 'effector'
2
2
 
3
3
  type UpdateField<T> = {
4
4
  key: string
5
- data: T
6
- }
5
+ } & ({ data: T; fn?: never } | { data?: never; fn: (props: T | void) => T | void })
7
6
 
8
7
  export function createEntityFieldStore<T>() {
9
8
  const setField = createEvent<UpdateField<T>>()
10
9
  const reset = createEvent()
11
10
 
12
11
  const $state = createStore<Record<string, T>>({})
13
- .on(setField, (state, { key, data }) => ({ ...state, [key]: data }))
12
+ .on(setField, (state, { key, data }) => {
13
+ if (typeof data === 'function') {
14
+ const currentData = state[key]
15
+ const newData = data(currentData)
16
+ if (newData === undefined) return state
17
+ return { ...state, [key]: newData }
18
+ }
19
+ return { ...state, [key]: data }
20
+ })
14
21
  .reset(reset)
15
22
 
16
23
  return { $state, setField, reset }