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,
    };
};