Хранение истории и пользовательских настроек
По умолчанию хранение истории сообщений и пользовательских настроек чата включено и реализуется с помощью window.localStorage
.
Вы можете отключить хранение истории и/или настроек, а также заменить хранилище на собственное, реализующее объекты ChatHistoryStore
или ChatUserPreferencesStore
.
Также вы можете использовать встроенное и настраиваемое Cookie-хранилище.
Чтобы управлять хранением истории и пользовательскими настройками, используйте параметры history
и userPreferences
. У них одинаковые свойства:
store?: ChatHistoryStore | ChatUserPreferencesStore
— собственная реализация хранилища;disable?: boolean
— еслиtrue
, то хранение данных будет отключено. По умолчаниюfalse
.
caution
Оба свойства необязательные. Вы можете передать как оба, так и одно из них (в этом случае второму свойству задается значение по умолчанию).
Пример использования собственного хранилища истории сообщений на примере Chat:
import React, { FC } from 'react';
import { Chat, ChatHistoryStore } from '@sberdevices/assistant-web-sdk';
const historyStore: ChatHistoryStore = {
clear: () => {},
getHistory: () => [],
setHistory: (history = []) => {},
};
const history = {
store: historyStore,
disable: false,
};
export const ChatWithAssistant: FC = () => {
return <Chat {...props} history={history} />;
};
Управление для FloatingAssistantChat и AssistantBar аналогичное.
Использование собственного хранилища пользовательских настроек на примере AssistantBar:
import React, { FC } from 'react';
import { AssistantBar, ChatUserPreferencesStore } from '@sberdevices/assistant-web-sdk';
const userPreferencesStore: ChatUserPreferencesStore = {
clear: () => {},
getCharacter: () => 'sber',
getMuteMode: () => false,
getFirstSession: () => true,
setCharacter: (character) => {},
setFirstSession: (wasFirstSession) => {},
setMuteMode: (muteMode) => {},
};
const userPreferences = {
store: userPreferencesStore,
disable: false,
};
export const BarWithAssistant: FC = () => {
return <AssistantBar {...props} userPreferences={userPreferences} />;
};
Заметили ошибку?
Выделите текст и нажмите Ctrl
+ Enter
, чтобы сообщить нам о ней