Various fixes (#11448)

# Scrollbar fix

Fixes https://github.com/twentyhq/twenty/issues/11403

<img width="1512" alt="image"
src="https://github.com/user-attachments/assets/b13fe0f2-8c61-4ea8-9ea1-e61e571a90da"
/>

---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
This commit is contained in:
Charles Bochet
2025-04-09 01:03:43 +02:00
committed by GitHub
parent ab63214efa
commit b6e344e7be
41 changed files with 265 additions and 470 deletions

View File

@ -10,7 +10,7 @@ import { ClientConfigProviderEffect } from '@/client-config/components/ClientCon
import { MainContextStoreProvider } from '@/context-store/components/MainContextStoreProvider';
import { PromiseRejectionEffect } from '@/error-handler/components/PromiseRejectionEffect';
import { ApolloMetadataClientProvider } from '@/object-metadata/components/ApolloMetadataClientProvider';
import { ObjectMetadataItemsGater } from '@/object-metadata/components/ObjectMetadataItemsGater';
import { ObjectMetadataItemsLoadEffect } from '@/object-metadata/components/ObjectMetadataItemsLoadEffect';
import { ObjectMetadataItemsProvider } from '@/object-metadata/components/ObjectMetadataItemsProvider';
import { PrefetchDataProvider } from '@/prefetch/components/PrefetchDataProvider';
import { DialogManager } from '@/ui/feedback/dialog-manager/components/DialogManager';
@ -45,28 +45,27 @@ export const AppRouterProviders = () => {
<UserProvider>
<AuthProvider>
<ApolloMetadataClientProvider>
<ObjectMetadataItemsLoadEffect />
<ObjectMetadataItemsProvider>
<ObjectMetadataItemsGater>
<PrefetchDataProvider>
<UserThemeProviderEffect />
<SnackBarProvider>
<DialogManagerScope dialogManagerScopeId="dialog-manager">
<DialogManager>
<StrictMode>
<PromiseRejectionEffect />
<GotoHotkeysEffectsProvider />
<ServerPreconnect />
<PageTitle title={pageTitle} />
<PageFavicon />
<Outlet />
</StrictMode>
</DialogManager>
</DialogManagerScope>
</SnackBarProvider>
<MainContextStoreProvider />
</PrefetchDataProvider>
<PageChangeEffect />
</ObjectMetadataItemsGater>
<PrefetchDataProvider>
<UserThemeProviderEffect />
<SnackBarProvider>
<DialogManagerScope dialogManagerScopeId="dialog-manager">
<DialogManager>
<StrictMode>
<PromiseRejectionEffect />
<GotoHotkeysEffectsProvider />
<ServerPreconnect />
<PageTitle title={pageTitle} />
<PageFavicon />
<Outlet />
</StrictMode>
</DialogManager>
</DialogManagerScope>
</SnackBarProvider>
<MainContextStoreProvider />
</PrefetchDataProvider>
<PageChangeEffect />
</ObjectMetadataItemsProvider>
</ApolloMetadataClientProvider>
</AuthProvider>

View File

@ -1,5 +1,6 @@
import { useEffect, useState } from 'react';
import {
createSearchParams,
matchPath,
useLocation,
useNavigate,
@ -60,15 +61,27 @@ export const PageChangeEffect = () => {
}, [location, previousLocation]);
const [searchParams] = useSearchParams();
const navigationParams = searchParams.get('animateModal')
? `?animateModal=${searchParams.get('animateModal')}`
: '';
useEffect(() => {
if (isDefined(pageChangeEffectNavigateLocation)) {
navigate(pageChangeEffectNavigateLocation + navigationParams);
const hasQueryParams = pageChangeEffectNavigateLocation.includes('?');
const navigationParams = createSearchParams({
...(searchParams.get('animateModal')
? { animateModal: searchParams.get('animateModal') ?? 'false' }
: {}),
});
if (hasQueryParams) {
navigate(pageChangeEffectNavigateLocation);
} else {
navigate({
pathname: pageChangeEffectNavigateLocation,
search: navigationParams.toString(),
});
}
}
}, [navigate, pageChangeEffectNavigateLocation, navigationParams]);
}, [navigate, pageChangeEffectNavigateLocation, searchParams]);
useEffect(() => {
const isLeavingRecordIndexPage = !!matchPath(