// eslint-disable-next-line no-restricted-imports import { AxiosResponse } from 'axios'; import { debounce } from 'throttle-debounce'; import { apiv3Put } from '~/client/util/apiv3-client'; import { IUserUISettings } from '~/interfaces/user-ui-settings'; let settingsForBulk: Partial = {}; const _putUserUISettingsInBulk = (): Promise> => { const result = apiv3Put('/user-ui-settings', { settings: settingsForBulk }); // clear partial settingsForBulk = {}; return result; }; const _putUserUISettingsInBulkDebounced = debounce(1500, _putUserUISettingsInBulk); export const scheduleToPut = (settings: Partial): void => { settingsForBulk = { ...settingsForBulk, ...settings, }; _putUserUISettingsInBulkDebounced(); }; export const updateUserUISettings = async(settings: Partial): Promise> => { const result = await apiv3Put('/user-ui-settings', { settings }); return result; };