From 20895f1129f14bdf5b216b534104dd68ee067d76 Mon Sep 17 00:00:00 2001 From: Charles Bochet Date: Mon, 7 Apr 2025 19:18:05 +0200 Subject: [PATCH] Fix views reordering (#11431) As per title --- ...iewsFromObjectMetadataItemFamilySelector.ts | 6 +++--- .../components/ViewPickerListContent.tsx | 18 +++++++++++------- .../src/pages/onboarding/ChooseYourPlan.tsx | 7 ++++--- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/packages/twenty-front/src/modules/prefetch/states/selector/prefetchViewsFromObjectMetadataItemFamilySelector.ts b/packages/twenty-front/src/modules/prefetch/states/selector/prefetchViewsFromObjectMetadataItemFamilySelector.ts index 902d4c66c..973977fdf 100644 --- a/packages/twenty-front/src/modules/prefetch/states/selector/prefetchViewsFromObjectMetadataItemFamilySelector.ts +++ b/packages/twenty-front/src/modules/prefetch/states/selector/prefetchViewsFromObjectMetadataItemFamilySelector.ts @@ -11,8 +11,8 @@ export const prefetchViewsFromObjectMetadataItemFamilySelector = selectorFamily< ({ objectMetadataItemId }) => ({ get }) => { const views = get(prefetchViewsState); - return views.filter( - (view) => view.objectMetadataId === objectMetadataItemId, - ); + return views + .filter((view) => view.objectMetadataId === objectMetadataItemId) + .sort((a, b) => a.position - b.position); }, }); diff --git a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx index 8574c41d7..5c2ba7198 100644 --- a/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx +++ b/packages/twenty-front/src/modules/views/view-picker/components/ViewPickerListContent.tsx @@ -20,9 +20,9 @@ import { viewPickerReferenceViewIdComponentState } from '@/views/view-picker/sta import { useLingui } from '@lingui/react/macro'; import { useRecoilValue } from 'recoil'; import { isDefined } from 'twenty-shared/utils'; -import { moveArrayItem } from '~/utils/array/moveArrayItem'; import { IconPlus } from 'twenty-ui/display'; import { MenuItem } from 'twenty-ui/navigation'; +import { moveArrayItem } from '~/utils/array/moveArrayItem'; const StyledBoldDropdownMenuItemsContainer = styled(DropdownMenuItemsContainer)` font-weight: ${({ theme }) => theme.font.weight.regular}; @@ -74,17 +74,21 @@ export const ViewPickerListContent = () => { }; const handleDragEnd = useCallback( - (result: DropResult) => { + async (result: DropResult) => { if (!result.destination) return; - moveArrayItem(viewsOnCurrentObject, { + const viewsReordered = moveArrayItem(viewsOnCurrentObject, { fromIndex: result.source.index, toIndex: result.destination.index, - }).forEach((view, index) => { - if (view.position !== index) { - updateView({ ...view, position: index }); - } }); + + Promise.all( + viewsReordered.map(async (view, index) => { + if (view.position !== index) { + await updateView({ ...view, position: index }); + } + }), + ); }, [updateView, viewsOnCurrentObject], ); diff --git a/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx b/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx index a8ddede41..d126486f0 100644 --- a/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx +++ b/packages/twenty-front/src/pages/onboarding/ChooseYourPlan.tsx @@ -181,6 +181,9 @@ export const ChooseYourPlan = () => { ? BillingPlanKey.ENTERPRISE : BillingPlanKey.PRO; + const planName = plans?.plans.find((plan) => plan.planKey === currentPlan) + ?.baseProduct.name; + return ( <> {isDefined(baseProductPrice) && isDefined(billing) ? ( @@ -191,9 +194,7 @@ export const ChooseYourPlan = () => { : t`Get your subscription`} {hasWithoutCreditCardTrialPeriod ? ( - - Cancel anytime - + {planName} ) : ( withCreditCardTrialPeriod && (