@memori.ai/memori-react 2.20.1 → 2.21.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.
- package/CHANGELOG.md +19 -0
- package/dist/components/AvatarView/components/fullbodyAvatar.js +3 -12
- package/dist/components/AvatarView/components/fullbodyAvatar.js.map +1 -1
- package/dist/components/Header/Header.d.ts +2 -1
- package/dist/components/Header/Header.js +2 -2
- package/dist/components/Header/Header.js.map +1 -1
- package/dist/components/MemoriWidget/MemoriWidget.js +1 -0
- package/dist/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/dist/components/ShareButton/ShareButton.d.ts +2 -0
- package/dist/components/ShareButton/ShareButton.js +5 -2
- package/dist/components/ShareButton/ShareButton.js.map +1 -1
- package/dist/components/ShareButton/ShareButton.test.js +9 -0
- package/dist/components/ShareButton/ShareButton.test.js.map +1 -1
- package/dist/helpers/tenant.d.ts +2 -0
- package/dist/helpers/tenant.js +40 -0
- package/dist/helpers/tenant.js.map +1 -0
- package/dist/index.js +11 -9
- package/dist/index.js.map +1 -1
- package/dist/mocks/data.js +32 -5
- package/dist/mocks/data.js.map +1 -1
- package/esm/components/AvatarView/components/fullbodyAvatar.js +3 -12
- package/esm/components/AvatarView/components/fullbodyAvatar.js.map +1 -1
- package/esm/components/Header/Header.d.ts +2 -1
- package/esm/components/Header/Header.js +2 -2
- package/esm/components/Header/Header.js.map +1 -1
- package/esm/components/MemoriWidget/MemoriWidget.js +1 -0
- package/esm/components/MemoriWidget/MemoriWidget.js.map +1 -1
- package/esm/components/ShareButton/ShareButton.d.ts +2 -0
- package/esm/components/ShareButton/ShareButton.js +6 -3
- package/esm/components/ShareButton/ShareButton.js.map +1 -1
- package/esm/components/ShareButton/ShareButton.test.js +9 -0
- package/esm/components/ShareButton/ShareButton.test.js.map +1 -1
- package/esm/helpers/tenant.d.ts +2 -0
- package/esm/helpers/tenant.js +36 -0
- package/esm/helpers/tenant.js.map +1 -0
- package/esm/index.js +11 -9
- package/esm/index.js.map +1 -1
- package/esm/mocks/data.js +32 -5
- package/esm/mocks/data.js.map +1 -1
- package/package.json +1 -1
- package/src/components/AvatarView/AvatarView.stories.tsx +2 -2
- package/src/components/AvatarView/components/fullbodyAvatar.tsx +13 -10
- package/src/components/Header/Header.tsx +4 -0
- package/src/components/MemoriWidget/MemoriWidget.tsx +1 -0
- package/src/components/ShareButton/ShareButton.stories.tsx +23 -3
- package/src/components/ShareButton/ShareButton.test.tsx +13 -0
- package/src/components/ShareButton/ShareButton.tsx +15 -4
- package/src/components/ShareButton/__snapshots__/ShareButton.test.tsx.snap +70 -0
- package/src/components/layouts/layouts.stories.tsx +3 -3
- package/src/helpers/tenant.ts +47 -0
- package/src/index.stories.tsx +8 -8
- package/src/index.tsx +15 -9
- package/src/mocks/data.ts +33 -5
package/esm/mocks/data.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/mocks/data.ts"],"names":[],"mappings":"AASA,MAAM,CAAC,MAAM,SAAS,GAAG,sCAAsC,CAAC;AAEhE,MAAM,CAAC,MAAM,MAAM,GAAW;IAC5B,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"data.js","sourceRoot":"","sources":["../../src/mocks/data.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -196,7 +196,7 @@ FullbodyFemale.args = {
|
|
|
196
196
|
headMovement: true,
|
|
197
197
|
rotateAvatar: true,
|
|
198
198
|
speaking: false,
|
|
199
|
-
url: 'https://
|
|
199
|
+
url: 'https://models.readyplayer.me/650d50c2663b19e0d2831b2b.glb',
|
|
200
200
|
fallbackImg:
|
|
201
201
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
202
202
|
halfBody: false,
|
|
@@ -209,7 +209,7 @@ FullbodyAnimatedFemale.args = {
|
|
|
209
209
|
headMovement: true,
|
|
210
210
|
rotateAvatar: true,
|
|
211
211
|
speaking: true,
|
|
212
|
-
url: 'https://
|
|
212
|
+
url: 'https://models.readyplayer.me/650d50c2663b19e0d2831b2b.glb',
|
|
213
213
|
fallbackImg:
|
|
214
214
|
'https://assets.memori.ai/api/v2/asset/3049582f-db5f-452c-913d-e4340d4afd0a.png',
|
|
215
215
|
animation: 'Idle',
|
|
@@ -48,13 +48,16 @@ export default function Avatar({
|
|
|
48
48
|
const { scene } = useGLTF(url);
|
|
49
49
|
const { animations } = useGLTF(
|
|
50
50
|
sex === 'MALE'
|
|
51
|
-
? 'https://assets.memori.ai/api/v2/asset/
|
|
52
|
-
: 'https://assets.memori.ai/api/v2/asset/
|
|
51
|
+
? 'https://assets.memori.ai/api/v2/asset/5de7456f-0cd8-4e29-95a7-0cd0045a5325.glb'
|
|
52
|
+
: 'https://assets.memori.ai/api/v2/asset/84487a2b-377c-4565-800a-51459d580ec8.glb'
|
|
53
53
|
);
|
|
54
|
+
// const { animations: loadingAnimations } = useGLTF(
|
|
55
|
+
// sex === 'MALE'
|
|
56
|
+
// ? 'https://assets.memori.ai/api/v2/asset/2150d3d3-b77d-4489-8455-e6239334e8a7.glb'
|
|
57
|
+
// : 'https://assets.memori.ai/api/v2/asset/0a04e5b2-1a02-4964-9534-75c2a7574660.glb'
|
|
58
|
+
// );
|
|
54
59
|
const { animations: loadingAnimations } = useGLTF(
|
|
55
|
-
|
|
56
|
-
? 'https://assets.memori.ai/api/v2/asset/2150d3d3-b77d-4489-8455-e6239334e8a7.glb'
|
|
57
|
-
: 'https://assets.memori.ai/api/v2/asset/0a04e5b2-1a02-4964-9534-75c2a7574660.glb'
|
|
60
|
+
'https://assets.memori.ai/api/v2/asset/ebb61fe1-6b0d-4b11-a032-292b7ef307a4.glb'
|
|
58
61
|
);
|
|
59
62
|
const { nodes, materials } = useGraph(scene);
|
|
60
63
|
|
|
@@ -91,11 +94,11 @@ export default function Avatar({
|
|
|
91
94
|
action.fadeIn(0.3).play();
|
|
92
95
|
else action.fadeOut(0.3).stop();
|
|
93
96
|
});
|
|
94
|
-
if (animation === 'Loading') {
|
|
95
|
-
|
|
96
|
-
} else {
|
|
97
|
-
|
|
98
|
-
}
|
|
97
|
+
// if (animation === 'Loading') {
|
|
98
|
+
// loadingAnim.actions['Loading']?.fadeIn(0.3).play();
|
|
99
|
+
// } else {
|
|
100
|
+
// loadingAnim.actions['Loading']?.fadeOut(0.3).stop();
|
|
101
|
+
// }
|
|
99
102
|
} else {
|
|
100
103
|
Object.values(anim.actions).forEach(action => {
|
|
101
104
|
if (!action) return;
|
|
@@ -3,6 +3,7 @@ import cx from 'classnames';
|
|
|
3
3
|
import {
|
|
4
4
|
Memori,
|
|
5
5
|
Message,
|
|
6
|
+
Tenant,
|
|
6
7
|
Venue,
|
|
7
8
|
} from '@memori.ai/memori-api-client/dist/types';
|
|
8
9
|
import Button from '../ui/Button';
|
|
@@ -21,6 +22,7 @@ import Clear from '../icons/Clear';
|
|
|
21
22
|
export interface Props {
|
|
22
23
|
className?: string;
|
|
23
24
|
memori: Memori;
|
|
25
|
+
tenant?: Tenant;
|
|
24
26
|
history: Message[];
|
|
25
27
|
position?: Venue;
|
|
26
28
|
setShowPositionDrawer: (show: boolean) => void;
|
|
@@ -39,6 +41,7 @@ export interface Props {
|
|
|
39
41
|
const Header: React.FC<Props> = ({
|
|
40
42
|
className,
|
|
41
43
|
memori,
|
|
44
|
+
tenant,
|
|
42
45
|
history,
|
|
43
46
|
position,
|
|
44
47
|
setShowPositionDrawer,
|
|
@@ -151,6 +154,7 @@ const Header: React.FC<Props> = ({
|
|
|
151
154
|
<ShareButton
|
|
152
155
|
className="memori-header--button memori-header--button-share"
|
|
153
156
|
title={memori.name}
|
|
157
|
+
tenant={tenant}
|
|
154
158
|
showQrCode
|
|
155
159
|
align="left"
|
|
156
160
|
/>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { Meta, Story } from '@storybook/react';
|
|
3
3
|
import ShareButton, { Props } from './ShareButton';
|
|
4
|
+
import { tenant } from '../../mocks/data';
|
|
4
5
|
|
|
5
6
|
import './ShareButton.css';
|
|
6
7
|
|
|
@@ -40,6 +41,12 @@ Default.args = {
|
|
|
40
41
|
align: 'right',
|
|
41
42
|
};
|
|
42
43
|
|
|
44
|
+
export const Alignment = TemplateRight.bind({});
|
|
45
|
+
Alignment.args = {
|
|
46
|
+
url: 'https://memori.ai',
|
|
47
|
+
align: 'left',
|
|
48
|
+
};
|
|
49
|
+
|
|
43
50
|
export const WithQrCode = Template.bind({});
|
|
44
51
|
WithQrCode.args = {
|
|
45
52
|
url: 'https://memori.ai',
|
|
@@ -47,8 +54,21 @@ WithQrCode.args = {
|
|
|
47
54
|
align: 'right',
|
|
48
55
|
};
|
|
49
56
|
|
|
50
|
-
export const
|
|
51
|
-
|
|
57
|
+
export const WithQrCodeAndTenant = Template.bind({});
|
|
58
|
+
WithQrCodeAndTenant.args = {
|
|
52
59
|
url: 'https://memori.ai',
|
|
53
|
-
|
|
60
|
+
showQrCode: true,
|
|
61
|
+
align: 'right',
|
|
62
|
+
tenant: tenant,
|
|
63
|
+
};
|
|
64
|
+
|
|
65
|
+
export const WithQrCodeAndOtherTenant = Template.bind({});
|
|
66
|
+
WithQrCodeAndOtherTenant.args = {
|
|
67
|
+
url: 'https://memori.ai',
|
|
68
|
+
showQrCode: true,
|
|
69
|
+
align: 'right',
|
|
70
|
+
tenant: {
|
|
71
|
+
...tenant,
|
|
72
|
+
theme: 'tailoor',
|
|
73
|
+
},
|
|
54
74
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { render } from '@testing-library/react';
|
|
3
3
|
import ShareButton from './ShareButton';
|
|
4
|
+
import { tenant } from '../../mocks/data';
|
|
4
5
|
|
|
5
6
|
it('renders ShareButton unchanged', () => {
|
|
6
7
|
const { container } = render(<ShareButton />);
|
|
@@ -31,3 +32,15 @@ it('renders ShareButton aligned left unchanged', () => {
|
|
|
31
32
|
const { container } = render(<ShareButton align="left" />);
|
|
32
33
|
expect(container).toMatchSnapshot();
|
|
33
34
|
});
|
|
35
|
+
|
|
36
|
+
it('renders ShareButton with tenant img set unchanged', () => {
|
|
37
|
+
const { container } = render(<ShareButton tenant={tenant} />);
|
|
38
|
+
expect(container).toMatchSnapshot();
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
it('renders ShareButton with other tenant img set unchanged', () => {
|
|
42
|
+
const { container } = render(
|
|
43
|
+
<ShareButton tenant={{ ...tenant, theme: 'tailoor' }} />
|
|
44
|
+
);
|
|
45
|
+
expect(container).toMatchSnapshot();
|
|
46
|
+
});
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useEffect, useState } from 'react';
|
|
1
|
+
import React, { useEffect, useMemo, useState } from 'react';
|
|
2
2
|
import { useTranslation } from 'react-i18next';
|
|
3
3
|
import Facebook from '../icons/Facebook';
|
|
4
4
|
import Twitter from '../icons/Twitter';
|
|
@@ -13,8 +13,10 @@ import { QRCodeCanvas } from 'qrcode.react';
|
|
|
13
13
|
import { Menu } from '@headlessui/react';
|
|
14
14
|
import Button from '../ui/Button';
|
|
15
15
|
import cx from 'classnames';
|
|
16
|
+
import { Tenant } from '@memori.ai/memori-api-client/dist/types';
|
|
16
17
|
|
|
17
18
|
export interface Props {
|
|
19
|
+
tenant?: Tenant;
|
|
18
20
|
url?: string;
|
|
19
21
|
title?: string;
|
|
20
22
|
className?: string;
|
|
@@ -25,6 +27,7 @@ export interface Props {
|
|
|
25
27
|
}
|
|
26
28
|
|
|
27
29
|
const ShareButton: React.FC<Props> = ({
|
|
30
|
+
tenant,
|
|
28
31
|
url,
|
|
29
32
|
title = '',
|
|
30
33
|
className,
|
|
@@ -36,6 +39,16 @@ const ShareButton: React.FC<Props> = ({
|
|
|
36
39
|
const { t } = useTranslation();
|
|
37
40
|
const [targetUrl, setTargetUrl] = useState(url);
|
|
38
41
|
|
|
42
|
+
const qrImageURL = useMemo(
|
|
43
|
+
() =>
|
|
44
|
+
tenant?.theme
|
|
45
|
+
? `${baseUrl ?? 'https://app.twincreator.com'}/images/${
|
|
46
|
+
tenant.theme
|
|
47
|
+
}/square_logo.png`
|
|
48
|
+
: `${baseUrl ?? 'https://app.twincreator.com'}/images/memori_logo.png`,
|
|
49
|
+
[tenant, baseUrl]
|
|
50
|
+
);
|
|
51
|
+
|
|
39
52
|
useEffect(() => {
|
|
40
53
|
if (!url) setTargetUrl(window.location.href);
|
|
41
54
|
}, [url]);
|
|
@@ -167,9 +180,7 @@ const ShareButton: React.FC<Props> = ({
|
|
|
167
180
|
level={'H'}
|
|
168
181
|
includeMargin={false}
|
|
169
182
|
imageSettings={{
|
|
170
|
-
src:
|
|
171
|
-
baseUrl || 'https://app.twincreator.com'
|
|
172
|
-
}/images/memori_logo.png`,
|
|
183
|
+
src: qrImageURL,
|
|
173
184
|
x: undefined,
|
|
174
185
|
y: undefined,
|
|
175
186
|
height: 32,
|
|
@@ -105,6 +105,76 @@ exports[`renders ShareButton with button not primary unchanged 1`] = `
|
|
|
105
105
|
</div>
|
|
106
106
|
`;
|
|
107
107
|
|
|
108
|
+
exports[`renders ShareButton with other tenant img set unchanged 1`] = `
|
|
109
|
+
<div>
|
|
110
|
+
<div
|
|
111
|
+
class="memori-share-button"
|
|
112
|
+
data-headlessui-state=""
|
|
113
|
+
>
|
|
114
|
+
<button
|
|
115
|
+
aria-expanded="false"
|
|
116
|
+
aria-haspopup="true"
|
|
117
|
+
class="memori-button memori-button--circle memori-button--icon-only memori-share-button--button memori-button--primary"
|
|
118
|
+
data-headlessui-state=""
|
|
119
|
+
id="headlessui-menu-button-:re:"
|
|
120
|
+
title="widget.share"
|
|
121
|
+
type="button"
|
|
122
|
+
>
|
|
123
|
+
<div
|
|
124
|
+
class="memori-button--icon"
|
|
125
|
+
>
|
|
126
|
+
<svg
|
|
127
|
+
aria-hidden="true"
|
|
128
|
+
focusable="false"
|
|
129
|
+
role="img"
|
|
130
|
+
viewBox="0 0 1024 1024"
|
|
131
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
132
|
+
>
|
|
133
|
+
<path
|
|
134
|
+
d="M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z"
|
|
135
|
+
/>
|
|
136
|
+
</svg>
|
|
137
|
+
</div>
|
|
138
|
+
</button>
|
|
139
|
+
</div>
|
|
140
|
+
</div>
|
|
141
|
+
`;
|
|
142
|
+
|
|
143
|
+
exports[`renders ShareButton with tenant img set unchanged 1`] = `
|
|
144
|
+
<div>
|
|
145
|
+
<div
|
|
146
|
+
class="memori-share-button"
|
|
147
|
+
data-headlessui-state=""
|
|
148
|
+
>
|
|
149
|
+
<button
|
|
150
|
+
aria-expanded="false"
|
|
151
|
+
aria-haspopup="true"
|
|
152
|
+
class="memori-button memori-button--circle memori-button--icon-only memori-share-button--button memori-button--primary"
|
|
153
|
+
data-headlessui-state=""
|
|
154
|
+
id="headlessui-menu-button-:rc:"
|
|
155
|
+
title="widget.share"
|
|
156
|
+
type="button"
|
|
157
|
+
>
|
|
158
|
+
<div
|
|
159
|
+
class="memori-button--icon"
|
|
160
|
+
>
|
|
161
|
+
<svg
|
|
162
|
+
aria-hidden="true"
|
|
163
|
+
focusable="false"
|
|
164
|
+
role="img"
|
|
165
|
+
viewBox="0 0 1024 1024"
|
|
166
|
+
xmlns="http://www.w3.org/2000/svg"
|
|
167
|
+
>
|
|
168
|
+
<path
|
|
169
|
+
d="M752 664c-28.5 0-54.8 10-75.4 26.7L469.4 540.8a160.68 160.68 0 0 0 0-57.6l207.2-149.9C697.2 350 723.5 360 752 360c66.2 0 120-53.8 120-120s-53.8-120-120-120-120 53.8-120 120c0 11.6 1.6 22.7 4.7 33.3L439.9 415.8C410.7 377.1 364.3 352 312 352c-88.4 0-160 71.6-160 160s71.6 160 160 160c52.3 0 98.7-25.1 127.9-63.8l196.8 142.5c-3.1 10.6-4.7 21.8-4.7 33.3 0 66.2 53.8 120 120 120s120-53.8 120-120-53.8-120-120-120zm0-476c28.7 0 52 23.3 52 52s-23.3 52-52 52-52-23.3-52-52 23.3-52 52-52zM312 600c-48.5 0-88-39.5-88-88s39.5-88 88-88 88 39.5 88 88-39.5 88-88 88zm440 236c-28.7 0-52-23.3-52-52s23.3-52 52-52 52 23.3 52 52-23.3 52-52 52z"
|
|
170
|
+
/>
|
|
171
|
+
</svg>
|
|
172
|
+
</div>
|
|
173
|
+
</button>
|
|
174
|
+
</div>
|
|
175
|
+
</div>
|
|
176
|
+
`;
|
|
177
|
+
|
|
108
178
|
exports[`renders ShareButton with title unchanged 1`] = `
|
|
109
179
|
<div>
|
|
110
180
|
<div
|
|
@@ -98,7 +98,7 @@ ChatOnly.args = {
|
|
|
98
98
|
newPassword: null,
|
|
99
99
|
ownerUserID: null,
|
|
100
100
|
ownerUserName: 'nzambello',
|
|
101
|
-
ownerTenantName: 'app.
|
|
101
|
+
ownerTenantName: 'app.twincreator.com',
|
|
102
102
|
memoriConfigurationID: 'fd10bb42-98d9-4c08-8e02-2b08bd4e4975',
|
|
103
103
|
description:
|
|
104
104
|
'Sono Nicola Zambello, sviluppatore e attivista per un web etico e sostenibile',
|
|
@@ -206,7 +206,7 @@ Totem.args = {
|
|
|
206
206
|
newPassword: null,
|
|
207
207
|
ownerUserID: null,
|
|
208
208
|
ownerUserName: 'nzambello',
|
|
209
|
-
ownerTenantName: 'app.
|
|
209
|
+
ownerTenantName: 'app.twincreator.com',
|
|
210
210
|
memoriConfigurationID: 'fd10bb42-98d9-4c08-8e02-2b08bd4e4975',
|
|
211
211
|
description:
|
|
212
212
|
'Sono Nicola Zambello, sviluppatore e attivista per un web etico e sostenibile',
|
|
@@ -326,7 +326,7 @@ WebsiteAssistant.args = {
|
|
|
326
326
|
newPassword: null,
|
|
327
327
|
ownerUserID: null,
|
|
328
328
|
ownerUserName: 'nzambello',
|
|
329
|
-
ownerTenantName: 'app.
|
|
329
|
+
ownerTenantName: 'app.twincreator.com',
|
|
330
330
|
memoriConfigurationID: 'fd10bb42-98d9-4c08-8e02-2b08bd4e4975',
|
|
331
331
|
description:
|
|
332
332
|
'Sono Nicola Zambello, sviluppatore e attivista per un web etico e sostenibile',
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { Tenant } from '@memori.ai/memori-api-client/dist/types';
|
|
2
|
+
|
|
3
|
+
const defaultTenant: Tenant = {
|
|
4
|
+
id: 'app.twincreator.com',
|
|
5
|
+
theme: 'twincreator',
|
|
6
|
+
config: {
|
|
7
|
+
name: 'Memori',
|
|
8
|
+
showNewUser: false,
|
|
9
|
+
requirePosition: false,
|
|
10
|
+
},
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const getTenant = async (
|
|
14
|
+
tenantID: string,
|
|
15
|
+
baseURL?: string
|
|
16
|
+
): Promise<Tenant> => {
|
|
17
|
+
const apiBaseUrl = baseURL
|
|
18
|
+
? new URL(
|
|
19
|
+
`${
|
|
20
|
+
baseURL.startsWith('http')
|
|
21
|
+
? ''
|
|
22
|
+
: baseURL.includes('localhost')
|
|
23
|
+
? 'http://'
|
|
24
|
+
: 'https://'
|
|
25
|
+
}${baseURL}`
|
|
26
|
+
).host
|
|
27
|
+
: 'https://app.twincreator.com';
|
|
28
|
+
|
|
29
|
+
try {
|
|
30
|
+
const response = await fetch(`${apiBaseUrl}/api/tenant/${tenantID}`);
|
|
31
|
+
const { tenant } = await response.json();
|
|
32
|
+
|
|
33
|
+
if (!tenant) {
|
|
34
|
+
return {
|
|
35
|
+
...defaultTenant,
|
|
36
|
+
tenantID,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return tenant;
|
|
41
|
+
} catch (error) {
|
|
42
|
+
return {
|
|
43
|
+
...defaultTenant,
|
|
44
|
+
tenantID,
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
};
|
package/src/index.stories.tsx
CHANGED
|
@@ -28,9 +28,9 @@ export const Anonymous = Template.bind({});
|
|
|
28
28
|
Anonymous.args = {
|
|
29
29
|
ownerUserName: 'nzambello',
|
|
30
30
|
memoriName: 'Nicola',
|
|
31
|
-
tenantID: 'app.
|
|
31
|
+
tenantID: 'app.twincreator.com',
|
|
32
32
|
apiURL: 'https://backend.memori.ai',
|
|
33
|
-
baseURL: 'https://app.
|
|
33
|
+
baseURL: 'https://app.twincreator.com',
|
|
34
34
|
uiLang: 'it',
|
|
35
35
|
showShare: true,
|
|
36
36
|
showSettings: true,
|
|
@@ -90,9 +90,9 @@ export const WithBatch = TemplateWithBatchButton.bind({});
|
|
|
90
90
|
WithBatch.args = {
|
|
91
91
|
ownerUserName: 'nzambello',
|
|
92
92
|
memoriName: 'Nicola',
|
|
93
|
-
tenantID: 'app.
|
|
93
|
+
tenantID: 'app.twincreator.com',
|
|
94
94
|
apiURL: 'https://backend.memori.ai',
|
|
95
|
-
baseURL: 'https://app.
|
|
95
|
+
baseURL: 'https://app.twincreator.com',
|
|
96
96
|
uiLang: 'it',
|
|
97
97
|
showShare: true,
|
|
98
98
|
showSettings: true,
|
|
@@ -102,9 +102,9 @@ export const WithCustomUserAvatar = Template.bind({});
|
|
|
102
102
|
WithCustomUserAvatar.args = {
|
|
103
103
|
ownerUserName: 'nzambello',
|
|
104
104
|
memoriName: 'Nicola',
|
|
105
|
-
tenantID: 'app.
|
|
105
|
+
tenantID: 'app.twincreator.com',
|
|
106
106
|
apiURL: 'https://backend.memori.ai',
|
|
107
|
-
baseURL: 'https://app.
|
|
107
|
+
baseURL: 'https://app.twincreator.com',
|
|
108
108
|
uiLang: 'it',
|
|
109
109
|
showShare: true,
|
|
110
110
|
showSettings: true,
|
|
@@ -115,9 +115,9 @@ WithCustomUserAvatar.args = {
|
|
|
115
115
|
// Instruction.args = {
|
|
116
116
|
// ownerUserName: 'nzambello',
|
|
117
117
|
// memoriName: 'Nicola',
|
|
118
|
-
// tenantID: 'app.
|
|
118
|
+
// tenantID: 'app.twincreator.com',
|
|
119
119
|
// apiURL: 'https://backend.memori.ai',
|
|
120
|
-
// baseURL: 'https://app.
|
|
120
|
+
// baseURL: 'https://app.twincreator.com',
|
|
121
121
|
// uiLang: 'it',
|
|
122
122
|
// showShare: true,
|
|
123
123
|
// tag: 'giver',
|
package/src/index.tsx
CHANGED
|
@@ -3,11 +3,13 @@ import PropTypes from 'prop-types';
|
|
|
3
3
|
import {
|
|
4
4
|
DialogState,
|
|
5
5
|
Memori as IMemori,
|
|
6
|
+
Tenant,
|
|
6
7
|
} from '@memori.ai/memori-api-client/dist/types';
|
|
7
8
|
import memoriApiClient from '@memori.ai/memori-api-client';
|
|
8
9
|
import MemoriWidget, {
|
|
9
10
|
Props as WidgetProps,
|
|
10
11
|
} from './components/MemoriWidget/MemoriWidget';
|
|
12
|
+
import { getTenant } from './helpers/tenant';
|
|
11
13
|
|
|
12
14
|
import i18n from './i18n';
|
|
13
15
|
import { useTranslation } from 'react-i18next';
|
|
@@ -107,6 +109,7 @@ const Memori: React.FC<Props> = ({
|
|
|
107
109
|
userAvatar,
|
|
108
110
|
}) => {
|
|
109
111
|
const [memori, setMemori] = useState<IMemori>();
|
|
112
|
+
const [tenant, setTenant] = useState<Tenant>();
|
|
110
113
|
const [speechKey, setSpeechKey] = useState<string | undefined>(
|
|
111
114
|
AZURE_COGNITIVE_SERVICES_TTS_KEY
|
|
112
115
|
);
|
|
@@ -171,6 +174,17 @@ const Memori: React.FC<Props> = ({
|
|
|
171
174
|
fetchMemori();
|
|
172
175
|
}, [fetchMemori, tenantID]);
|
|
173
176
|
|
|
177
|
+
/**
|
|
178
|
+
* Fetches the Tenant data from the backend
|
|
179
|
+
*/
|
|
180
|
+
const fetchTenant = useCallback(async () => {
|
|
181
|
+
const tenant = await getTenant(tenantID, baseURL);
|
|
182
|
+
if (tenant) setTenant(tenant);
|
|
183
|
+
}, [tenantID, apiURL]);
|
|
184
|
+
useEffect(() => {
|
|
185
|
+
fetchTenant();
|
|
186
|
+
}, [fetchTenant]);
|
|
187
|
+
|
|
174
188
|
/**
|
|
175
189
|
* Sets the language in the i18n instance
|
|
176
190
|
*/
|
|
@@ -204,15 +218,7 @@ const Memori: React.FC<Props> = ({
|
|
|
204
218
|
}}
|
|
205
219
|
memoriLang={spokenLang ?? memori.culture?.split('-')?.[0]}
|
|
206
220
|
multilingual={multilingual}
|
|
207
|
-
tenant={
|
|
208
|
-
id: tenantID,
|
|
209
|
-
theme: 'twincreator',
|
|
210
|
-
config: {
|
|
211
|
-
name: tenantID,
|
|
212
|
-
showNewUser: false,
|
|
213
|
-
requirePosition: !!memori.needsPosition,
|
|
214
|
-
},
|
|
215
|
-
}}
|
|
221
|
+
tenant={tenant}
|
|
216
222
|
secret={secretToken}
|
|
217
223
|
sessionID={sessionID}
|
|
218
224
|
showShare={showShare}
|
package/src/mocks/data.ts
CHANGED
|
@@ -10,14 +10,42 @@ import {
|
|
|
10
10
|
export const sessionID = '131165be-9d1a-42fb-a3ce-e8f86d40c88f';
|
|
11
11
|
|
|
12
12
|
export const tenant: Tenant = {
|
|
13
|
-
|
|
14
|
-
theme: 'twincreator',
|
|
13
|
+
adminCount: 3,
|
|
15
14
|
config: {
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
feedbackURL:
|
|
16
|
+
'https://form.asana.com/?k=XC7S3JWQeIhnjipBuA3gbw&d=1199599736247413',
|
|
17
|
+
name: 'TwinCreator',
|
|
18
18
|
requirePosition: false,
|
|
19
|
-
|
|
19
|
+
showNewUser: true,
|
|
20
20
|
},
|
|
21
|
+
creationTimestamp: '2023-05-31T14:32:48.885287Z',
|
|
22
|
+
description: 'TwinCreator',
|
|
23
|
+
disableRegistration: false,
|
|
24
|
+
id: 'app.twincreator.com',
|
|
25
|
+
lastChangeTimestamp: '2023-05-31T14:32:48.885287Z',
|
|
26
|
+
logoURL: 'https://app.twincreator.com/images/twincreator/logo.png',
|
|
27
|
+
maxAdmins: 0,
|
|
28
|
+
maxCompletions: 0,
|
|
29
|
+
maxCompletionsPerUser: 0,
|
|
30
|
+
maxFreeSessions: 400,
|
|
31
|
+
maxFreeSessionsPerUser: 100,
|
|
32
|
+
maxMemoriPerAdmin: 0,
|
|
33
|
+
maxMemoriPerUser: 3,
|
|
34
|
+
maxTotalMemori: 0,
|
|
35
|
+
maxUsers: 0,
|
|
36
|
+
memoriCount: 0,
|
|
37
|
+
name: 'app.twincreator.com',
|
|
38
|
+
nonFreeSessionCost: 0.02,
|
|
39
|
+
paying: true,
|
|
40
|
+
tenantID: '96caa4b4-31a4-48e5-8163-dec61869a2a7',
|
|
41
|
+
theme: 'twincreator',
|
|
42
|
+
userCount: 0,
|
|
43
|
+
usersCanAccessAPI: false,
|
|
44
|
+
usersCanCreateMemori: false,
|
|
45
|
+
usersCanEditDynamicIntents: false,
|
|
46
|
+
usersCanEditIntegrations: false,
|
|
47
|
+
usersCanEditMemoriChaining: false,
|
|
48
|
+
usersCanRunSnippets: false,
|
|
21
49
|
};
|
|
22
50
|
|
|
23
51
|
export const memori: Memori = {
|