one-click-accessibility/modules/settings/assets/js/contexts/plugin-settings.js
VasylD fa2fd11e29
[APP-934] add submit logic (#259)
* [APP-934] add submit logic

* [APP-934] add submit logic

* [APP-934] add submit logic

* [APP-934] add submit logic

* Added replace remediation action

* Add submit logic

* Add submit alt text logic, generate AI alt text

* Add AI generate request, add convert from SVG to png base64, added manual fix block

* Add AI generate request, add convert from SVG to png base64, added manual fix block

* Add texts, add remediation submit, fix logic to store remediation

* Add texts, add remediation submit, fix logic to store remediation

* Add texts, add remediation submit, fix logic to store remediation

* Add texts, add remediation submit, fix logic to store remediation

* Add texts, add remediation submit, fix logic to store remediation

* Add texts, add remediation submit, fix logic to store remediation

---------

Co-authored-by: Raz Ohad <admin@bainternet.info>
2025-05-06 00:00:46 +03:00

60 lines
1.4 KiB
JavaScript

import { useToastNotification } from '@ea11y-apps/global/hooks';
import {
createContext,
useCallback,
useContext,
useEffect,
useState,
} from '@wordpress/element';
import { __ } from '@wordpress/i18n';
import APISettings from '../api';
const PluginSettingsContext = createContext({});
export const PluginSettingsProvider = ({ children }) => {
const { error } = useToastNotification();
const [pluginSettings, setPluginSettings] = useState();
const [loaded, setLoaded] = useState(false);
const refreshPluginSettings = useCallback(() => {
APISettings.getPluginSettings()
.then((settings) => {
if ('isConnected' in settings) {
settings.isConnected = Boolean(settings.isConnected);
}
if ('closePostConnectModal' in settings) {
settings.closePostConnectModal = Boolean(
settings.closePostConnectModal,
);
}
if ('isUrlMismatch' in settings) {
settings.isUrlMismatch = Boolean(settings.isUrlMismatch);
}
setPluginSettings(settings);
setLoaded(true);
})
.catch(() => {
error(__('An error occurred.', 'pojo-accessibility'));
setLoaded(true);
});
}, []);
useEffect(() => {
refreshPluginSettings();
}, [refreshPluginSettings]);
return (
<PluginSettingsContext.Provider
value={{ ...pluginSettings, loaded, refreshPluginSettings }}
>
{children}
</PluginSettingsContext.Provider>
);
};
export const usePluginSettingsContext = () => {
return useContext(PluginSettingsContext);
};