@memori.ai/memori-react 8.25.0 → 8.26.0

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.
Files changed (30) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/components/LoginDrawer/LoginDrawer.d.ts +2 -1
  3. package/dist/components/LoginDrawer/LoginDrawer.js +2 -2
  4. package/dist/components/LoginDrawer/LoginDrawer.js.map +1 -1
  5. package/dist/components/MemoriWidget/MemoriWidget.js +25 -18
  6. package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
  7. package/dist/components/PositionDrawer/PositionDrawer.d.ts +2 -1
  8. package/dist/components/PositionDrawer/PositionDrawer.js +3 -2
  9. package/dist/components/PositionDrawer/PositionDrawer.js.map +1 -1
  10. package/dist/components/layouts/website-assistant.css +14 -2
  11. package/dist/version.d.ts +1 -1
  12. package/dist/version.js +1 -1
  13. package/esm/components/LoginDrawer/LoginDrawer.d.ts +2 -1
  14. package/esm/components/LoginDrawer/LoginDrawer.js +2 -2
  15. package/esm/components/LoginDrawer/LoginDrawer.js.map +1 -1
  16. package/esm/components/MemoriWidget/MemoriWidget.js +25 -18
  17. package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
  18. package/esm/components/PositionDrawer/PositionDrawer.d.ts +2 -1
  19. package/esm/components/PositionDrawer/PositionDrawer.js +3 -2
  20. package/esm/components/PositionDrawer/PositionDrawer.js.map +1 -1
  21. package/esm/components/layouts/website-assistant.css +14 -2
  22. package/esm/version.d.ts +1 -1
  23. package/esm/version.js +1 -1
  24. package/package.json +1 -1
  25. package/src/components/LoginDrawer/LoginDrawer.tsx +4 -1
  26. package/src/components/MemoriWidget/MemoriWidget.tsx +19 -7
  27. package/src/components/PositionDrawer/PositionDrawer.tsx +12 -2
  28. package/src/components/layouts/layouts.stories.tsx +15 -17
  29. package/src/components/layouts/website-assistant.css +14 -2
  30. package/src/version.ts +1 -1
@@ -21,6 +21,8 @@ export interface Props {
21
21
  __TEST__signup?: boolean;
22
22
  __TEST__needMissingData?: boolean;
23
23
  setUser: (user: User) => void;
24
+ /** Optional class for the drawer root (e.g. for z-index when layout is WEBSITE_ASSISTANT). */
25
+ drawerClassName?: string;
24
26
  }
25
27
 
