Updated multiple navigation components, including CurrentWorkspaceMemberFavoritesFolders, NavigationDrawerOtherSection, CurrentWorkspaceMemberNavigationMenuItemFolders, and NavigationDrawerSectionForWorkspaceItems, to replace conditional rendering with AnimatedExpandableContainer. This change enhances the user experience by providing animated transitions for expanded sections, improving visual feedback and interaction consistency across the navigation UI.
Introduced a new rightOptions prop in the NavigationDrawerSectionForWorkspaceItemLinkContent component, which conditionally renders an IconArrowUpRight when not in edit mode. This enhancement improves the visual feedback and interactivity of the navigation drawer, aligning with the overall user experience improvements in the application.
Added active state handling to the WorkspaceNavigationMenuItemsFolder and WorkspaceFolderReadOnly components, ensuring proper visual feedback based on the selected navigation menu item index. Refactored the click handling for the folder toggle to improve user interaction and maintain consistent behavior across components.
Refactored the NavigationMenuEditModeBar component to utilize framer-motion for smooth animations when toggling the visibility of the edit mode bar. This enhancement improves user experience by providing a visually appealing transition effect, ensuring that the layout customization options are presented more dynamically.
Introduced a new utility function, extractDomainFromUrl, to extract the domain from a given URL. Updated the SidePanelEditLinkItemView component to utilize this function for automatically setting the link name based on the URL input. Refactored the onUpdateLink method to accept an object for updates, improving flexibility in link management.
Added an optional disableDrag property to the AddMenuItemInsertionContext type to control drag behavior. Updated various components to utilize this new property, ensuring that drag functionality is correctly managed based on the insertion context. This change improves the user experience by providing more granular control over item interactions in the navigation menu.
Updated the WorkspaceNavigationMenuItemsFolder component to integrate side panel state management, allowing for better handling of menu item insertion context and selected navigation items in edit mode. Refactored the useOpenAddItemToFolderPage hook to reset the selected item in edit mode when opening the add item page. Additionally, modified the WorkspaceSectionAddMenuItemButton to ensure proper state handling when navigating to the add item side panel, improving overall user experience and code clarity.
Removed the selectedNavigationMenuItemInEditModeState from useHandleAddToNavigationDrop and updated related logic to directly handle itemId in openNavigationMenuItemInSidePanel. Enhanced the useOpenNavigationMenuItemInSidePanel hook to set the selected item in edit mode when opening the side panel. This refactor improves code clarity and reduces unnecessary state management, contributing to a more efficient navigation experience.
Updated the color logic in the NavigationDrawerItem component to simplify the conditional rendering. The changes enhance code readability and maintainability by removing unnecessary conditions, ensuring a more straightforward approach to determining the icon color based on the component's state.
Updated the SidePanelRouter component to enhance the rendering logic by introducing a check for valid React elements before cloning the page component. This change ensures that the component handles rendering more robustly, improving maintainability and user experience.
Updated the NavigationDrawerSectionTitle component to apply a new hover style that changes the color of the section title label. This enhancement improves the visual feedback for users interacting with the navigation drawer, contributing to a more engaging user experience.
Updated the CurrentWorkspaceMemberNavigationMenuItemFoldersDispatcher component to enhance the rendering logic by incorporating the AnimatedEaseInOut component. This change allows for smoother transitions between the editing and viewing states of the navigation menu items, improving the overall user experience. The conditional rendering now effectively toggles between CurrentWorkspaceMemberNavigationMenuItemFolders and CurrentWorkspaceMemberFavoritesFolders based on the editing state.
Modified the StyledLinkOverlay component to use theme variables for border radius and adjusted positioning properties for better alignment. Increased the size of the LinkIcon for enhanced visibility, contributing to a more cohesive design within the navigation menu.
Removed the SidePanelEditColorOption component from the SidePanelEditLinkItemView, streamlining the code and enhancing maintainability. Updated imports accordingly to reflect this change.
Introduced a new DroppableData type to encapsulate droppableId and index properties. Updated the resolveDropTarget function to utilize this type for better data validation and handling. Additionally, removed the parseDropTargetIdToDestination utility as its functionality is now integrated into the resolveDropTarget logic, streamlining the code and enhancing maintainability.
Updated the resolveDropTarget function to enhance code clarity by adding braces around the null check condition. This change improves the readability of the function and maintains consistency with coding standards.
Updated the workspaceDndKitResolveDropTarget file to reorganize imports for better clarity and maintainability. The NavigationMenuItem type import was moved to the top, and unnecessary comments were removed, streamlining the code structure.
Updated the getDestinationFromSortableTarget function to enhance the handling of the index parameter. The raw index is now validated to ensure it is an integer and non-negative before being used. This change improves the robustness of the drag-and-drop functionality within the navigation system.
Updated the CommandMenuNewSidebarItemPage component to replace command menu imports and usage with corresponding side panel components. This change enhances consistency in navigation and aligns with recent refactoring efforts to streamline the user experience across the application.
Updated various components to replace command menu navigation with side panel navigation. This includes changes in `WorkspaceNavigationMenuItems`, `WorkspaceSectionAddMenuItemButton`, and related components. Additionally, imports have been adjusted to utilize `themeCssVariables` for consistent theming across the application. These changes enhance the user experience by streamlining navigation and improving code maintainability.
Updated the WorkspaceDndKitProvider component to streamline drag-and-drop logic by removing unused imports and state management. Introduced new utility files for handling draggable data, drop destinations, and resolving drop targets. This refactor enhances code organization and maintainability, while also improving the overall drag-and-drop experience within the workspace navigation.
Updated the usePersistField hook to eliminate the check for isNavigationMenuInEditModeState. This change simplifies the logic within the hook, enhancing readability and maintainability by focusing solely on the field persistence functionality.
Updated the NavigationDrawerSectionForWorkspaceItemContent component to delegate rendering to specialized components: NavigationDrawerSectionForWorkspaceItemFolderContent, NavigationDrawerSectionForWorkspaceItemLinkContent, and NavigationDrawerSectionForWorkspaceItemObjectContent. This change improves code organization and readability by separating concerns for different item types. Additionally, updated imports in related components to reflect the new structure.
Updated the SidePanelNewSidebarItemMainMenu component to replace string literals with constants from NavigationMenuItemType for improved type safety and maintainability. This change enhances code readability and consistency across the component.
Updated the logic for determining the contextual description in SidePanelItemWithAddToNavigationDrag. The new implementation improves readability by consolidating the conditions for displaying the drag affordance message.
Updated the logic in DEFAULT_RECORD_ACTIONS_CONFIG to streamline the condition for soft delete availability. The check for `isNavigationMenuInEditMode` has been moved to the end of the condition, improving readability and maintaining functionality.
## Summary
Removes `vite-plugin-checker` and all references to
`VITE_DISABLE_TYPESCRIPT_CHECKER` / `VITE_DISABLE_ESLINT_CHECKER`.
These background checks are no longer needed because our dev experience
now relies on **independent** linters and type-checkers:
- `npx nx lint:diff-with-main twenty-front` for ESLint
- `npx nx typecheck twenty-front` for TypeScript
Running these as separate processes (rather than inside Vite) is faster,
gives cleaner output, and avoids the significant memory overhead that
`vite-plugin-checker` introduces during `vite dev` and `vite build`. The
old env vars to disable them are removed from `vite.config.ts`,
`package.json` scripts, `nx.json`, `.env.example`, and all translated
docs.
Introduce two new ESLint rules that prevent the use of `jotaiStore` and
direct calls to `.atomFamily()` or `.selectorFamily()` within component
selector `get` callbacks.
These rules promote cleaner and more reactive code practices.
Fixed file touched by those new rules :
`calendarDayRecordIdsComponentFamilySelector`
## Problem
While working on the IS/IS_NOT filter feature (#15317 ), I found this
problem. So I want to submit a separate pr to fix it at first.
In the advanced filter, clicking on a composite field (Emails, Phones,
Links) was not showing the sub-field selection menu.
## Root cause
Related to #18178 (Recoil → Jotai migration).
`AdvancedFilterFieldSelectMenu` was writing composite field states using
`advancedFilterFieldSelectDropdownId` as the instance ID. But the reader
components (`AdvancedFilterFieldSelectDropdownContent`,
`AdvancedFilterSubFieldSelectMenu`) resolve the instance ID from React
context, which has a different value — so they were reading from a
different Jotai atom instance and `isSelectingCompositeField` was always
`false`.
## Fix
Remove the 3 explicit instance IDs so the writer uses context, matching
the readers.
## Before
https://github.com/user-attachments/assets/dde54077-0eaf-453c-a638-bec6d6fe4d55
## After
https://github.com/user-attachments/assets/01916bcf-0ee8-49ad-bb54-9d8f10571069
Hope I understood it correctly.
---------
Co-authored-by: Etienne <45695613+etiennejouan@users.noreply.github.com>
# Introduction
While testing the sdk and overall apps in
https://github.com/prastoin/twenty-app-hello-world
Faced a lot of pure `CJS` external dependencies import issue
Replaced all the cjs deps to either esm equivalent or node native
replacement
Updated multiple components to replace the Emotion styled import with Linaria's styled import. This change enhances performance and aligns with the project's styling strategy, ensuring consistency across the codebase.
Introduced a new action for editing the navigation sidebar in the record actions configuration. This includes the addition of the EditNavigationSidebarNoSelectionRecordAction component and the corresponding action key in NoSelectionRecordActionKeys. The new action enhances user interaction by allowing sidebar modifications when in edit mode.
Updated the target ID validation logic in the WorkspaceDndKitProvider component to streamline the conditions for determining if the target ID is a string. This change enhances code readability and maintains the existing functionality.
# Introduction
Previously the auth jwt stragegy would lod the whole user entity in the
auth user context
On an exception it would completely get logged on the pods
## Security layer
- 0/ Updating the type system ( devxp only though )
- 1/ The jwt auth stragegy only load a specific sub set of the user
entity
- 2/ Sanitizing at the exception log level directly in case of a user
context
- 3/ Sanitizing at the console driver
The last two sanitization could sound a bit redundant though they're
still good fallback to keep in case new path occurs in the cb
Introduced a disableDrag prop to both the AddToNavigationDragHandle and CommandMenuItemWithAddToNavigationDrag components. This enhancement allows for improved control over drag interactions, enabling the disabling of drag functionality based on specific conditions. Updated styles to reflect the new prop, enhancing user experience and interaction clarity in the command menu.
Refactored the CommandMenuLinkInfo component to utilize the new LinkIconWithLinkOverlay component, enhancing the visual representation of links with an optional favicon. Additionally, modified the LinkIconWithLinkOverlay to improve favicon handling by tracking failed favicon links, ensuring better user experience and consistency in the navigation menu.
Introduced the LinkIconWithLinkOverlay component to display a link icon with an optional favicon overlay in the navigation menu. This component utilizes the getLinkFaviconUrl utility to fetch favicons based on provided links and integrates with the NavigationMenuItemIcon to enhance link item rendering. Additionally, updated NavigationMenuItemIcon to utilize the new component for link items, improving visual consistency and user experience.