From 3eef1f3eaab25a0e5d81ba0d3f706425fd3d8371 Mon Sep 17 00:00:00 2001 From: Nakul Nagargade Date: Mon, 26 May 2025 16:38:23 +0530 Subject: [PATCH 1/6] Add action to toggle app mode (light/dark) --- frontend/src/AppBuilder/CodeBuilder/utils.js | 1 + .../GlobalSettings/AppModeToggle.jsx | 2 +- .../RightSideBar/Inspector/EventManager.jsx | 25 ++++++++++++++- .../AppBuilder/_stores/slices/eventsSlice.js | 31 ++++++++++++++++--- frontend/src/AppBuilder/_stores/utils.js | 1 + frontend/src/Editor/ActionTypes.js | 6 ++++ 6 files changed, 59 insertions(+), 7 deletions(-) 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..b30922d948 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' }, diff --git a/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx b/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx index e1c6bcf5c8..fec40e38fb 100644 --- a/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx +++ b/frontend/src/AppBuilder/RightSideBar/Inspector/EventManager.jsx @@ -35,6 +35,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, @@ -70,7 +71,6 @@ export const EventManager = ({ const eventToDeleteLoaderIndex = useStore((state) => state.eventsSlice.getEventToDeleteLoaderIndex(), shallow); const { handleYmapEventUpdates } = useContext(EditorContext) || {}; - const { updateState } = useAppDataActions(); const currentEvents = allAppEvents?.filter((event) => { @@ -1018,6 +1018,29 @@ export const EventManager = ({ ))} )} + {event.actionId === 'toggle-app-mode' && ( + <> +
+
{t('editor.inspector.eventManager.appMode', 'App mode')}
+
+