cozy-search 0.15.1 → 0.16.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/dist/assets/anthropic.svg +7 -0
- package/dist/assets/gemini.svg +109 -0
- package/dist/assets/meta.svg +22 -0
- package/dist/assets/mistral.svg +19 -0
- package/dist/assets/open_ai.svg +10 -0
- package/dist/assets/openrag.png +0 -0
- package/dist/components/AssistantProvider.js +39 -2
- package/dist/components/Conversations/AssistantAvatar.d.ts +4 -0
- package/dist/components/Conversations/AssistantAvatar.js +67 -0
- package/dist/components/Conversations/AssistantSelection.d.ts +4 -0
- package/dist/components/Conversations/AssistantSelection.js +164 -0
- package/dist/components/Conversations/AssistantSelectionItem.d.ts +11 -0
- package/dist/components/Conversations/AssistantSelectionItem.js +119 -0
- package/dist/components/Conversations/ConversationBar.js +21 -1
- package/dist/components/Conversations/styles.styl +88 -0
- package/dist/components/CreateAssistantSteps/ApiKeyStep.d.ts +7 -0
- package/dist/components/CreateAssistantSteps/ApiKeyStep.js +151 -0
- package/dist/components/CreateAssistantSteps/AssistantDialogContent.d.ts +10 -0
- package/dist/components/CreateAssistantSteps/AssistantDialogContent.js +59 -0
- package/dist/components/CreateAssistantSteps/BasicInfoStep.d.ts +8 -0
- package/dist/components/CreateAssistantSteps/BasicInfoStep.js +136 -0
- package/dist/components/CreateAssistantSteps/Provider.d.ts +6 -0
- package/dist/components/CreateAssistantSteps/Provider.js +517 -0
- package/dist/components/CreateAssistantSteps/ProviderSelectionStep.d.ts +5 -0
- package/dist/components/CreateAssistantSteps/ProviderSelectionStep.js +122 -0
- package/dist/components/CreateAssistantSteps/helpers.d.ts +1 -0
- package/dist/components/CreateAssistantSteps/helpers.js +90 -0
- package/dist/components/CreateAssistantSteps/providers.json +63 -0
- package/dist/components/CreateAssistantSteps/styles.styl +62 -0
- package/dist/components/CreateAssistantSteps/useAssistantDialog.d.ts +53 -0
- package/dist/components/CreateAssistantSteps/useAssistantDialog.js +224 -0
- package/dist/components/Search/SearchBarMobile.js +21 -1
- package/dist/components/Views/AssistantDialog.js +38 -3
- package/dist/components/Views/CreateAssistantDialog.d.ts +5 -0
- package/dist/components/Views/CreateAssistantDialog.js +170 -0
- package/dist/components/Views/DeleteAssistantDialog.d.ts +5 -0
- package/dist/components/Views/DeleteAssistantDialog.js +176 -0
- package/dist/components/Views/EditAssistantDialog.d.ts +5 -0
- package/dist/components/Views/EditAssistantDialog.js +235 -0
- package/dist/components/constants.d.ts +4 -0
- package/dist/components/constants.js +11 -0
- package/dist/components/queries.d.ts +16 -0
- package/dist/components/queries.js +34 -2
- package/dist/index.d.ts +1 -0
- package/dist/index.js +8 -0
- package/dist/locales/en.json +103 -0
- package/dist/locales/fr.json +103 -0
- package/dist/locales/index.js +412 -0
- package/dist/locales/ru.json +104 -1
- package/dist/locales/vi.json +104 -1
- package/dist/stylesheet.css +147 -0
- package/package.json +6 -6
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.getSelectedProviderByModel = void 0;
|
|
9
|
+
|
|
10
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
11
|
+
|
|
12
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
13
|
+
|
|
14
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
15
|
+
|
|
16
|
+
var providers = [{
|
|
17
|
+
id: "openrag",
|
|
18
|
+
name: "LINAGORA",
|
|
19
|
+
models: ["openrag"],
|
|
20
|
+
description: "assistant_create.steps.provider_selection.openrag.description",
|
|
21
|
+
icon: "OpenRagLogo",
|
|
22
|
+
baseUrl: "/api/openrag",
|
|
23
|
+
external: false
|
|
24
|
+
}, {
|
|
25
|
+
id: "google",
|
|
26
|
+
name: "Google",
|
|
27
|
+
models: ["gemini-3-pro", "gemini-3-pro-001", "gemini-3-flash", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-nano-banana-pro"],
|
|
28
|
+
description: "assistant_create.steps.provider_selection.google.description",
|
|
29
|
+
icon: "GeminiLogo",
|
|
30
|
+
baseUrl: "https://generativelanguage.googleapis.com/v1beta",
|
|
31
|
+
external: true
|
|
32
|
+
}, {
|
|
33
|
+
id: "openai",
|
|
34
|
+
name: "OpenAI",
|
|
35
|
+
models: ["gpt-5.1", "gpt-5-2025-11-14", "o3", "o4-mini", "gpt-5-mini", "gpt-4.1-mini", "sora-v2"],
|
|
36
|
+
description: "assistant_create.steps.provider_selection.openai.description",
|
|
37
|
+
icon: "OpenAILogo",
|
|
38
|
+
baseUrl: "https://api.openai.com/v1",
|
|
39
|
+
external: true
|
|
40
|
+
}, {
|
|
41
|
+
id: "mistral_ai",
|
|
42
|
+
name: "Mistral AI",
|
|
43
|
+
models: ["mistral-large-3", "mistral-large-2512", "mistral-medium-3.1", "ministral-3b", "ministral-8b", "ministral-14b", "codestral-2", "devstral-small-2", "pixtral-large-2502"],
|
|
44
|
+
description: "assistant_create.steps.provider_selection.mistral_ai.description",
|
|
45
|
+
icon: "MistralLogo",
|
|
46
|
+
baseUrl: "https://api.mistral.ai/v1",
|
|
47
|
+
external: true
|
|
48
|
+
}, {
|
|
49
|
+
id: "anthropic",
|
|
50
|
+
name: "Anthropic",
|
|
51
|
+
models: ["claude-4-5-opus-20251124", "claude-4-5-sonnet-20250929", "claude-4-5-haiku-20251015", "claude-3-7-sonnet-20250219"],
|
|
52
|
+
description: "assistant_create.steps.provider_selection.anthropic.description",
|
|
53
|
+
icon: "AnthropicLogo",
|
|
54
|
+
baseUrl: "https://api.anthropic.com/v1",
|
|
55
|
+
external: true
|
|
56
|
+
}, {
|
|
57
|
+
id: "custom",
|
|
58
|
+
name: "assistant_create.steps.provider_selection.custom.name",
|
|
59
|
+
description: "assistant_create.steps.provider_selection.custom.description",
|
|
60
|
+
icon: "PlusSmallIcon",
|
|
61
|
+
external: true
|
|
62
|
+
}, {
|
|
63
|
+
id: "meta",
|
|
64
|
+
name: "Meta",
|
|
65
|
+
models: ["meta-llama/Llama-4-Scout-17B-16E-Instruct", "meta-llama/Llama-4-Maverick-402B-Instruct", "meta-llama/Llama-3.3-70B-Instruct", "meta-llama/Llama-3.2-90B-Vision-Instruct"],
|
|
66
|
+
description: "assistant_create.steps.provider_selection.meta.description",
|
|
67
|
+
icon: "MetaLogo",
|
|
68
|
+
baseUrl: "https://api.llama.com/v1",
|
|
69
|
+
external: true
|
|
70
|
+
}];
|
|
71
|
+
/**
|
|
72
|
+
* Get the provider corresponding to a given model name.
|
|
73
|
+
* If no provider matches, return the custom provider.
|
|
74
|
+
* @param {string} modelName - The name of the model.
|
|
75
|
+
* @returns {object} The provider object.
|
|
76
|
+
*/
|
|
77
|
+
|
|
78
|
+
var getSelectedProviderByModel = function getSelectedProviderByModel(modelName) {
|
|
79
|
+
return providers.find(function (provider) {
|
|
80
|
+
var _provider$models;
|
|
81
|
+
|
|
82
|
+
return (_provider$models = provider.models) === null || _provider$models === void 0 ? void 0 : _provider$models.includes(modelName);
|
|
83
|
+
}) || _objectSpread(_objectSpread({}, providers.find(function (provider) {
|
|
84
|
+
return provider.id === 'custom';
|
|
85
|
+
})), {}, {
|
|
86
|
+
name: modelName
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
exports.getSelectedProviderByModel = getSelectedProviderByModel;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "openrag",
|
|
4
|
+
"name": "LINAGORA",
|
|
5
|
+
"models": ["openrag"],
|
|
6
|
+
"description": "assistant_create.steps.provider_selection.openrag.description",
|
|
7
|
+
"icon": "OpenRagLogo",
|
|
8
|
+
"baseUrl": "/api/openrag",
|
|
9
|
+
"external": false
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"id": "google",
|
|
13
|
+
"name": "Google",
|
|
14
|
+
"models": ["gemini-3-pro", "gemini-3-pro-001", "gemini-3-flash", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-nano-banana-pro"],
|
|
15
|
+
"description": "assistant_create.steps.provider_selection.google.description",
|
|
16
|
+
"icon": "GeminiLogo",
|
|
17
|
+
"baseUrl": "https://generativelanguage.googleapis.com/v1beta",
|
|
18
|
+
"external": true
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"id": "openai",
|
|
22
|
+
"name": "OpenAI",
|
|
23
|
+
"models": ["gpt-5.1", "gpt-5-2025-11-14", "o3", "o4-mini", "gpt-5-mini", "gpt-4.1-mini", "sora-v2"],
|
|
24
|
+
"description": "assistant_create.steps.provider_selection.openai.description",
|
|
25
|
+
"icon": "OpenAILogo",
|
|
26
|
+
"baseUrl": "https://api.openai.com/v1",
|
|
27
|
+
"external": true
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"id": "mistral_ai",
|
|
31
|
+
"name": "Mistral AI",
|
|
32
|
+
"models": ["mistral-large-3", "mistral-large-2512", "mistral-medium-3.1", "ministral-3b", "ministral-8b", "ministral-14b", "codestral-2", "devstral-small-2", "pixtral-large-2502"],
|
|
33
|
+
"description": "assistant_create.steps.provider_selection.mistral_ai.description",
|
|
34
|
+
"icon": "MistralLogo",
|
|
35
|
+
"baseUrl": "https://api.mistral.ai/v1",
|
|
36
|
+
"external": true
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"id": "anthropic",
|
|
40
|
+
"name": "Anthropic",
|
|
41
|
+
"models": ["claude-4-5-opus-20251124", "claude-4-5-sonnet-20250929", "claude-4-5-haiku-20251015", "claude-3-7-sonnet-20250219"],
|
|
42
|
+
"description": "assistant_create.steps.provider_selection.anthropic.description",
|
|
43
|
+
"icon": "AnthropicLogo",
|
|
44
|
+
"baseUrl": "https://api.anthropic.com/v1",
|
|
45
|
+
"external": true
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "custom",
|
|
49
|
+
"name": "assistant_create.steps.provider_selection.custom.name",
|
|
50
|
+
"description": "assistant_create.steps.provider_selection.custom.description",
|
|
51
|
+
"icon": "PlusSmallIcon",
|
|
52
|
+
"external": true
|
|
53
|
+
},
|
|
54
|
+
{
|
|
55
|
+
"id": "meta",
|
|
56
|
+
"name": "Meta",
|
|
57
|
+
"models": ["meta-llama/Llama-4-Scout-17B-16E-Instruct", "meta-llama/Llama-4-Maverick-402B-Instruct", "meta-llama/Llama-3.3-70B-Instruct", "meta-llama/Llama-3.2-90B-Vision-Instruct"],
|
|
58
|
+
"description": "assistant_create.steps.provider_selection.meta.description",
|
|
59
|
+
"icon": "MetaLogo",
|
|
60
|
+
"baseUrl": "https://api.llama.com/v1",
|
|
61
|
+
"external": true
|
|
62
|
+
}
|
|
63
|
+
]
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
.BasicInfoStep
|
|
4
|
+
& .avatar-container
|
|
5
|
+
border-radius 50%
|
|
6
|
+
border: 1px solid #E5E5E5
|
|
7
|
+
|
|
8
|
+
& .avatar-image
|
|
9
|
+
border-radius 50%
|
|
10
|
+
|
|
11
|
+
& .file-input
|
|
12
|
+
display none
|
|
13
|
+
|
|
14
|
+
.ModelSelectionStep
|
|
15
|
+
& .grid-container
|
|
16
|
+
display grid
|
|
17
|
+
grid-template-columns 1fr 1fr
|
|
18
|
+
gap 16px
|
|
19
|
+
|
|
20
|
+
& .model-card
|
|
21
|
+
border-radius 16px
|
|
22
|
+
border 1px solid #E5E5E5
|
|
23
|
+
position relative
|
|
24
|
+
transition border-color 0.2s ease
|
|
25
|
+
text-align left
|
|
26
|
+
background inherit
|
|
27
|
+
|
|
28
|
+
&.selected
|
|
29
|
+
border 1px solid var(--primaryColor)
|
|
30
|
+
|
|
31
|
+
&.openrag
|
|
32
|
+
background linear-gradient(90deg, #EFF6FF 0%, #FAF5FF 100%)
|
|
33
|
+
|
|
34
|
+
& .icon-container
|
|
35
|
+
width 53px
|
|
36
|
+
height 53px
|
|
37
|
+
border-radius 16px
|
|
38
|
+
background-size cover
|
|
39
|
+
background-position center
|
|
40
|
+
|
|
41
|
+
&--google
|
|
42
|
+
background-color #f0f4fa
|
|
43
|
+
|
|
44
|
+
&--custom
|
|
45
|
+
background-color #f5f5f5
|
|
46
|
+
|
|
47
|
+
&--openai
|
|
48
|
+
background-color #ffffff
|
|
49
|
+
|
|
50
|
+
& .check-icon
|
|
51
|
+
position absolute
|
|
52
|
+
top 16px
|
|
53
|
+
right 16px
|
|
54
|
+
border-radius 100%
|
|
55
|
+
background-color var(--successColor)
|
|
56
|
+
color var(--white)
|
|
57
|
+
|
|
58
|
+
.CreateAssistantDialog
|
|
59
|
+
& .close-button
|
|
60
|
+
position absolute
|
|
61
|
+
top 10px
|
|
62
|
+
right 10px
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
export namespace STEPS {
|
|
2
|
+
let BASIC_INFO: number;
|
|
3
|
+
let MODEL_SELECTION: number;
|
|
4
|
+
let API_KEY: number;
|
|
5
|
+
}
|
|
6
|
+
export function useAssistantDialog({ onClose, initialData }: {
|
|
7
|
+
onClose: Function;
|
|
8
|
+
initialData?: Object | undefined;
|
|
9
|
+
}): {
|
|
10
|
+
step: number;
|
|
11
|
+
setStep: import("react").Dispatch<import("react").SetStateAction<number>>;
|
|
12
|
+
formData: {
|
|
13
|
+
constructor: Function;
|
|
14
|
+
toString(): string;
|
|
15
|
+
toLocaleString(): string;
|
|
16
|
+
valueOf(): Object;
|
|
17
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
|
18
|
+
isPrototypeOf(v: Object): boolean;
|
|
19
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
20
|
+
name: string;
|
|
21
|
+
description: string;
|
|
22
|
+
icon: null;
|
|
23
|
+
model: string;
|
|
24
|
+
baseUrl: string;
|
|
25
|
+
apiKey: string;
|
|
26
|
+
isCustomModel: boolean;
|
|
27
|
+
};
|
|
28
|
+
setFormData: import("react").Dispatch<import("react").SetStateAction<{
|
|
29
|
+
constructor: Function;
|
|
30
|
+
toString(): string;
|
|
31
|
+
toLocaleString(): string;
|
|
32
|
+
valueOf(): Object;
|
|
33
|
+
hasOwnProperty(v: PropertyKey): boolean;
|
|
34
|
+
isPrototypeOf(v: Object): boolean;
|
|
35
|
+
propertyIsEnumerable(v: PropertyKey): boolean;
|
|
36
|
+
name: string;
|
|
37
|
+
description: string;
|
|
38
|
+
icon: null;
|
|
39
|
+
model: string;
|
|
40
|
+
baseUrl: string;
|
|
41
|
+
apiKey: string;
|
|
42
|
+
isCustomModel: boolean;
|
|
43
|
+
}>>;
|
|
44
|
+
selectedProvider: any;
|
|
45
|
+
setSelectedProvider: import("react").Dispatch<any>;
|
|
46
|
+
handleChange: (field: any) => (event: any) => void;
|
|
47
|
+
handleAvatarChange: (avatarData: any) => void;
|
|
48
|
+
handleProviderSelection: (provider: any) => void;
|
|
49
|
+
handleBack: () => void;
|
|
50
|
+
handleNext: (onSubmit: Function) => Promise<void>;
|
|
51
|
+
isNextDisabled: (isAllowToSkipApiKey: any) => boolean;
|
|
52
|
+
handleChangeModel: (value: any) => void;
|
|
53
|
+
};
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.useAssistantDialog = exports.STEPS = void 0;
|
|
9
|
+
|
|
10
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
11
|
+
|
|
12
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
+
|
|
14
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
15
|
+
|
|
16
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
17
|
+
|
|
18
|
+
var _react = require("react");
|
|
19
|
+
|
|
20
|
+
var _twakeI18n = require("twake-i18n");
|
|
21
|
+
|
|
22
|
+
var _Alert = require("cozy-ui/transpiled/react/providers/Alert");
|
|
23
|
+
|
|
24
|
+
var _locales = require("../../locales");
|
|
25
|
+
|
|
26
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
27
|
+
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
29
|
+
|
|
30
|
+
var STEPS = {
|
|
31
|
+
BASIC_INFO: 0,
|
|
32
|
+
MODEL_SELECTION: 1,
|
|
33
|
+
API_KEY: 2
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Hook to manage the state and logic of Assistant Dialogs (Create/Edit).
|
|
37
|
+
* @param {Object} props
|
|
38
|
+
* @param {Function} props.onClose - Function to close the dialog
|
|
39
|
+
* @param {Object} [props.initialData] - Initial formData
|
|
40
|
+
*/
|
|
41
|
+
|
|
42
|
+
exports.STEPS = STEPS;
|
|
43
|
+
|
|
44
|
+
var useAssistantDialog = function useAssistantDialog(_ref) {
|
|
45
|
+
var onClose = _ref.onClose,
|
|
46
|
+
_ref$initialData = _ref.initialData,
|
|
47
|
+
initialData = _ref$initialData === void 0 ? {} : _ref$initialData;
|
|
48
|
+
(0, _twakeI18n.useExtendI18n)(_locales.locales);
|
|
49
|
+
|
|
50
|
+
var _useI18n = (0, _twakeI18n.useI18n)(),
|
|
51
|
+
t = _useI18n.t;
|
|
52
|
+
|
|
53
|
+
var _useAlert = (0, _Alert.useAlert)(),
|
|
54
|
+
showAlert = _useAlert.showAlert;
|
|
55
|
+
|
|
56
|
+
var _useState = (0, _react.useState)(STEPS.BASIC_INFO),
|
|
57
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
58
|
+
step = _useState2[0],
|
|
59
|
+
setStep = _useState2[1];
|
|
60
|
+
|
|
61
|
+
var _useState3 = (0, _react.useState)(initialData.selectedProvider || null),
|
|
62
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
63
|
+
selectedProvider = _useState4[0],
|
|
64
|
+
setSelectedProvider = _useState4[1];
|
|
65
|
+
|
|
66
|
+
var _useState5 = (0, _react.useState)(_objectSpread({
|
|
67
|
+
name: '',
|
|
68
|
+
description: '',
|
|
69
|
+
icon: null,
|
|
70
|
+
model: '',
|
|
71
|
+
baseUrl: '',
|
|
72
|
+
apiKey: '',
|
|
73
|
+
isCustomModel: false
|
|
74
|
+
}, initialData)),
|
|
75
|
+
_useState6 = (0, _slicedToArray2.default)(_useState5, 2),
|
|
76
|
+
formData = _useState6[0],
|
|
77
|
+
setFormData = _useState6[1];
|
|
78
|
+
|
|
79
|
+
var handleChange = function handleChange(field) {
|
|
80
|
+
return function (event) {
|
|
81
|
+
var _event$target;
|
|
82
|
+
|
|
83
|
+
var value = ((_event$target = event.target) === null || _event$target === void 0 ? void 0 : _event$target.value) !== undefined ? event.target.value : event;
|
|
84
|
+
setFormData(function (prev) {
|
|
85
|
+
return _objectSpread(_objectSpread({}, prev), {}, (0, _defineProperty2.default)({}, field, value));
|
|
86
|
+
});
|
|
87
|
+
};
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
var handleChangeModel = function handleChangeModel(value) {
|
|
91
|
+
handleChange('model')({
|
|
92
|
+
target: {
|
|
93
|
+
value: value
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
setSelectedProvider(function (prev) {
|
|
97
|
+
return prev ? _objectSpread(_objectSpread({}, prev), {}, {
|
|
98
|
+
model: value
|
|
99
|
+
}) : prev;
|
|
100
|
+
});
|
|
101
|
+
};
|
|
102
|
+
|
|
103
|
+
var handleAvatarChange = function handleAvatarChange(avatarData) {
|
|
104
|
+
setFormData(function (prev) {
|
|
105
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
106
|
+
icon: avatarData
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
var handleProviderSelection = function handleProviderSelection(provider) {
|
|
112
|
+
setFormData(function (prev) {
|
|
113
|
+
return _objectSpread(_objectSpread({}, prev), {}, {
|
|
114
|
+
baseUrl: provider.baseUrl,
|
|
115
|
+
isCustomModel: provider.id === 'custom'
|
|
116
|
+
});
|
|
117
|
+
});
|
|
118
|
+
setSelectedProvider(_objectSpread(_objectSpread({}, provider), {}, {
|
|
119
|
+
name: provider.id === 'custom' ? undefined : provider.name
|
|
120
|
+
}));
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var handleBack = function handleBack() {
|
|
124
|
+
if (step === STEPS.BASIC_INFO) {
|
|
125
|
+
onClose();
|
|
126
|
+
} else {
|
|
127
|
+
setStep(function (prev) {
|
|
128
|
+
return prev - 1;
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
/**
|
|
133
|
+
* Handles the Next button click.
|
|
134
|
+
* @param {Function} onSubmit - Async function to execute on the final step (Create/Edit).
|
|
135
|
+
*/
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
var handleNext = /*#__PURE__*/function () {
|
|
139
|
+
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(onSubmit) {
|
|
140
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
141
|
+
while (1) {
|
|
142
|
+
switch (_context.prev = _context.next) {
|
|
143
|
+
case 0:
|
|
144
|
+
_context.prev = 0;
|
|
145
|
+
|
|
146
|
+
if (!(step === STEPS.API_KEY)) {
|
|
147
|
+
_context.next = 7;
|
|
148
|
+
break;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
_context.next = 4;
|
|
152
|
+
return onSubmit(formData);
|
|
153
|
+
|
|
154
|
+
case 4:
|
|
155
|
+
onClose();
|
|
156
|
+
_context.next = 8;
|
|
157
|
+
break;
|
|
158
|
+
|
|
159
|
+
case 7:
|
|
160
|
+
setStep(function (prev) {
|
|
161
|
+
return prev + 1;
|
|
162
|
+
});
|
|
163
|
+
|
|
164
|
+
case 8:
|
|
165
|
+
_context.next = 13;
|
|
166
|
+
break;
|
|
167
|
+
|
|
168
|
+
case 10:
|
|
169
|
+
_context.prev = 10;
|
|
170
|
+
_context.t0 = _context["catch"](0);
|
|
171
|
+
showAlert({
|
|
172
|
+
message: t('assistant.default_error'),
|
|
173
|
+
severity: 'error'
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
case 13:
|
|
177
|
+
case "end":
|
|
178
|
+
return _context.stop();
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
}, _callee, null, [[0, 10]]);
|
|
182
|
+
}));
|
|
183
|
+
|
|
184
|
+
return function handleNext(_x) {
|
|
185
|
+
return _ref2.apply(this, arguments);
|
|
186
|
+
};
|
|
187
|
+
}();
|
|
188
|
+
|
|
189
|
+
var isNextDisabled = function isNextDisabled(isAllowToSkipApiKey) {
|
|
190
|
+
var _formData$name, _formData$apiKey;
|
|
191
|
+
|
|
192
|
+
switch (step) {
|
|
193
|
+
case STEPS.BASIC_INFO:
|
|
194
|
+
return !((_formData$name = formData.name) !== null && _formData$name !== void 0 && _formData$name.trim());
|
|
195
|
+
|
|
196
|
+
case STEPS.MODEL_SELECTION:
|
|
197
|
+
return !selectedProvider;
|
|
198
|
+
|
|
199
|
+
case STEPS.API_KEY:
|
|
200
|
+
return !((_formData$apiKey = formData.apiKey) !== null && _formData$apiKey !== void 0 && _formData$apiKey.trim()) && !isAllowToSkipApiKey;
|
|
201
|
+
|
|
202
|
+
default:
|
|
203
|
+
return false;
|
|
204
|
+
}
|
|
205
|
+
};
|
|
206
|
+
|
|
207
|
+
return {
|
|
208
|
+
step: step,
|
|
209
|
+
setStep: setStep,
|
|
210
|
+
formData: formData,
|
|
211
|
+
setFormData: setFormData,
|
|
212
|
+
selectedProvider: selectedProvider,
|
|
213
|
+
setSelectedProvider: setSelectedProvider,
|
|
214
|
+
handleChange: handleChange,
|
|
215
|
+
handleAvatarChange: handleAvatarChange,
|
|
216
|
+
handleProviderSelection: handleProviderSelection,
|
|
217
|
+
handleBack: handleBack,
|
|
218
|
+
handleNext: handleNext,
|
|
219
|
+
isNextDisabled: isNextDisabled,
|
|
220
|
+
handleChangeModel: handleChangeModel
|
|
221
|
+
};
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
exports.useAssistantDialog = useAssistantDialog;
|
|
@@ -13,7 +13,27 @@ var _SearchBar = _interopRequireDefault(require("cozy-ui/transpiled/react/Search
|
|
|
13
13
|
|
|
14
14
|
var styles = {
|
|
15
15
|
"conversationBar": "styles__conversationBar___2J-Us",
|
|
16
|
-
"conversationBar-input": "styles__conversationBar-input___2DfdZ"
|
|
16
|
+
"conversationBar-input": "styles__conversationBar-input___2DfdZ",
|
|
17
|
+
"chatConversation": "styles__chatConversation___2EmkA",
|
|
18
|
+
"conversationHeaderBar": "styles__conversationHeaderBar___C8tlD",
|
|
19
|
+
"conversationList": "styles__conversationList___2GCzV",
|
|
20
|
+
"conversationList--container": "styles__conversationList--container___2xRAG",
|
|
21
|
+
"conversationList--hidden": "styles__conversationList--hidden___20BsT",
|
|
22
|
+
"conversationListItem--selected": "styles__conversationListItem--selected___2jCyB",
|
|
23
|
+
"menuToggler": "styles__menuToggler___39GfB",
|
|
24
|
+
"menuToggler--disabled": "styles__menuToggler--disabled___15vd4",
|
|
25
|
+
"conversationChips-container": "styles__conversationChips-container___327dE",
|
|
26
|
+
"conversationChips-startIcon": "styles__conversationChips-startIcon___1yOVn",
|
|
27
|
+
"conversationChips-chipIcon": "styles__conversationChips-chipIcon___1wmF-",
|
|
28
|
+
"conversationChips-deleteIcon": "styles__conversationChips-deleteIcon___s9C40",
|
|
29
|
+
"is-warning": "styles__is-warning___3sa0v",
|
|
30
|
+
"conversationChips-chip": "styles__conversationChips-chip___2PqQv",
|
|
31
|
+
"trigger-button": "styles__trigger-button___EA3_H",
|
|
32
|
+
"assistant-icon": "styles__assistant-icon___3A2Fr",
|
|
33
|
+
"menu-item": "styles__menu-item___CjGL5",
|
|
34
|
+
"create-item": "styles__create-item___1l-0E",
|
|
35
|
+
"menu-item-icon-button": "styles__menu-item-icon-button___3jTu9",
|
|
36
|
+
"create-icon": "styles__create-icon___2LIb2"
|
|
17
37
|
};
|
|
18
38
|
|
|
19
39
|
var SearchBarMobile = function SearchBarMobile(_ref) {
|
|
@@ -13,6 +13,8 @@ var _react = _interopRequireDefault(require("react"));
|
|
|
13
13
|
|
|
14
14
|
var _reactRouterDom = require("react-router-dom");
|
|
15
15
|
|
|
16
|
+
var _cozyFlags = _interopRequireDefault(require("cozy-flags"));
|
|
17
|
+
|
|
16
18
|
var _CozyDialogs = require("cozy-ui/transpiled/react/CozyDialogs");
|
|
17
19
|
|
|
18
20
|
var _Breakpoints = require("cozy-ui/transpiled/react/providers/Breakpoints");
|
|
@@ -21,6 +23,14 @@ var _CozyTheme = _interopRequireDefault(require("cozy-ui-plus/dist/providers/Coz
|
|
|
21
23
|
|
|
22
24
|
var _AssistantProvider = _interopRequireWildcard(require("../AssistantProvider"));
|
|
23
25
|
|
|
26
|
+
var _CreateAssistantDialog = _interopRequireDefault(require("./CreateAssistantDialog"));
|
|
27
|
+
|
|
28
|
+
var _DeleteAssistantDialog = _interopRequireDefault(require("./DeleteAssistantDialog"));
|
|
29
|
+
|
|
30
|
+
var _EditAssistantDialog = _interopRequireDefault(require("./EditAssistantDialog"));
|
|
31
|
+
|
|
32
|
+
var _AssistantSelection = _interopRequireDefault(require("../Conversations/AssistantSelection"));
|
|
33
|
+
|
|
24
34
|
var _Conversation = _interopRequireDefault(require("../Conversations/Conversation"));
|
|
25
35
|
|
|
26
36
|
var _ConversationBar = _interopRequireDefault(require("../Conversations/ConversationBar"));
|
|
@@ -31,7 +41,13 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
|
|
|
31
41
|
|
|
32
42
|
var AssistantDialog = function AssistantDialog() {
|
|
33
43
|
var _useAssistant = (0, _AssistantProvider.useAssistant)(),
|
|
34
|
-
assistantState = _useAssistant.assistantState
|
|
44
|
+
assistantState = _useAssistant.assistantState,
|
|
45
|
+
isOpenCreateAssistant = _useAssistant.isOpenCreateAssistant,
|
|
46
|
+
setIsOpenCreateAssistant = _useAssistant.setIsOpenCreateAssistant,
|
|
47
|
+
isOpenEditAssistant = _useAssistant.isOpenEditAssistant,
|
|
48
|
+
setIsOpenEditAssistant = _useAssistant.setIsOpenEditAssistant,
|
|
49
|
+
isOpenDeleteAssistant = _useAssistant.isOpenDeleteAssistant,
|
|
50
|
+
setIsOpenDeleteAssistant = _useAssistant.setIsOpenDeleteAssistant;
|
|
35
51
|
|
|
36
52
|
var _useBreakpoints = (0, _Breakpoints.useBreakpoints)(),
|
|
37
53
|
isMobile = _useBreakpoints.isMobile;
|
|
@@ -78,9 +94,28 @@ var AssistantDialog = function AssistantDialog() {
|
|
|
78
94
|
content: /*#__PURE__*/_react.default.createElement(_Conversation.default, {
|
|
79
95
|
id: conversationId
|
|
80
96
|
}),
|
|
81
|
-
actions: /*#__PURE__*/_react.default.createElement(
|
|
97
|
+
actions: /*#__PURE__*/_react.default.createElement("div", {
|
|
98
|
+
className: "u-w-100"
|
|
99
|
+
}, /*#__PURE__*/_react.default.createElement(_ConversationBar.default, {
|
|
82
100
|
assistantStatus: assistantState.status
|
|
83
|
-
}),
|
|
101
|
+
}), (0, _cozyFlags.default)('cozy.create-assistant.enabled') && /*#__PURE__*/_react.default.createElement(_AssistantSelection.default, {
|
|
102
|
+
className: "u-w-100 u-maw-7 u-mh-auto u-mt-1"
|
|
103
|
+
}), isOpenCreateAssistant && /*#__PURE__*/_react.default.createElement(_CreateAssistantDialog.default, {
|
|
104
|
+
open: isOpenCreateAssistant,
|
|
105
|
+
onClose: function onClose() {
|
|
106
|
+
return setIsOpenCreateAssistant(false);
|
|
107
|
+
}
|
|
108
|
+
}), isOpenEditAssistant && /*#__PURE__*/_react.default.createElement(_EditAssistantDialog.default, {
|
|
109
|
+
open: isOpenEditAssistant,
|
|
110
|
+
onClose: function onClose() {
|
|
111
|
+
return setIsOpenEditAssistant(false);
|
|
112
|
+
}
|
|
113
|
+
}), isOpenDeleteAssistant && /*#__PURE__*/_react.default.createElement(_DeleteAssistantDialog.default, {
|
|
114
|
+
open: isOpenDeleteAssistant,
|
|
115
|
+
onClose: function onClose() {
|
|
116
|
+
return setIsOpenDeleteAssistant(false);
|
|
117
|
+
}
|
|
118
|
+
})),
|
|
84
119
|
onClose: onClose
|
|
85
120
|
});
|
|
86
121
|
};
|