44 lines
1.5 KiB
JavaScript
44 lines
1.5 KiB
JavaScript
import { useTranslation } from "react-i18next";
|
|
import { useNotificationStatus } from "@logics_common";
|
|
import {
|
|
useEnableVrcMicMuteSync,
|
|
} from "@logics_configs";
|
|
|
|
export const useHandleOscQuery = () => {
|
|
const { t } = useTranslation();
|
|
|
|
const { showNotification_Warning } = useNotificationStatus();
|
|
const { updateEnableVrcMicMuteSync } = useEnableVrcMicMuteSync();
|
|
|
|
const handleOscQuery = ({is_osc_query_enabled, disabled_functions}) => {
|
|
if (!is_osc_query_enabled && disabled_functions.length > 0) {
|
|
const BASE_LABEL = t("common_warning.unable_to_use_osc_query");
|
|
let items_label = "";
|
|
|
|
for (const disabled_function of disabled_functions) {
|
|
if (disabled_function === "vrc_mic_mute_sync") {
|
|
updateEnableVrcMicMuteSync({
|
|
is_enabled: false,
|
|
is_available: false,
|
|
});
|
|
const item = `- ${t("config_page.others.vrc_mic_mute_sync.label")}`;
|
|
items_label = `${items_label}\n${item}`;
|
|
}
|
|
}
|
|
const label = `${BASE_LABEL}${items_label}`;
|
|
showNotification_Warning(
|
|
label,
|
|
{ hide_duration: 10000, }
|
|
);
|
|
} else if (is_osc_query_enabled) {
|
|
updateEnableVrcMicMuteSync((old_value) => ({
|
|
...old_value.data,
|
|
is_available: true,
|
|
}));
|
|
}
|
|
};
|
|
|
|
return {
|
|
handleOscQuery,
|
|
};
|
|
}; |