ToolJet/frontend/src/Editor/LeftSidebar/index.jsx

355 lines
12 KiB
React
Raw Normal View History

import '@/_styles/left-sidebar.scss';
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
import React, { useState, useImperativeHandle, forwardRef, useEffect, useRef } from 'react';
import _ from 'lodash';
import { LeftSidebarInspector } from './SidebarInspector';
import { LeftSidebarDataSources } from './SidebarDatasources';
import { DarkModeToggle } from '../../_components/DarkModeToggle';
import useRouter from '../../_hooks/use-router';
import { LeftSidebarDebugger } from './SidebarDebugger';
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810) * feat: initial commit for collaboration feature * add dnd to comments * add positions endpoint * feat: encapsulate all http common logic in http-client * segregate sections and transfer responsibility of state * feat: use-spring to add fade effect :zap: * fix: open in right * fix: left-right position css * add footer for message * integrate getcomment endpoint * use fromnow for date ago * add dnd * - Add data trasfer object for comment - Add class-validator package to check the response type from client - Add comment repository class for persistance layer - Add comment service with std. http methods - Update controller with all http methods - Update comment module - Fix http-client bug when error is thrown * fix http client bug when error is thrown * feat: add entity thread * feat: add migrations for thread and comment * update entitites * add tid to migration * filter comments by tid(thread_id) * fix: comment migration, add missing column comment * feat: integrate in ui * feat: split comments based on app_id * fix: dnd to correct position * package json engines * engines update * update npm * npm 6 to 7 * fix: add user initials to thread * fix: add firtname lastname to the comments * - Return user object when save thread called - Hide password field from user response - Fix created_at date typo - Instead of fetch all threads on new thread added, add the response to array of existing threads * feat: update ui components * change icon on comments view * ui fixes * fix: close icon close the popover * temp: comment select: false * use currentUser from localStorage * fix: on click outside if comment is open, dont hit addThread * fix: auth token issue in http-client * on drag hide the comment if open * add jwt auth * spec: add test for comment & thread * cleanup: remove console.log * feat: add comment actions * feat: add edit, delete, resolve options * feat: add mentions component * feat: add nestjs websockets * temp * websocket: establish client-server communication * ws: add message listner to comments module in ui * feat: add broadcast method to broadcast new events to all clients :bomb: * ws: cleanup :call_me_hand: * fix: remove max height from comment actions * feat: add user mentions, emoji support * fix: add static list of users - temp * update and delete iterations * - Rename comment, thread to comments, threads - Add conditional actions - Show edit, delete only if he is comment owner - Show resolve only if he is thread owner * reset engines * move svgr webpack to deps * fix: ui issues * remove log stmt * refactor: move resolved icon to comment-header * feat: allow comments to be added on top of widgets * feat: add keyboard shortcut * scroll to bottom on comment add * ui fixes * feat: add react toast for notification display * feat: add comment badge * fix: ws connection * fix: ws * remove rvrse * feat: add comment sidebar * feat: add comment right sidebar * fix: add missing foreign key elements * - upgrade typeorm to 0.2.38 - comment sidebar ui - added filter ui * feat: on click of right sidebar notificaiton open the comment box * reset engines * fix: add organization id to the comment and thread module * fix: add current version id * add currentversion id * disable comments if no id present * temp:checking for heroku deploy * fetch app on edit and deploy version * rename current_version_id to app_versions_id * ui fixes * show mentioned user in blue color * add ui changes * add authorization for create thread * change color to blue on click of comment, add auth for other endpoints of thread * update threads, notifications using socket * add auth for comments * remove events spec file * fix duplicate key error * fix notificaitons updation on edit, delete, resolve buttons clicked * update notifications for edit * feature toggle changes for frontend * add check for comments server * add emoji mart package for emoji * add reply count in comment sidebar * subtract 1 from count in comment sidebar * change empty text when no comments available
2021-11-01 07:28:03 +00:00
import { LeftSidebarComment } from './SidebarComment';
Feature/multi page applications (Task ID - CU-2h1bfvw) (#4729) * Add routes for multi-page apps * Modify Editor, Viewer and Inspector to accept new app structure * Show a page selector on left side bar * Align component deletion logic with new app schema * Make subcontainer work with multi-page apps * Load components state properly in viewer * Use UUID instead of handle for pages * Display sidebar on viewer to switch pages * Add proper URL suffixing for pages in viewer * Add action to switch page * Revert translation file back to its pre-existing linting * Fix bug that caused modal to not open/close * Add support for query params in page switch * Fix the issue that caused navigation to fail while accessed via slug * Add missing SwitchPage file * Add support for page level variables * Add migration to convert existing apps to new schema * Add rollback for converting multi-page definitions back to single-page * Fix migration for multi-page apps * Adapt import/export service for multi-pages * [improvements] Multi-page applications (#4755) * UI updates for page selector popup card * delete page * delete page check: if only one page exits * switch to home page if the selected page is removed * adds and switch to new page * updating page name * updates to home page and starting page * handle updating the home page when home page is deleted * search box for filtering pages and minor style updates for the page handler card * header search box style fixes * for creating a new page, page handle needs to be unique * seperating into smaller components * updated pinned icon for page selector styles and settinf styles * Leftsidebar header ui component * handle dark theme * page handle ui and dark theme fixes for page menu * page handler edit modal * pinned state and update pinned state for menu options triggered * dark theme fixes for edit modal * handle on update should not be empty or prev * page handler updater * added loading state for saving * handles cancels * fixes slug ui * fixes crash for older app versions * updates the query params when handle gets an update * update homePage to homePageId * removes console.log * go back to the popover for modal close * fixes: Difficult to select page * fixes: Difficult to select the three-dot menu * fixes: on visiting the root url, navigate to homepage on viewer * adds tooltip for url * updates the page selector sidebar with sync with query manager * refactor and cleanup * refactor and cleanup * Compute component state when page is switched * modal should not close on click outside * disable save button if there is not change in the page handle input * should show/hide page menu when hovered * page icon * updates delete icon for disabled state * query manager should always be on top of page selector * checks if homePage key exists in pages def * updates page handler menu * updates the clear icon * page handler menu position * page handler menu position * handle icon * alert msg * global settings handler for updating viewer page navigation * show/hode page navigation for viewer * info text for toggle * Multipages:with sortable list [DnD] (#4783) * applied sortable list * on sort updates the definitions * fixies: app crash for dnd * viwer: canvas width should be 100% when navigation drawer is disbaled * fixes: homepage/startpage reload * clean up Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * Multipage UI viewer (#4801) * new ui changes for viewer pages * fixes postions for debugger and datasources popover * removes console.log * Multipage : hide page and unhide page feature (#4803) * adds: ability to hide pages * hides pages in viewer * unhide page * hide icon * allow accessing hidden pages from url * add: duplicate page (#4802) * add: duplicate page * do not copy the same references from the original page * page name and page handler should be unique for duplicate pages too * Add support for on-page-load events * Add icon from page settings menu item * Convert existing templates to multi-page schema * error logs for page level and app level errors (#4842) * Adapt comments feature for multi-pages * [Bugfix] multipage - page menu interactions (#4844) * fixes: menu popup interaction * fixes: on modal input focus, we switch the page * Adapt multi-player to multi-pages * Add editingPageId to ymap * Log self, others and editor props in real-time avatar generation * Save editing page id to appDef * Add editingPageId to presence in RealtimeCursors * adds no results ui for empty search results (#4869) * page icon updated (#4870) * fixes:Version switching crashes if the target version does not contain the current page (#4868) * Remove unnecessary setting of editingPageId on ymap * Remove unnecessary console.log * [Bugfix] Multipages: widget inspector event popover unmounts (#4887) * introduced a local state for events * cleaned up inspector.jsx * fixes: table widget inspector event accordion * Do not run switchPage twice when viewer is loaded * Preview should open the currently editing page * Properly place navigation and canvas in viewer * Update app definition whenever event manager changes are made * Add support for browser back and forward button in multi-pages * Rename handleBackButton to handlePageSwitchingBasedOnURLparam * Add support for cut/copy/paste and clone * Fix the crash caused by boxShadow * Add support for background colors in viewer in multi-pages * Run queries to be run on load on viewer, in multi-pages * Fix issue that caused inspector popovers to collapse * resolves workspace vars in viewer mode (#4892) * Multipage : Navigation for Mobile-ui (#4814) * refactored to components * burger menu for mobile ui * merge conflict fix for hidden pages * hamburger menu positioned in the header * viewer header reafctored * viewer mobile page manu styles * handles dark theme * mobile menu with dark mode toggle in the footer * components are moved to page level, handle for mobile layout * style fixes * removing unwanted code block * dark theme fixes * style fixes * fixes: events are sortable (#4895) * fixes: events are sortable * Remove uneccesarily repeated call of setEvents in EventManager Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * renamed settings to Event handlers (#4898) * updates the page setting title to Page Events * temp commit * Add support for setting max width in percentage * fixes: paramUpdates for boxes: 🙌🏻 * [Bugfix] Multipage - viewer canvas dark theme (#4897) * fixes: darktheme bg for viewer canvas * reverts canvas size * Fix for inspector bouncing back to previous values * resolves pages variables in pythong and js transformation (#4905) * csa support to event manager for pages (#4907) * Add support for setting canvas width in percentages * Persist page level variables across page switches * latest definitions is merged with the current appdef (#4914) * latest definitions is merged with the current appdef * mutating the local obj * cleanup * iterate through pages for new versions are created Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-08 12:21:09 +00:00
import LeftSidebarPageSelector from './SidebarPageSelector';
import { ConfirmDialog } from '@/_components';
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810) * feat: initial commit for collaboration feature * add dnd to comments * add positions endpoint * feat: encapsulate all http common logic in http-client * segregate sections and transfer responsibility of state * feat: use-spring to add fade effect :zap: * fix: open in right * fix: left-right position css * add footer for message * integrate getcomment endpoint * use fromnow for date ago * add dnd * - Add data trasfer object for comment - Add class-validator package to check the response type from client - Add comment repository class for persistance layer - Add comment service with std. http methods - Update controller with all http methods - Update comment module - Fix http-client bug when error is thrown * fix http client bug when error is thrown * feat: add entity thread * feat: add migrations for thread and comment * update entitites * add tid to migration * filter comments by tid(thread_id) * fix: comment migration, add missing column comment * feat: integrate in ui * feat: split comments based on app_id * fix: dnd to correct position * package json engines * engines update * update npm * npm 6 to 7 * fix: add user initials to thread * fix: add firtname lastname to the comments * - Return user object when save thread called - Hide password field from user response - Fix created_at date typo - Instead of fetch all threads on new thread added, add the response to array of existing threads * feat: update ui components * change icon on comments view * ui fixes * fix: close icon close the popover * temp: comment select: false * use currentUser from localStorage * fix: on click outside if comment is open, dont hit addThread * fix: auth token issue in http-client * on drag hide the comment if open * add jwt auth * spec: add test for comment & thread * cleanup: remove console.log * feat: add comment actions * feat: add edit, delete, resolve options * feat: add mentions component * feat: add nestjs websockets * temp * websocket: establish client-server communication * ws: add message listner to comments module in ui * feat: add broadcast method to broadcast new events to all clients :bomb: * ws: cleanup :call_me_hand: * fix: remove max height from comment actions * feat: add user mentions, emoji support * fix: add static list of users - temp * update and delete iterations * - Rename comment, thread to comments, threads - Add conditional actions - Show edit, delete only if he is comment owner - Show resolve only if he is thread owner * reset engines * move svgr webpack to deps * fix: ui issues * remove log stmt * refactor: move resolved icon to comment-header * feat: allow comments to be added on top of widgets * feat: add keyboard shortcut * scroll to bottom on comment add * ui fixes * feat: add react toast for notification display * feat: add comment badge * fix: ws connection * fix: ws * remove rvrse * feat: add comment sidebar * feat: add comment right sidebar * fix: add missing foreign key elements * - upgrade typeorm to 0.2.38 - comment sidebar ui - added filter ui * feat: on click of right sidebar notificaiton open the comment box * reset engines * fix: add organization id to the comment and thread module * fix: add current version id * add currentversion id * disable comments if no id present * temp:checking for heroku deploy * fetch app on edit and deploy version * rename current_version_id to app_versions_id * ui fixes * show mentioned user in blue color * add ui changes * add authorization for create thread * change color to blue on click of comment, add auth for other endpoints of thread * update threads, notifications using socket * add auth for comments * remove events spec file * fix duplicate key error * fix notificaitons updation on edit, delete, resolve buttons clicked * update notifications for edit * feature toggle changes for frontend * add check for comments server * add emoji mart package for emoji * add reply count in comment sidebar * subtract 1 from count in comment sidebar * change empty text when no comments available
2021-11-01 07:28:03 +00:00
import config from 'config';
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
import { LeftSidebarItem } from './SidebarItem';
import Popover from '@/_ui/Popover';
import { usePanelHeight } from '@/_stores/queryPanelStore';
import { useAppVersionStore } from '@/_stores/appVersionStore';
import { useEditorStore } from '@/_stores/editorStore';
import { useDataSources } from '@/_stores/dataSourcesStore';
import { shallow } from 'zustand/shallow';
export const LeftSidebar = forwardRef((props, ref) => {
const router = useRouter();
const {
appId,
switchDarkMode,
darkMode = false,
components,
dataSourcesChanged,
[Feature] :: Global datasources (#5504) * add: columns and migrations for data queries and sources * add: migrations for app environments * fix: datasources and queries api * fix: import apis * add: radixui colors * create: global datasource page * fix: version creation not including global datasources queries * fix: version deletion failure * fix: ui and other bugs * add: check for abilities on global ds * fix: bugs * fix: existing test cases * fix: migration and bugs * fix: rest api oauthorize bugs * hide: add button for local ds * fix: query bugs * fix: new organization environment creation * fix: local ds label showing for new apps * fix: on page load queries for preview app and published app * fix: import bugs from v1 * fix: merge conflicts * fix: import apis * fix: apss with mulit envs * fix: ui bugs * fix: environments not being created on db:seed * fix: ui bugs * fix: route settings for global datasources * fix: customer dashboard template * fix: local ds queries not being saved * fix: runpy issues * changes: ui * fix: migration issues * fix: ui * hide datasources when no local datasources * fix: test cases * fix: unit test cases and global queries on app import/export * cleanup * add: package-lock file * undo: migration rename * cleanup * fix: ui bugs * migration fixes * fix: dark mode issues * fix: change datasource failing on query create mode * fix: workspace selector issues * fix: clickoutside for change scope option * migration changes * fix: open api issue * reverting configs changes * [Fix] Global datasources & Environment Id issue (#5830) * fix: oauth env id issue * code changes --------- Co-authored-by: gsmithun4 <gsmithun4@gmail.com> Co-authored-by: Muhsin Shah <muhsinshah21@gmail.com>
2023-03-24 16:11:21 +00:00
globalDataSourcesChanged,
dataQueriesChanged,
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
errorLogs: errors,
Feature/component property validation (#2782) * Initial architecture for component property validation * Coerce to default and log invalid properties * eslint rule:frontend for specifying the path to the @types/ * removes comment for eslint-disable-next-line * reverts 27946f1 & adding a temporary fix * Remove incorrect property validations * Avoid race condiiton in setting state for error logs * Fix issue where only one error got logged * Flush out any errors that are logged * Remove unnecessary console.log * Add validations for Table properties * Add support for multiple validations * Add validation for chart component * Add validation for modal * Set default value common to all validation schemas for component properties * Add validations for password widget * Add validations for datepicker * Add information about default value on validation error message * Remove unwanted console.log * Do not validate properties on Viewer * Use meta information from widget config instead of component state to validate * Do not coerce to default values while validating * Do not validate existing components * Update package-lock.json in sync with develop * Add validation for general properties * Add support for size validation of component properties and styles * Add support for min and max spec in size validation * Support pattern validation for string properties * Make size validation specifiable along with type specification * Component validation optimizations * Remove unnecessary comments * Remove unnecessary default value param from validation * Fixed visibility style validation bug * Added custom validation to PDF & Custom component * property/style validation statistics * values changed to string * validation button group widget * bugfix * Added property validation to timeline widget * Added visibility prop validation to timeline widget * steps property/style validation * svg component property validation * component property validation numberinput * bugfix * validation textarea * validation vertical divider * property validation html widget * validation :: checkbox * image property validation * validation :: rangeslider widget * validation :: circular progress bar * validation spinner * added props and style validation * tags validation * validation :: pagination * timer :: validation * validation :: toggle * validation :: divider * validation :: radiobutton * added props and style validation * validation:: iframe * validation :: password input * validation:: code editor * validation :: listview * validation :: star rating * validation :: modal * validation :: qrscanner * validation :: datepicker * multiselect :: validation * added union validation for border radius * added props and style validation * added props and styles validation * added props and styles validations * added props and styles validations * added props and style validations * added props and styles validations * added prop and style validations * added props and styles validations * Added ID validation to steps widget * Removed default value * Added validation key to SVG widget * Removed default value * table validations * table validations * removing default value * removing defaultval * removing default val * removing default val * padding validation update * updating number validation * updatin number validation * validation updates * border validation * border radius validation * number input validation * validation updates * border radius validation * validation update * Updated misspelled schema text * Updated Tabs validation schema * Updated tooltip element schema * Updated validation for multi select * Updated validation for dropdown * Updated validation for text widget * Rectified mispelled validation * Fixed : validation not working for format * Added Array validation to chart widget * format prop bug fix * draft complete :: table validation * Fixed misspelled text * Don't validate properties that are not defined on widgetConfig Co-authored-by: arpitnath <arpitnath42@gmail.com> Co-authored-by: Kavin Venkatachalam <kavin.saratha@gmail.com> Co-authored-by: stepinfwd <stepinfwd@gmail.com> Co-authored-by: manishkushare <kushare.manish9@gmail.com> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2022-07-19 13:21:45 +00:00
debuggerActions,
currentState,
appDefinition,
setSelectedComponent,
removeComponent,
runQuery,
Feature/multi page applications (Task ID - CU-2h1bfvw) (#4729) * Add routes for multi-page apps * Modify Editor, Viewer and Inspector to accept new app structure * Show a page selector on left side bar * Align component deletion logic with new app schema * Make subcontainer work with multi-page apps * Load components state properly in viewer * Use UUID instead of handle for pages * Display sidebar on viewer to switch pages * Add proper URL suffixing for pages in viewer * Add action to switch page * Revert translation file back to its pre-existing linting * Fix bug that caused modal to not open/close * Add support for query params in page switch * Fix the issue that caused navigation to fail while accessed via slug * Add missing SwitchPage file * Add support for page level variables * Add migration to convert existing apps to new schema * Add rollback for converting multi-page definitions back to single-page * Fix migration for multi-page apps * Adapt import/export service for multi-pages * [improvements] Multi-page applications (#4755) * UI updates for page selector popup card * delete page * delete page check: if only one page exits * switch to home page if the selected page is removed * adds and switch to new page * updating page name * updates to home page and starting page * handle updating the home page when home page is deleted * search box for filtering pages and minor style updates for the page handler card * header search box style fixes * for creating a new page, page handle needs to be unique * seperating into smaller components * updated pinned icon for page selector styles and settinf styles * Leftsidebar header ui component * handle dark theme * page handle ui and dark theme fixes for page menu * page handler edit modal * pinned state and update pinned state for menu options triggered * dark theme fixes for edit modal * handle on update should not be empty or prev * page handler updater * added loading state for saving * handles cancels * fixes slug ui * fixes crash for older app versions * updates the query params when handle gets an update * update homePage to homePageId * removes console.log * go back to the popover for modal close * fixes: Difficult to select page * fixes: Difficult to select the three-dot menu * fixes: on visiting the root url, navigate to homepage on viewer * adds tooltip for url * updates the page selector sidebar with sync with query manager * refactor and cleanup * refactor and cleanup * Compute component state when page is switched * modal should not close on click outside * disable save button if there is not change in the page handle input * should show/hide page menu when hovered * page icon * updates delete icon for disabled state * query manager should always be on top of page selector * checks if homePage key exists in pages def * updates page handler menu * updates the clear icon * page handler menu position * page handler menu position * handle icon * alert msg * global settings handler for updating viewer page navigation * show/hode page navigation for viewer * info text for toggle * Multipages:with sortable list [DnD] (#4783) * applied sortable list * on sort updates the definitions * fixies: app crash for dnd * viwer: canvas width should be 100% when navigation drawer is disbaled * fixes: homepage/startpage reload * clean up Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * Multipage UI viewer (#4801) * new ui changes for viewer pages * fixes postions for debugger and datasources popover * removes console.log * Multipage : hide page and unhide page feature (#4803) * adds: ability to hide pages * hides pages in viewer * unhide page * hide icon * allow accessing hidden pages from url * add: duplicate page (#4802) * add: duplicate page * do not copy the same references from the original page * page name and page handler should be unique for duplicate pages too * Add support for on-page-load events * Add icon from page settings menu item * Convert existing templates to multi-page schema * error logs for page level and app level errors (#4842) * Adapt comments feature for multi-pages * [Bugfix] multipage - page menu interactions (#4844) * fixes: menu popup interaction * fixes: on modal input focus, we switch the page * Adapt multi-player to multi-pages * Add editingPageId to ymap * Log self, others and editor props in real-time avatar generation * Save editing page id to appDef * Add editingPageId to presence in RealtimeCursors * adds no results ui for empty search results (#4869) * page icon updated (#4870) * fixes:Version switching crashes if the target version does not contain the current page (#4868) * Remove unnecessary setting of editingPageId on ymap * Remove unnecessary console.log * [Bugfix] Multipages: widget inspector event popover unmounts (#4887) * introduced a local state for events * cleaned up inspector.jsx * fixes: table widget inspector event accordion * Do not run switchPage twice when viewer is loaded * Preview should open the currently editing page * Properly place navigation and canvas in viewer * Update app definition whenever event manager changes are made * Add support for browser back and forward button in multi-pages * Rename handleBackButton to handlePageSwitchingBasedOnURLparam * Add support for cut/copy/paste and clone * Fix the crash caused by boxShadow * Add support for background colors in viewer in multi-pages * Run queries to be run on load on viewer, in multi-pages * Fix issue that caused inspector popovers to collapse * resolves workspace vars in viewer mode (#4892) * Multipage : Navigation for Mobile-ui (#4814) * refactored to components * burger menu for mobile ui * merge conflict fix for hidden pages * hamburger menu positioned in the header * viewer header reafctored * viewer mobile page manu styles * handles dark theme * mobile menu with dark mode toggle in the footer * components are moved to page level, handle for mobile layout * style fixes * removing unwanted code block * dark theme fixes * style fixes * fixes: events are sortable (#4895) * fixes: events are sortable * Remove uneccesarily repeated call of setEvents in EventManager Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * renamed settings to Event handlers (#4898) * updates the page setting title to Page Events * temp commit * Add support for setting max width in percentage * fixes: paramUpdates for boxes: 🙌🏻 * [Bugfix] Multipage - viewer canvas dark theme (#4897) * fixes: darktheme bg for viewer canvas * reverts canvas size * Fix for inspector bouncing back to previous values * resolves pages variables in pythong and js transformation (#4905) * csa support to event manager for pages (#4907) * Add support for setting canvas width in percentages * Persist page level variables across page switches * latest definitions is merged with the current appdef (#4914) * latest definitions is merged with the current appdef * mutating the local obj * cleanup * iterate through pages for new versions are created Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-08 12:21:09 +00:00
currentPageId,
addNewPage,
switchPage,
deletePage,
renamePage,
hidePage,
unHidePage,
updateHomePage,
updatePageHandle,
showHideViewerNavigationControls,
updateOnSortingPages,
updateOnPageLoadEvents,
apps,
clonePage,
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
setEditorMarginLeft,
} = props;
const dataSources = useDataSources();
const prevSelectedSidebarItem = localStorage.getItem('selectedSidebarItem');
const queryPanelHeight = usePanelHeight();
const [selectedSidebarItem, setSelectedSidebarItem] = useState(
dataSources?.length === 0 && prevSelectedSidebarItem === 'database' ? 'inspect' : prevSelectedSidebarItem
);
const [showLeaveDialog, setShowLeaveDialog] = useState(false);
const [showDataSourceManagerModal, toggleDataSourceManagerModal] = useState(false);
const [popoverContentHeight, setPopoverContentHeight] = useState(queryPanelHeight);
const { isVersionReleased } = useAppVersionStore(
(state) => ({
isVersionReleased: state.isVersionReleased,
}),
shallow
);
const { showComments } = useEditorStore(
(state) => ({
showComments: state?.showComments,
}),
shallow
);
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
const [pinned, setPinned] = useState(!!localStorage.getItem('selectedSidebarItem'));
const [errorLogs, setErrorLogs] = useState([]);
const [errorHistory, setErrorHistory] = useState({ appLevel: [], pageLevel: [] });
const [unReadErrorCount, setUnReadErrorCount] = useState({ read: 0, unread: 0 });
const sideBarBtnRefs = useRef({});
const open = !!selectedSidebarItem;
const clearErrorLogs = () => {
setUnReadErrorCount({ read: 0, unread: 0 });
setErrorLogs([]);
setErrorHistory({ appLevel: [], pageLevel: [] });
};
useEffect(() => {
if (currentPageId) {
const olderPageErrorFromHistory = errorHistory.pageLevel[currentPageId] ?? [];
const olderAppErrorFromHistory = errorHistory.appLevel ?? [];
setErrorLogs(() => [...olderPageErrorFromHistory, ...olderAppErrorFromHistory]);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [currentPageId]);
useEffect(() => {
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
const newError = _.flow([
Object.entries,
// eslint-disable-next-line no-unused-vars
(arr) => arr.filter(([key, value]) => value.data?.status),
Object.fromEntries,
])(errors);
const newErrorLogs = debuggerActions.generateErrorLogs(newError);
const newPageLevelErrorLogs = newErrorLogs.filter((error) => error.strace === 'page_level');
const newAppLevelErrorLogs = newErrorLogs.filter((error) => error.strace === 'app_level');
if (newErrorLogs) {
setErrorLogs((prevErrors) => {
const copy = JSON.parse(JSON.stringify(prevErrors));
return [...newAppLevelErrorLogs, ...newPageLevelErrorLogs, ...copy];
});
setErrorHistory((prevErrors) => {
const copy = JSON.parse(JSON.stringify(prevErrors));
return {
appLevel: [...newAppLevelErrorLogs, ...copy.appLevel],
pageLevel: {
[currentPageId]: [...newPageLevelErrorLogs, ...(copy.pageLevel[currentPageId] ?? [])],
},
};
});
}
debuggerActions.flush();
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [JSON.stringify({ errors })]);
useEffect(() => {
if (open) {
// eslint-disable-next-line no-unused-vars
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
setUnReadErrorCount((prev) => ({ read: errorLogs.length, unread: 0 }));
}
// eslint-disable-next-line react-hooks/exhaustive-deps
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
}, [open]);
useEffect(() => {
const unReadErrors = errorLogs.length - unReadErrorCount.read;
setUnReadErrorCount((prev) => {
return { ...prev, unread: unReadErrors };
});
// eslint-disable-next-line react-hooks/exhaustive-deps
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
}, [errorLogs.length]);
useEffect(() => {
setPopoverContentHeight(((window.innerHeight - queryPanelHeight - 45) / window.innerHeight) * 100);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [queryPanelHeight]);
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
useEffect(() => {
if (!selectedSidebarItem) {
setEditorMarginLeft(0);
} else {
setEditorMarginLeft(350);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
}, [selectedSidebarItem]);
useImperativeHandle(ref, () => ({
dataSourceModalToggleStateHandler() {
toggleDataSourceManagerModal(true);
},
}));
const handleSelectedSidebarItem = (item) => {
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
if (item === selectedSidebarItem && !pinned) {
setSelectedSidebarItem(null);
} else {
setSelectedSidebarItem(item);
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
pinned && localStorage.setItem('selectedSidebarItem', item);
}
};
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
const handlePin = (isPin) => {
isPin
? localStorage.setItem('selectedSidebarItem', selectedSidebarItem)
: localStorage.removeItem('selectedSidebarItem');
setPinned(isPin);
};
const handleInteractOutside = (ev) => {
const isBtnClicked = Object.values(sideBarBtnRefs.current).some((btnRef) => {
return btnRef.contains(ev.target);
});
if (!isBtnClicked && !pinned) {
setSelectedSidebarItem(null);
}
};
const setSideBarBtnRefs = (page) => (ref) => {
sideBarBtnRefs.current[page] = ref;
};
const SELECTED_ITEMS = {
page: (
Feature/multi page applications (Task ID - CU-2h1bfvw) (#4729) * Add routes for multi-page apps * Modify Editor, Viewer and Inspector to accept new app structure * Show a page selector on left side bar * Align component deletion logic with new app schema * Make subcontainer work with multi-page apps * Load components state properly in viewer * Use UUID instead of handle for pages * Display sidebar on viewer to switch pages * Add proper URL suffixing for pages in viewer * Add action to switch page * Revert translation file back to its pre-existing linting * Fix bug that caused modal to not open/close * Add support for query params in page switch * Fix the issue that caused navigation to fail while accessed via slug * Add missing SwitchPage file * Add support for page level variables * Add migration to convert existing apps to new schema * Add rollback for converting multi-page definitions back to single-page * Fix migration for multi-page apps * Adapt import/export service for multi-pages * [improvements] Multi-page applications (#4755) * UI updates for page selector popup card * delete page * delete page check: if only one page exits * switch to home page if the selected page is removed * adds and switch to new page * updating page name * updates to home page and starting page * handle updating the home page when home page is deleted * search box for filtering pages and minor style updates for the page handler card * header search box style fixes * for creating a new page, page handle needs to be unique * seperating into smaller components * updated pinned icon for page selector styles and settinf styles * Leftsidebar header ui component * handle dark theme * page handle ui and dark theme fixes for page menu * page handler edit modal * pinned state and update pinned state for menu options triggered * dark theme fixes for edit modal * handle on update should not be empty or prev * page handler updater * added loading state for saving * handles cancels * fixes slug ui * fixes crash for older app versions * updates the query params when handle gets an update * update homePage to homePageId * removes console.log * go back to the popover for modal close * fixes: Difficult to select page * fixes: Difficult to select the three-dot menu * fixes: on visiting the root url, navigate to homepage on viewer * adds tooltip for url * updates the page selector sidebar with sync with query manager * refactor and cleanup * refactor and cleanup * Compute component state when page is switched * modal should not close on click outside * disable save button if there is not change in the page handle input * should show/hide page menu when hovered * page icon * updates delete icon for disabled state * query manager should always be on top of page selector * checks if homePage key exists in pages def * updates page handler menu * updates the clear icon * page handler menu position * page handler menu position * handle icon * alert msg * global settings handler for updating viewer page navigation * show/hode page navigation for viewer * info text for toggle * Multipages:with sortable list [DnD] (#4783) * applied sortable list * on sort updates the definitions * fixies: app crash for dnd * viwer: canvas width should be 100% when navigation drawer is disbaled * fixes: homepage/startpage reload * clean up Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * Multipage UI viewer (#4801) * new ui changes for viewer pages * fixes postions for debugger and datasources popover * removes console.log * Multipage : hide page and unhide page feature (#4803) * adds: ability to hide pages * hides pages in viewer * unhide page * hide icon * allow accessing hidden pages from url * add: duplicate page (#4802) * add: duplicate page * do not copy the same references from the original page * page name and page handler should be unique for duplicate pages too * Add support for on-page-load events * Add icon from page settings menu item * Convert existing templates to multi-page schema * error logs for page level and app level errors (#4842) * Adapt comments feature for multi-pages * [Bugfix] multipage - page menu interactions (#4844) * fixes: menu popup interaction * fixes: on modal input focus, we switch the page * Adapt multi-player to multi-pages * Add editingPageId to ymap * Log self, others and editor props in real-time avatar generation * Save editing page id to appDef * Add editingPageId to presence in RealtimeCursors * adds no results ui for empty search results (#4869) * page icon updated (#4870) * fixes:Version switching crashes if the target version does not contain the current page (#4868) * Remove unnecessary setting of editingPageId on ymap * Remove unnecessary console.log * [Bugfix] Multipages: widget inspector event popover unmounts (#4887) * introduced a local state for events * cleaned up inspector.jsx * fixes: table widget inspector event accordion * Do not run switchPage twice when viewer is loaded * Preview should open the currently editing page * Properly place navigation and canvas in viewer * Update app definition whenever event manager changes are made * Add support for browser back and forward button in multi-pages * Rename handleBackButton to handlePageSwitchingBasedOnURLparam * Add support for cut/copy/paste and clone * Fix the crash caused by boxShadow * Add support for background colors in viewer in multi-pages * Run queries to be run on load on viewer, in multi-pages * Fix issue that caused inspector popovers to collapse * resolves workspace vars in viewer mode (#4892) * Multipage : Navigation for Mobile-ui (#4814) * refactored to components * burger menu for mobile ui * merge conflict fix for hidden pages * hamburger menu positioned in the header * viewer header reafctored * viewer mobile page manu styles * handles dark theme * mobile menu with dark mode toggle in the footer * components are moved to page level, handle for mobile layout * style fixes * removing unwanted code block * dark theme fixes * style fixes * fixes: events are sortable (#4895) * fixes: events are sortable * Remove uneccesarily repeated call of setEvents in EventManager Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * renamed settings to Event handlers (#4898) * updates the page setting title to Page Events * temp commit * Add support for setting max width in percentage * fixes: paramUpdates for boxes: 🙌🏻 * [Bugfix] Multipage - viewer canvas dark theme (#4897) * fixes: darktheme bg for viewer canvas * reverts canvas size * Fix for inspector bouncing back to previous values * resolves pages variables in pythong and js transformation (#4905) * csa support to event manager for pages (#4907) * Add support for setting canvas width in percentages * Persist page level variables across page switches * latest definitions is merged with the current appdef (#4914) * latest definitions is merged with the current appdef * mutating the local obj * cleanup * iterate through pages for new versions are created Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-08 12:21:09 +00:00
<LeftSidebarPageSelector
darkMode={darkMode}
selectedSidebarItem={selectedSidebarItem}
Feature/multi page applications (Task ID - CU-2h1bfvw) (#4729) * Add routes for multi-page apps * Modify Editor, Viewer and Inspector to accept new app structure * Show a page selector on left side bar * Align component deletion logic with new app schema * Make subcontainer work with multi-page apps * Load components state properly in viewer * Use UUID instead of handle for pages * Display sidebar on viewer to switch pages * Add proper URL suffixing for pages in viewer * Add action to switch page * Revert translation file back to its pre-existing linting * Fix bug that caused modal to not open/close * Add support for query params in page switch * Fix the issue that caused navigation to fail while accessed via slug * Add missing SwitchPage file * Add support for page level variables * Add migration to convert existing apps to new schema * Add rollback for converting multi-page definitions back to single-page * Fix migration for multi-page apps * Adapt import/export service for multi-pages * [improvements] Multi-page applications (#4755) * UI updates for page selector popup card * delete page * delete page check: if only one page exits * switch to home page if the selected page is removed * adds and switch to new page * updating page name * updates to home page and starting page * handle updating the home page when home page is deleted * search box for filtering pages and minor style updates for the page handler card * header search box style fixes * for creating a new page, page handle needs to be unique * seperating into smaller components * updated pinned icon for page selector styles and settinf styles * Leftsidebar header ui component * handle dark theme * page handle ui and dark theme fixes for page menu * page handler edit modal * pinned state and update pinned state for menu options triggered * dark theme fixes for edit modal * handle on update should not be empty or prev * page handler updater * added loading state for saving * handles cancels * fixes slug ui * fixes crash for older app versions * updates the query params when handle gets an update * update homePage to homePageId * removes console.log * go back to the popover for modal close * fixes: Difficult to select page * fixes: Difficult to select the three-dot menu * fixes: on visiting the root url, navigate to homepage on viewer * adds tooltip for url * updates the page selector sidebar with sync with query manager * refactor and cleanup * refactor and cleanup * Compute component state when page is switched * modal should not close on click outside * disable save button if there is not change in the page handle input * should show/hide page menu when hovered * page icon * updates delete icon for disabled state * query manager should always be on top of page selector * checks if homePage key exists in pages def * updates page handler menu * updates the clear icon * page handler menu position * page handler menu position * handle icon * alert msg * global settings handler for updating viewer page navigation * show/hode page navigation for viewer * info text for toggle * Multipages:with sortable list [DnD] (#4783) * applied sortable list * on sort updates the definitions * fixies: app crash for dnd * viwer: canvas width should be 100% when navigation drawer is disbaled * fixes: homepage/startpage reload * clean up Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * Multipage UI viewer (#4801) * new ui changes for viewer pages * fixes postions for debugger and datasources popover * removes console.log * Multipage : hide page and unhide page feature (#4803) * adds: ability to hide pages * hides pages in viewer * unhide page * hide icon * allow accessing hidden pages from url * add: duplicate page (#4802) * add: duplicate page * do not copy the same references from the original page * page name and page handler should be unique for duplicate pages too * Add support for on-page-load events * Add icon from page settings menu item * Convert existing templates to multi-page schema * error logs for page level and app level errors (#4842) * Adapt comments feature for multi-pages * [Bugfix] multipage - page menu interactions (#4844) * fixes: menu popup interaction * fixes: on modal input focus, we switch the page * Adapt multi-player to multi-pages * Add editingPageId to ymap * Log self, others and editor props in real-time avatar generation * Save editing page id to appDef * Add editingPageId to presence in RealtimeCursors * adds no results ui for empty search results (#4869) * page icon updated (#4870) * fixes:Version switching crashes if the target version does not contain the current page (#4868) * Remove unnecessary setting of editingPageId on ymap * Remove unnecessary console.log * [Bugfix] Multipages: widget inspector event popover unmounts (#4887) * introduced a local state for events * cleaned up inspector.jsx * fixes: table widget inspector event accordion * Do not run switchPage twice when viewer is loaded * Preview should open the currently editing page * Properly place navigation and canvas in viewer * Update app definition whenever event manager changes are made * Add support for browser back and forward button in multi-pages * Rename handleBackButton to handlePageSwitchingBasedOnURLparam * Add support for cut/copy/paste and clone * Fix the crash caused by boxShadow * Add support for background colors in viewer in multi-pages * Run queries to be run on load on viewer, in multi-pages * Fix issue that caused inspector popovers to collapse * resolves workspace vars in viewer mode (#4892) * Multipage : Navigation for Mobile-ui (#4814) * refactored to components * burger menu for mobile ui * merge conflict fix for hidden pages * hamburger menu positioned in the header * viewer header reafctored * viewer mobile page manu styles * handles dark theme * mobile menu with dark mode toggle in the footer * components are moved to page level, handle for mobile layout * style fixes * removing unwanted code block * dark theme fixes * style fixes * fixes: events are sortable (#4895) * fixes: events are sortable * Remove uneccesarily repeated call of setEvents in EventManager Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * renamed settings to Event handlers (#4898) * updates the page setting title to Page Events * temp commit * Add support for setting max width in percentage * fixes: paramUpdates for boxes: 🙌🏻 * [Bugfix] Multipage - viewer canvas dark theme (#4897) * fixes: darktheme bg for viewer canvas * reverts canvas size * Fix for inspector bouncing back to previous values * resolves pages variables in pythong and js transformation (#4905) * csa support to event manager for pages (#4907) * Add support for setting canvas width in percentages * Persist page level variables across page switches * latest definitions is merged with the current appdef (#4914) * latest definitions is merged with the current appdef * mutating the local obj * cleanup * iterate through pages for new versions are created Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-08 12:21:09 +00:00
appDefinition={appDefinition}
currentPageId={currentPageId}
addNewPage={addNewPage}
switchPage={switchPage}
deletePage={deletePage}
renamePage={renamePage}
hidePage={hidePage}
unHidePage={unHidePage}
updateHomePage={updateHomePage}
updatePageHandle={updatePageHandle}
clonePage={clonePage}
pages={Object.entries(appDefinition.pages).map(([id, page]) => ({ id, ...page })) || []}
homePageId={appDefinition.homePageId}
showHideViewerNavigationControls={showHideViewerNavigationControls}
updateOnSortingPages={updateOnSortingPages}
updateOnPageLoadEvents={updateOnPageLoadEvents}
currentState={currentState}
apps={apps}
popoverContentHeight={popoverContentHeight}
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
setPinned={handlePin}
pinned={pinned}
Feature/multi page applications (Task ID - CU-2h1bfvw) (#4729) * Add routes for multi-page apps * Modify Editor, Viewer and Inspector to accept new app structure * Show a page selector on left side bar * Align component deletion logic with new app schema * Make subcontainer work with multi-page apps * Load components state properly in viewer * Use UUID instead of handle for pages * Display sidebar on viewer to switch pages * Add proper URL suffixing for pages in viewer * Add action to switch page * Revert translation file back to its pre-existing linting * Fix bug that caused modal to not open/close * Add support for query params in page switch * Fix the issue that caused navigation to fail while accessed via slug * Add missing SwitchPage file * Add support for page level variables * Add migration to convert existing apps to new schema * Add rollback for converting multi-page definitions back to single-page * Fix migration for multi-page apps * Adapt import/export service for multi-pages * [improvements] Multi-page applications (#4755) * UI updates for page selector popup card * delete page * delete page check: if only one page exits * switch to home page if the selected page is removed * adds and switch to new page * updating page name * updates to home page and starting page * handle updating the home page when home page is deleted * search box for filtering pages and minor style updates for the page handler card * header search box style fixes * for creating a new page, page handle needs to be unique * seperating into smaller components * updated pinned icon for page selector styles and settinf styles * Leftsidebar header ui component * handle dark theme * page handle ui and dark theme fixes for page menu * page handler edit modal * pinned state and update pinned state for menu options triggered * dark theme fixes for edit modal * handle on update should not be empty or prev * page handler updater * added loading state for saving * handles cancels * fixes slug ui * fixes crash for older app versions * updates the query params when handle gets an update * update homePage to homePageId * removes console.log * go back to the popover for modal close * fixes: Difficult to select page * fixes: Difficult to select the three-dot menu * fixes: on visiting the root url, navigate to homepage on viewer * adds tooltip for url * updates the page selector sidebar with sync with query manager * refactor and cleanup * refactor and cleanup * Compute component state when page is switched * modal should not close on click outside * disable save button if there is not change in the page handle input * should show/hide page menu when hovered * page icon * updates delete icon for disabled state * query manager should always be on top of page selector * checks if homePage key exists in pages def * updates page handler menu * updates the clear icon * page handler menu position * page handler menu position * handle icon * alert msg * global settings handler for updating viewer page navigation * show/hode page navigation for viewer * info text for toggle * Multipages:with sortable list [DnD] (#4783) * applied sortable list * on sort updates the definitions * fixies: app crash for dnd * viwer: canvas width should be 100% when navigation drawer is disbaled * fixes: homepage/startpage reload * clean up Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * Multipage UI viewer (#4801) * new ui changes for viewer pages * fixes postions for debugger and datasources popover * removes console.log * Multipage : hide page and unhide page feature (#4803) * adds: ability to hide pages * hides pages in viewer * unhide page * hide icon * allow accessing hidden pages from url * add: duplicate page (#4802) * add: duplicate page * do not copy the same references from the original page * page name and page handler should be unique for duplicate pages too * Add support for on-page-load events * Add icon from page settings menu item * Convert existing templates to multi-page schema * error logs for page level and app level errors (#4842) * Adapt comments feature for multi-pages * [Bugfix] multipage - page menu interactions (#4844) * fixes: menu popup interaction * fixes: on modal input focus, we switch the page * Adapt multi-player to multi-pages * Add editingPageId to ymap * Log self, others and editor props in real-time avatar generation * Save editing page id to appDef * Add editingPageId to presence in RealtimeCursors * adds no results ui for empty search results (#4869) * page icon updated (#4870) * fixes:Version switching crashes if the target version does not contain the current page (#4868) * Remove unnecessary setting of editingPageId on ymap * Remove unnecessary console.log * [Bugfix] Multipages: widget inspector event popover unmounts (#4887) * introduced a local state for events * cleaned up inspector.jsx * fixes: table widget inspector event accordion * Do not run switchPage twice when viewer is loaded * Preview should open the currently editing page * Properly place navigation and canvas in viewer * Update app definition whenever event manager changes are made * Add support for browser back and forward button in multi-pages * Rename handleBackButton to handlePageSwitchingBasedOnURLparam * Add support for cut/copy/paste and clone * Fix the crash caused by boxShadow * Add support for background colors in viewer in multi-pages * Run queries to be run on load on viewer, in multi-pages * Fix issue that caused inspector popovers to collapse * resolves workspace vars in viewer mode (#4892) * Multipage : Navigation for Mobile-ui (#4814) * refactored to components * burger menu for mobile ui * merge conflict fix for hidden pages * hamburger menu positioned in the header * viewer header reafctored * viewer mobile page manu styles * handles dark theme * mobile menu with dark mode toggle in the footer * components are moved to page level, handle for mobile layout * style fixes * removing unwanted code block * dark theme fixes * style fixes * fixes: events are sortable (#4895) * fixes: events are sortable * Remove uneccesarily repeated call of setEvents in EventManager Co-authored-by: Sherfin Shamsudeen <sherfin94@gmail.com> * renamed settings to Event handlers (#4898) * updates the page setting title to Page Events * temp commit * Add support for setting max width in percentage * fixes: paramUpdates for boxes: 🙌🏻 * [Bugfix] Multipage - viewer canvas dark theme (#4897) * fixes: darktheme bg for viewer canvas * reverts canvas size * Fix for inspector bouncing back to previous values * resolves pages variables in pythong and js transformation (#4905) * csa support to event manager for pages (#4907) * Add support for setting canvas width in percentages * Persist page level variables across page switches * latest definitions is merged with the current appdef (#4914) * latest definitions is merged with the current appdef * mutating the local obj * cleanup * iterate through pages for new versions are created Co-authored-by: Arpit <arpitnath42@gmail.com>
2022-12-08 12:21:09 +00:00
/>
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
),
inspect: (
<LeftSidebarInspector
darkMode={darkMode}
selectedSidebarItem={selectedSidebarItem}
currentState={currentState}
appDefinition={appDefinition}
setSelectedComponent={setSelectedComponent}
removeComponent={removeComponent}
runQuery={runQuery}
popoverContentHeight={popoverContentHeight}
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
setPinned={handlePin}
pinned={pinned}
[Improvements] Environment changes (#6762) * Added priority, enabled, current_environment_id columns - added data-migrations to backfill the priority and current environment id for each version * working on multi environments improvement - added checks for promoted env - promote env feature - released app & production env check - promoted version definition check * added import support * working on migration issues * fixed failing migration * fixed failing migration once again * Fixed possible bugs - seed - test case helpers - app version release * fixed migration bug * working on migration progress * working on migration progress class * added migration progress * fixed unit tests * fixed e2e cases * added default priority * added PR changes * changed import logic * added global datasource design and api changes * changed default env if the id is null * added unique constraint and a bug fix * changed app versions api - added current environment id to the where conditions * fixed failing test cases * added new test cases * added new api changes * added back the enabled check * fixed test case * change: added environment to create versions dto * typo: environmentId * added new api for fetching versions * added appVersions count changes to CE * Changed app versions by environmentid logic * added PR changes for EE * fixed wrong promoted env id issue * fix: can't switch to staging * added import export changes - update delete modal text * added EE import export code, modal updated text * added common migration code for CE and EE * fixes - enable run button for released version - disable change datasource for queries * changed released version popup design to new EE design * add: hide delete icons for released version
2023-07-11 04:40:03 +00:00
isVersionReleased={isVersionReleased}
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
/>
),
database: (
<LeftSidebarDataSources
darkMode={darkMode}
appId={appId}
dataSourcesChanged={dataSourcesChanged}
globalDataSourcesChanged={globalDataSourcesChanged}
dataQueriesChanged={dataQueriesChanged}
toggleDataSourceManagerModal={toggleDataSourceManagerModal}
showDataSourceManagerModal={showDataSourceManagerModal}
isVersionReleased={isVersionReleased}
onDeleteofAllDataSources={() => {
handleSelectedSidebarItem(null);
handlePin(false);
delete sideBarBtnRefs.current['database'];
}}
setPinned={handlePin}
pinned={pinned}
/>
),
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
debugger: (
<LeftSidebarDebugger
darkMode={darkMode}
selectedSidebarItem={selectedSidebarItem}
components={components}
errors={errorLogs}
debuggerActions={debuggerActions}
currentPageId={currentPageId}
popoverContentHeight={popoverContentHeight}
clearErrorLogs={clearErrorLogs}
setPinned={handlePin}
pinned={pinned}
setEditorMarginLeft={setEditorMarginLeft}
/>
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
),
};
return (
<div className="left-sidebar" data-cy="left-sidebar-inspector">
<LeftSidebarItem
selectedSidebarItem={selectedSidebarItem}
onClick={() => handleSelectedSidebarItem('page')}
icon="page"
className={`left-sidebar-item left-sidebar-layout left-sidebar-page-selector`}
tip="Pages"
ref={setSideBarBtnRefs('page')}
/>
<LeftSidebarItem
selectedSidebarItem={selectedSidebarItem}
onClick={() => handleSelectedSidebarItem('inspect')}
icon="inspect"
className={`left-sidebar-item left-sidebar-layout left-sidebar-inspector`}
tip="Inspector"
ref={setSideBarBtnRefs('inspect')}
/>
{dataSources?.length > 0 && (
<LeftSidebarItem
selectedSidebarItem={selectedSidebarItem}
onClick={() => handleSelectedSidebarItem('database')}
icon="database"
className={`left-sidebar-item left-sidebar-layout sidebar-datasources`}
tip="Sources"
ref={setSideBarBtnRefs('database')}
/>
)}
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
<Popover
onInteractOutside={handleInteractOutside}
open={pinned || !!selectedSidebarItem}
popoverContentClassName="p-0 sidebar-h-100-popover"
side="right"
popoverContent={SELECTED_ITEMS[selectedSidebarItem]}
popoverContentHeight={popoverContentHeight}
/>
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810) * feat: initial commit for collaboration feature * add dnd to comments * add positions endpoint * feat: encapsulate all http common logic in http-client * segregate sections and transfer responsibility of state * feat: use-spring to add fade effect :zap: * fix: open in right * fix: left-right position css * add footer for message * integrate getcomment endpoint * use fromnow for date ago * add dnd * - Add data trasfer object for comment - Add class-validator package to check the response type from client - Add comment repository class for persistance layer - Add comment service with std. http methods - Update controller with all http methods - Update comment module - Fix http-client bug when error is thrown * fix http client bug when error is thrown * feat: add entity thread * feat: add migrations for thread and comment * update entitites * add tid to migration * filter comments by tid(thread_id) * fix: comment migration, add missing column comment * feat: integrate in ui * feat: split comments based on app_id * fix: dnd to correct position * package json engines * engines update * update npm * npm 6 to 7 * fix: add user initials to thread * fix: add firtname lastname to the comments * - Return user object when save thread called - Hide password field from user response - Fix created_at date typo - Instead of fetch all threads on new thread added, add the response to array of existing threads * feat: update ui components * change icon on comments view * ui fixes * fix: close icon close the popover * temp: comment select: false * use currentUser from localStorage * fix: on click outside if comment is open, dont hit addThread * fix: auth token issue in http-client * on drag hide the comment if open * add jwt auth * spec: add test for comment & thread * cleanup: remove console.log * feat: add comment actions * feat: add edit, delete, resolve options * feat: add mentions component * feat: add nestjs websockets * temp * websocket: establish client-server communication * ws: add message listner to comments module in ui * feat: add broadcast method to broadcast new events to all clients :bomb: * ws: cleanup :call_me_hand: * fix: remove max height from comment actions * feat: add user mentions, emoji support * fix: add static list of users - temp * update and delete iterations * - Rename comment, thread to comments, threads - Add conditional actions - Show edit, delete only if he is comment owner - Show resolve only if he is thread owner * reset engines * move svgr webpack to deps * fix: ui issues * remove log stmt * refactor: move resolved icon to comment-header * feat: allow comments to be added on top of widgets * feat: add keyboard shortcut * scroll to bottom on comment add * ui fixes * feat: add react toast for notification display * feat: add comment badge * fix: ws connection * fix: ws * remove rvrse * feat: add comment sidebar * feat: add comment right sidebar * fix: add missing foreign key elements * - upgrade typeorm to 0.2.38 - comment sidebar ui - added filter ui * feat: on click of right sidebar notificaiton open the comment box * reset engines * fix: add organization id to the comment and thread module * fix: add current version id * add currentversion id * disable comments if no id present * temp:checking for heroku deploy * fetch app on edit and deploy version * rename current_version_id to app_versions_id * ui fixes * show mentioned user in blue color * add ui changes * add authorization for create thread * change color to blue on click of comment, add auth for other endpoints of thread * update threads, notifications using socket * add auth for comments * remove events spec file * fix duplicate key error * fix notificaitons updation on edit, delete, resolve buttons clicked * update notifications for edit * feature toggle changes for frontend * add check for comments server * add emoji mart package for emoji * add reply count in comment sidebar * subtract 1 from count in comment sidebar * change empty text when no comments available
2021-11-01 07:28:03 +00:00
{config.COMMENT_FEATURE_ENABLE && (
<div className={`${isVersionReleased && 'disabled'}`}>
<LeftSidebarComment
selectedSidebarItem={showComments ? 'comments' : ''}
currentPageId={currentPageId}
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
ref={setSideBarBtnRefs('comments')}
/>
</div>
Feature: Collaboration ( realtime comments for canvas ) 🔥 (#810) * feat: initial commit for collaboration feature * add dnd to comments * add positions endpoint * feat: encapsulate all http common logic in http-client * segregate sections and transfer responsibility of state * feat: use-spring to add fade effect :zap: * fix: open in right * fix: left-right position css * add footer for message * integrate getcomment endpoint * use fromnow for date ago * add dnd * - Add data trasfer object for comment - Add class-validator package to check the response type from client - Add comment repository class for persistance layer - Add comment service with std. http methods - Update controller with all http methods - Update comment module - Fix http-client bug when error is thrown * fix http client bug when error is thrown * feat: add entity thread * feat: add migrations for thread and comment * update entitites * add tid to migration * filter comments by tid(thread_id) * fix: comment migration, add missing column comment * feat: integrate in ui * feat: split comments based on app_id * fix: dnd to correct position * package json engines * engines update * update npm * npm 6 to 7 * fix: add user initials to thread * fix: add firtname lastname to the comments * - Return user object when save thread called - Hide password field from user response - Fix created_at date typo - Instead of fetch all threads on new thread added, add the response to array of existing threads * feat: update ui components * change icon on comments view * ui fixes * fix: close icon close the popover * temp: comment select: false * use currentUser from localStorage * fix: on click outside if comment is open, dont hit addThread * fix: auth token issue in http-client * on drag hide the comment if open * add jwt auth * spec: add test for comment & thread * cleanup: remove console.log * feat: add comment actions * feat: add edit, delete, resolve options * feat: add mentions component * feat: add nestjs websockets * temp * websocket: establish client-server communication * ws: add message listner to comments module in ui * feat: add broadcast method to broadcast new events to all clients :bomb: * ws: cleanup :call_me_hand: * fix: remove max height from comment actions * feat: add user mentions, emoji support * fix: add static list of users - temp * update and delete iterations * - Rename comment, thread to comments, threads - Add conditional actions - Show edit, delete only if he is comment owner - Show resolve only if he is thread owner * reset engines * move svgr webpack to deps * fix: ui issues * remove log stmt * refactor: move resolved icon to comment-header * feat: allow comments to be added on top of widgets * feat: add keyboard shortcut * scroll to bottom on comment add * ui fixes * feat: add react toast for notification display * feat: add comment badge * fix: ws connection * fix: ws * remove rvrse * feat: add comment sidebar * feat: add comment right sidebar * fix: add missing foreign key elements * - upgrade typeorm to 0.2.38 - comment sidebar ui - added filter ui * feat: on click of right sidebar notificaiton open the comment box * reset engines * fix: add organization id to the comment and thread module * fix: add current version id * add currentversion id * disable comments if no id present * temp:checking for heroku deploy * fetch app on edit and deploy version * rename current_version_id to app_versions_id * ui fixes * show mentioned user in blue color * add ui changes * add authorization for create thread * change color to blue on click of comment, add auth for other endpoints of thread * update threads, notifications using socket * add auth for comments * remove events spec file * fix duplicate key error * fix notificaitons updation on edit, delete, resolve buttons clicked * update notifications for edit * feature toggle changes for frontend * add check for comments server * add emoji mart package for emoji * add reply count in comment sidebar * subtract 1 from count in comment sidebar * change empty text when no comments available
2021-11-01 07:28:03 +00:00
)}
<ConfirmDialog
show={showLeaveDialog}
message={'The unsaved changes will be lost if you leave the editor, do you want to leave?'}
onConfirm={() => router.push('/')}
onCancel={() => setShowLeaveDialog(false)}
darkMode={darkMode}
/>
<div className="left-sidebar-stack-bottom">
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
<LeftSidebarItem
icon="debugger"
selectedSidebarItem={selectedSidebarItem}
// eslint-disable-next-line no-unused-vars
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
onClick={(e) => handleSelectedSidebarItem('debugger')}
className={`left-sidebar-item left-sidebar-layout`}
badge={true}
count={unReadErrorCount.unread}
tip="Debugger"
ref={setSideBarBtnRefs('debugger')}
/>
Improving user experience of left side drawer in app builder (#6659) * style: Store pinned state of left sidebar tabs in localstorgae to persist across refresh * style: Fixed popover width. Add scroll for canvas so for user view to remain same when popover is open * feat: added horizontal scrollbar for canvas when sidebar popup is open * feat: added logic to calculate canvas height on resize * feat: prevent flickering of popover when switching tabs * style: made modal width and position inside canvas relative to canvas container positon * fix: removed extra offset added to the dragged element placeholder. * fix: hide extra scroll bar added when dragging new component to canvas * fix: hide canvas scrollbar on dragging of new component * fix: removed extra margin to main container * fix: fixed canvas alignment when mobile screen is selected * fix: revert the debugger error notification badge behaviour * fix: fixed width issue for old apps * fix: fixed issue with width when user set max width in % * fix: resolved conflicts in style file * fix: fixed whitespace issue in large screen * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/LeftSidebar/index.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * refactor: removed unnecessory rerendering of Editor component * perf: unsubscribe to querypanelstore on unmount of editor component * perf: rerender editor only when query panel resizing over * refactor: removed unused logs * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * Update frontend/src/Editor/Editor.jsx Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com> * fix: added style to hide extrascrollbar in macbook screens when mouse connected --------- Co-authored-by: Johnson Cherian <johnsoncherian@Johnsons-MacBook-Pro.local> Co-authored-by: Kavin Venkatachalam <50441969+kavinvenkatachalam@users.noreply.github.com>
2023-06-15 07:28:44 +00:00
<div className="left-sidebar-item no-border">
<DarkModeToggle switchDarkMode={switchDarkMode} darkMode={darkMode} tooltipPlacement="right" />
</div>
{/* <LeftSidebarItem icon='support' className='left-sidebar-item' /> */}
</div>
</div>
);
});