one-click-accessibility/modules/settings/assets/js/contexts/plugin-settings.js
VasylD 9c9536cbeb
[APP-2130] add elementor one (#433)
* [APP-0000] add elementor one

* [APP-0000] add elementor one

* [APP-2207] add dashboard widget

* [APP-2207] add dashboard widget

* [APP-2207] add dashboard widget

* [APP-2207] add dashboard widget

* [APP-0000] Add slug to the connect config

* [APP-0000] Update connect config

* [APP-0000] Update connect config

* [APP-0000] Update connect config

* [APP-0000] Update connect config

* [APP-0000] Update connect config

* Hide sidebar footer if Elementor One is connected

* fix: import errors on opening the scanner

* [APP-0000] Update connect config

* Update modules/settings/module.php

Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>

* [APP-2270] Top bar implementation (#458)

* [APP-2270] Top bar implementation

* Update top bar title

* Update packages

* fix: env for top bar

* update: ally menu location

* Fix pointer

* Update

* Update

* Update

* Update

* Update

* Fix design saving

* Add missing pro icon to sidebar menu

* Sidebar icons sizes

* Fix link to "Manage subscription"

* fix: header name

* Update logo icon in the sidebar

* Remove logos from modal/dialog headers

* Update button colors

* Make the "Get started" modal dismissible

* Update crown icon

* Update

* Role attribute

* Update logo icon

* Update list item padding

* [APP-0000] Update connect config

* [ACD-7909] Enable Pro features on One

* Update menu order

* [ACD-7909] Enable Pro features on One

* [ACD-7909] Enable Pro features on One

* Hide pointers from Elementor One users

* [ACD-7909] Enable Pro features on One

* fix: don't show notices in some cases (#466)

* [ACD-7794] Fix subitem color and spacing, info and pro icon size (#464)

* fix: subitem color and spacing, info and pro icon size

* chore: update elementor-one-assets package to 0.4.16

* fix: PLG margin and button style issue (#463)

---------

Co-authored-by: Nirbhay Singh <nirbhayr@elementor.com>
Co-authored-by: vasyldinets <vasyld@elementor.red>
Co-authored-by: Nirbhay Singh <121793120+nirbhayel@users.noreply.github.com>

---------

Co-authored-by: Rami Yushuvaev <ramiy@elementor.com>
Co-authored-by: Nirbhay Singh <nirbhayr@elementor.com>
Co-authored-by: Rami Yushuvaev <92088692+rami-elementor@users.noreply.github.com>
Co-authored-by: Nirbhay Singh <121793120+nirbhayel@users.noreply.github.com>
2026-01-12 12:26:38 +01:00

88 lines
2.2 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 ('closeOnboardingModal' in settings) {
settings.closeOnboardingModal = Boolean(
settings.closeOnboardingModal,
);
}
if ('closeGetStartedModal' in settings) {
settings.closeGetStartedModal = Boolean(
settings.closeGetStartedModal,
);
}
if ('isUrlMismatch' in settings) {
settings.isUrlMismatch = Boolean(settings.isUrlMismatch);
}
if ('unfilteredUploads' in settings) {
settings.unfilteredUploads = Boolean(settings.unfilteredUploads);
}
if ('homeUrl' in settings) {
settings.homeUrl = settings.homeUrl;
}
if ('whatsNewDataHash' in settings) {
settings.whatsNewDataHash = Boolean(settings.whatsNewDataHash);
}
if ('isElementorOne' in settings) {
settings.isElementorOne = Boolean(settings.isElementorOne);
}
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);
};