import { useMemo } from "react";
import { Toggle, SettingsManager } from "Components/UserSettings";
const { Provider: OtherSettingsProvider, useSettings: useOtherSettings } = new SettingsManager<"other">({
/* istanbul ignore next */
beforeUpdate: (prevState, update) => {
// If user disabled caching, clear the data cache
if (prevState.cacheEnabled === true && update.cacheEnabled === false) {
setTimeout(() => {
window.zoteroRoam?.clearDataCache?.();
}, 1000);
}
}
});
function OtherSettingsWidget() {
const [
{
autoload,
cacheEnabled,
darkTheme,
render_inline
},
setOpts
] = useOtherSettings();
const handlers = useMemo(() => {
function toggleBool(op){
setOpts(prevState => ({
...prevState,
[op]: !prevState[op]
}));
}
return {
toggleAutoload: () => toggleBool("autoload"),
toggleCacheEnabled: () => toggleBool("cacheEnabled"),
toggleDarkTheme: () => toggleBool("darkTheme"),
toggleRenderInline: () => toggleBool("render_inline")
};
}, [setOpts]);
return <>
>;
}
export {
OtherSettingsProvider,
OtherSettingsWidget,
useOtherSettings
};