Files
kiss-translator/src/hooks/Api.js

25 lines
828 B
JavaScript
Raw Normal View History

2023-09-06 00:25:46 +08:00
import { useCallback } from "react";
import { DEFAULT_TRANS_APIS } from "../config";
import { useSetting } from "./Setting";
export function useApi(translator) {
const { setting, updateSetting } = useSetting();
2023-09-07 23:47:24 +08:00
const transApis = setting?.transApis || DEFAULT_TRANS_APIS;
2023-09-06 00:25:46 +08:00
const updateApi = useCallback(
async (obj) => {
2023-09-07 23:47:24 +08:00
const api = transApis[translator] || {};
Object.assign(transApis, { [translator]: { ...api, ...obj } });
2023-09-06 00:25:46 +08:00
await updateSetting({ transApis });
},
2023-09-07 23:47:24 +08:00
[translator, transApis, updateSetting]
2023-09-06 00:25:46 +08:00
);
const resetApi = useCallback(async () => {
2023-09-07 23:47:24 +08:00
Object.assign(transApis, { [translator]: DEFAULT_TRANS_APIS[translator] });
2023-09-06 00:25:46 +08:00
await updateSetting({ transApis });
2023-09-07 23:47:24 +08:00
}, [translator, transApis, updateSetting]);
2023-09-06 00:25:46 +08:00
2023-09-07 23:47:24 +08:00
return { api: transApis[translator] || {}, updateApi, resetApi };
2023-09-06 00:25:46 +08:00
}