Хранение истории и пользовательских настроек

По умолчанию хранение истории сообщений и пользовательских настроек чата включено и реализуется с помощью window.localStorage.

Вы можете отключить хранение истории и/или настроек, а также заменить хранилище на собственное, реализующее объекты ChatHistoryStore или ChatUserPreferencesStore.

Также вы можете использовать встроенное и настраиваемое Cookie-хранилище.

Чтобы управлять хранением истории и пользовательскими настройками, используйте параметры history и userPreferences. У них одинаковые свойства:

  • store?: ChatHistoryStore | ChatUserPreferencesStore — собственная реализация хранилища;
  • disable?: boolean — если true, то хранение данных будет отключено. По умолчанию false.
Оба свойства необязательные. Вы можете передать как оба, так и одно из них (в этом случае второму свойству задается значение по умолчанию).

Пример использования собственного хранилища истории сообщений на примере 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, чтобы сообщить нам о ней