diff --git a/frontend/src/AppBuilder/CodeBuilder/utils.js b/frontend/src/AppBuilder/CodeBuilder/utils.js index be3674aa1f..51e9455340 100644 --- a/frontend/src/AppBuilder/CodeBuilder/utils.js +++ b/frontend/src/AppBuilder/CodeBuilder/utils.js @@ -88,6 +88,7 @@ export function getSuggestionKeys(refState) { 'unsetPageVariable', 'unsetAllPageVariables', 'switchPage', + 'toggleAppMode', ]; // eslint-disable-next-line no-unused-vars diff --git a/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/AppModeToggle.jsx b/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/AppModeToggle.jsx index 437840975f..09cbefd90f 100644 --- a/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/AppModeToggle.jsx +++ b/frontend/src/AppBuilder/LeftSidebar/GlobalSettings/AppModeToggle.jsx @@ -6,7 +6,7 @@ import useAppDarkMode from '@/_hooks/useAppDarkMode'; import useStore from '@/AppBuilder/_stores/store'; import { shallow } from 'zustand/shallow'; -const APP_MODES = [ +export const APP_MODES = [ { label: 'Auto', value: 'auto' }, { label: 'Light', value: 'light' }, { label: 'Dark', value: 'dark' }, @@ -15,12 +15,7 @@ const APP_MODES = [ const AppModeToggle = ({ darkMode }) => { const { onAppModeChange, appMode } = useAppDarkMode(); const { t } = useTranslation(); - const { globalSettingsChanged } = useStore( - (state) => ({ - globalSettingsChanged: state.globalSettingsChanged, - }), - shallow - ); + const setResolvedGlobals = useStore((state) => state.setResolvedGlobals); return ( @@ -33,8 +28,7 @@ const AppModeToggle = ({ darkMode }) => { if (value === 'auto') { exposedTheme = darkMode ? 'dark' : 'light'; } - onAppModeChange({ appMode: value }); - // globalSettingsChanged({ theme: { name: exposedTheme } }); + onAppModeChange(value); setResolvedGlobals('theme', { name: exposedTheme }); }} defaultValue={appMode} diff --git a/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx b/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx index 60c0118855..2e29bd5f54 100644 --- a/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx +++ b/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx @@ -37,6 +37,7 @@ import ToggleGroupItem from '@/ToolJetUI/SwitchGroup/ToggleGroupItem'; import usePopoverObserver from '@/AppBuilder/_hooks/usePopoverObserver'; import SolidIcon from '@/_ui/Icon/SolidIcons'; import { components as selectComponents } from 'react-select'; +import { APP_MODES } from '@/AppBuilder/LeftSidebar/GlobalSettings/AppModeToggle'; export const EventManager = ({ sourceId, @@ -75,7 +76,6 @@ export const EventManager = ({ const eventToDeleteLoaderIndex = useStore((state) => state.eventsSlice.getEventToDeleteLoaderIndex(), shallow); const { handleYmapEventUpdates } = useContext(EditorContext) || {}; - const { updateState } = useAppDataActions(); const currentEvents = allAppEvents?.filter((event) => { @@ -1044,6 +1044,29 @@ export const EventManager = ({ })} )} + {event.actionId === 'toggle-app-mode' && ( + <> +
+
{t('editor.inspector.eventManager.appMode', 'App mode')}
+
+