feat: option to regenerate the answer after switching model (#98)

This commit is contained in:
josc146
2023-03-31 20:04:38 +08:00
parent 04dc6e3f22
commit 9b37f358d4
9 changed files with 75 additions and 82 deletions
+28
View File
@@ -0,0 +1,28 @@
import { useEffect, useState } from 'react'
import { defaultConfig, getUserConfig } from '../config/index.mjs'
import Browser from 'webextension-polyfill'
export function useConfig(initFn) {
const [config, setConfig] = useState(defaultConfig)
useEffect(() => {
getUserConfig().then((config) => {
setConfig(config)
if (initFn) initFn()
})
}, [])
useEffect(() => {
const listener = (changes) => {
const changedItems = Object.keys(changes)
let newConfig = {}
for (const key of changedItems) {
newConfig[key] = changes[key].newValue
}
setConfig({ ...config, ...newConfig })
}
Browser.storage.local.onChanged.addListener(listener)
return () => {
Browser.storage.local.onChanged.removeListener(listener)
}
}, [config])
return config
}