one-click-accessibility/modules/settings/assets/js/contexts/analytics-context.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

65 lines
1.4 KiB
JavaScript

import { useStorage } from '@ea11y/hooks';
import {
createContext,
useContext,
useEffect,
useState,
} from '@wordpress/element';
import APISettings from '../api';
const AnalyticsContext = createContext(null);
export const AnalyticsContextProvider = ({ children }) => {
const { save } = useStorage();
const [isAnalyticsEnabled, setIsAnalyticsEnabled] = useState(false);
const [isProVersion, setIsProVersion] = useState(false);
const [loading, setLoading] = useState(false);
const [period, setPeriod] = useState(30);
const [stats, setStats] = useState({
dates: [],
elements: [],
});
/**
* Get initial logs list
*/
useEffect(() => {
if (isProVersion) {
setLoading(true);
void APISettings.getStatistic({ period }).then((data) => {
setStats(data);
setLoading(false);
});
}
}, [period, isAnalyticsEnabled, isProVersion]);
const updateIsAnalyticsEnabled = async () => {
await save({
ea11y_analytics_enabled: !isAnalyticsEnabled,
});
setIsAnalyticsEnabled(!isAnalyticsEnabled);
setPeriod(30);
};
return (
<AnalyticsContext.Provider
value={{
isAnalyticsEnabled,
setIsAnalyticsEnabled,
isProVersion,
setIsProVersion,
updateIsAnalyticsEnabled,
period,
setPeriod,
stats,
loading,
}}
>
{children}
</AnalyticsContext.Provider>
);
};
export const useAnalyticsContext = () => {
return useContext(AnalyticsContext);
};