26
28
  const LoginDrawer = ({
@@ -34,6 +36,7 @@ const LoginDrawer = ({
34
36
  apiClient,
35
37
  __TEST__signup = false,
36
38
  __TEST__needMissingData = false,
39
+ drawerClassName,
37
40
  }: Props) => {
38
41
  const { t, i18n } = useTranslation();
39
42
  const lang = i18n.language === 'it' ? 'it' : 'en';
@@ -295,7 +298,7 @@ const LoginDrawer = ({
295
298
  className={cx('memori--login-drawer', {
296
299
  'memori--login-drawer--logged': isUserLoggedIn,
297
300
  'memori--login-drawer--signup': showSignup,
298
- })}
301
+ }, drawerClassName)}
299
302
  >
300
303
  {needsMissingData?.token?.length ? (
301
304
  <>
@@ -834,10 +834,6 @@ const MemoriWidget = ({
834
834
  (window.getMemoriState() as MemoriSession)?.sessionID;
835
835
  if (!sessionID || !text?.length) return;
836
836
 
837
- if (memori.needsDateTime) {
838
- await sendDateChangedEvent({ sessionID: sessionID });
839
- }
840
-
841
837
  // Build full message text (same as what will be sent) so we can run PII check on it.
842
838
  // Order: user text -> optional translation -> appended document attachment content.
843
839
  let msg = text;
@@ -929,6 +925,9 @@ const MemoriWidget = ({
929
925
  const { currentState, ...response } = await postTextEnteredEvent({
930
926
  sessionId: sessionID,
931
927
  text: msg,
928
+ ...(memori.needsDateTime && {
929
+ dateUTC: DateTime.utc().toISO() ?? undefined,
930
+ }),
932
931
  });
933
932
  if (response.resultCode === 0 && currentState) {
934
933
  setChatLogID(undefined);
@@ -1710,6 +1709,9 @@ const MemoriWidget = ({
1710
1709
  const { resultCode: textResultCode } = await postTextEnteredEvent({
1711
1710
  sessionId,
1712
1711
  text: pin ?? '',
1712
+ ...(memori.needsDateTime && {
1713
+ dateUTC: DateTime.utc().toISO() ?? undefined,
1714
+ }),
1713
1715
  });
1714
1716
  textResult = textResultCode;
1715
1717
  }
@@ -2701,6 +2703,9 @@ const MemoriWidget = ({
2701
2703
  const response = await postTextEnteredEvent({
2702
2704
  sessionId: sessionID!,
2703
2705
  text: initialQuestion,
2706
+ ...(memori.needsDateTime && {
2707
+ dateUTC: DateTime.utc().toISO() ?? undefined,
2708
+ }),
2704
2709
  });
2705
2710
 
2706
2711
  // Handle 500 error from TextEnteredEvent
@@ -2733,9 +2738,6 @@ const MemoriWidget = ({
2733
2738
  if (position && memori.needsPosition) {
2734
2739
  applyPosition(position, sessionID);
2735
2740
  }
2736
- if (memori.needsDateTime) {
2737
- sendDateChangedEvent({ sessionID: sessionID, state: currentState });
2738
- }
2739
2741
  }
2740
2742
  // Default case - just translate and activate
2741
2743
  else {
@@ -3335,6 +3337,11 @@ const MemoriWidget = ({
3335
3337
  onClickStart();
3336
3338
  }
3337
3339
  }}
3340
+ drawerClassName={
3341
+ selectedLayout === 'WEBSITE_ASSISTANT'
3342
+ ? 'memori-drawer--above-website-assistant'
3343
+ : undefined
3344
+ }
3338
3345
  />
3339
3346
  )}
3340
3347
 
@@ -3367,6 +3374,11 @@ const MemoriWidget = ({
3367
3374
  user={user}
3368
3375
  loginToken={loginToken}
3369
3376
  onClose={() => setShowLoginDrawer(false)}
3377
+ drawerClassName={
3378
+ selectedLayout === 'WEBSITE_ASSISTANT'
3379
+ ? 'memori-drawer--above-website-assistant'
3380
+ : undefined
3381
+ }
3370
3382
  onLogin={(user, token) => {
3371
3383
  //The user is logged in, so we need to set open a new session with the new token
3372
3384
  reopenSession(
@@ -2,6 +2,7 @@ import React from 'react';
2
2
  import { Memori, Venue } from '@memori.ai/memori-api-client/dist/types';
3
3
  import Drawer from '../ui/Drawer';
4
4
  import { useTranslation } from 'react-i18next';
5
+ import cx from 'classnames';
5
6
  import VenueWidget from '../VenueWidget/VenueWidget';
6
7
 
7
8
  export interface Props {
@@ -10,14 +11,23 @@ export interface Props {
10
11
  onClose: (venue?: Venue) => void;
11
12
  venue?: Venue;
12
13
  setVenue: (venue: Venue) => void;
14
+ /** Optional class for the drawer root (e.g. for z-index when layout is WEBSITE_ASSISTANT). */
15
+ drawerClassName?: string;
13
16
  }
14
17
 
15
- const PositionDrawer = ({ memori, open, onClose, venue, setVenue }: Props) => {
18
+ const PositionDrawer = ({
19
+ memori,
20
+ open,
21
+ onClose,
22
+ venue,
23
+ setVenue,
24
+ drawerClassName,
25
+ }: Props) => {
16
26
  const { t } = useTranslation();
17
27
 
18
28
  return (
19
29
  <Drawer
20
- className="memori-position-drawer"
30
+ className={cx('memori-position-drawer', drawerClassName)}
21
31
  open={open}
22
32
  onClose={() => onClose(venue)}
23
33
  title={t('widget.position') || 'Position'}
@@ -145,29 +145,27 @@ WebsiteAssistant2.args = {
145
145
  apiURL: 'https://backend.memori.ai',
146
146
  baseURL: 'https://exmachina.aclambda.online',
147
147
  uiLang: 'IT',
148
+ avatar3dHidden: true,
148
149
  spokenLang: 'IT',
149
150
  layout: 'WEBSITE_ASSISTANT',
150
151
  };
151
152
 
152
153
  export const WebsiteAssistant3 = Template.bind({});
153
154
  WebsiteAssistant3.args = {
154
- memoriName: 'FestinaLente',
155
- memoriID: 'c0ab75e2-4c56-41dc-9df6-58fa7959cda3',
156
- ownerUserID: 'cca0733c-9f24-4f1c-a3e3-99675cbb729f',
157
- tenantID: 'firenzesmart.aclambda.online',
158
- engineURL: 'https://engine.memori.ai',
159
- apiURL: 'https://backend.memori.ai',
160
- baseURL: 'https://firenzesmart.aclambda.online',
161
- uiLang: 'IT',
162
- spokenLang: 'IT',
163
- integrationID: '35a9e856-0333-4543-a428-bfe4d8025027',
164
- layout: 'WEBSITE_ASSISTANT',
165
- showSettings: false,
166
- showClear: false,
167
- showTypingText: false,
168
- showOnlyLastMessages: false,
169
- showTranslationOriginal: false,
170
- showCopyButton: false,
155
+ memoriName: "Layout Storybook",
156
+ ownerUserName: "Andrea-Patini",
157
+ memoriID: "ae20fc5a-cc15-4db9-b7dd-2cd4a621b85e",
158
+ ownerUserID: "91dbc9ba-b684-4fbe-9828-b5980af6cda9",
159
+ tenantID: "aisuru-staging.aclambda.online",
160
+ engineURL: "https://engine-staging.memori.ai/memori/v2",
161
+ apiURL: "https://backend-staging.memori.ai/api/v2",
162
+ baseURL: "http://localhost:3000",
163
+ layout: "WEBSITE_ASSISTANT",
164
+ avatar3dHidden: true,
165
+ uiLang: "IT",
166
+ spokenLang: "IT",
167
+ showOnlyLastMessages: true,
168
+ integrationID: "716f4728-919c-4015-aae1-88998a081c6f",
171
169
  };
172
170
 
173
171
 
@@ -152,6 +152,16 @@
152
152
  font-size: 14px;
153
153
  }
154
154
 
155
+ /*
156
+ * Login and Position drawers are portaled to body by Headless UI.
157
+ * When layout is WEBSITE_ASSISTANT we pass drawerClassName so they sit above the fixed panel.
158
+ */
159
+ .memori-drawer.memori-drawer--above-website-assistant,
160
+ .memori-drawer.memori-drawer--above-website-assistant .memori-drawer--backdrop,
161
+ .memori-drawer.memori-drawer--above-website-assistant .memori-drawer--container {
162
+ z-index: 2147483648;
163
+ }
164
+
155
165
  .memori-widget.memori-layout-website_assistant .memori-website_assistant--collapsed,
156
166
  .memori-widget.memori-layout-website_assistant .memori-website_assistant--expanded {
157
167
  position: fixed;
@@ -333,9 +343,11 @@
333
343
  margin-left: 0;
334
344
  }
335
345
 
346
+ /* Position dropdown below the trigger so it does not cover the share button */
336
347
  .memori-widget.memori-layout-website_assistant .memori-share-button .memori-share-button--overlay {
337
- z-index: 1000;
338
- top: -6rem;
348
+ z-index: 1002;
349
+ top: 100%;
350
+ margin-top: 0.5rem;
339
351
  }
340
352
 
341
353
  .memori-widget.memori-layout-website_assistant .memori-header--button--fullscreen {
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // This file is auto-generated. Do not edit manually.
2
- export const version = '8.25.0';
2
+ export const version = '8.26.0';