fix: linked records redirection (#4312)

Closes: #4093 
---------

Co-authored-by: Félix Malfait <felix.malfait@gmail.com>
Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
Muralidhar 2024-04-04 14:31:33 +05:30 committed by GitHub
parent f58d855097
commit ff0db8d716
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 19 additions and 4 deletions

View File

@ -67,7 +67,12 @@ export const useApolloFactory = (options: Partial<Options<any>> = {}) => {
return apolloRef.current.getClient(); return apolloRef.current.getClient();
// eslint-disable-next-line react-hooks/exhaustive-deps // eslint-disable-next-line react-hooks/exhaustive-deps
}, [setTokenPair, isDebugMode, currentWorkspace?.currentCacheVersion, setPreviousUrl]); }, [
setTokenPair,
isDebugMode,
currentWorkspace?.currentCacheVersion,
setPreviousUrl,
]);
useUpdateEffect(() => { useUpdateEffect(() => {
if (isDefined(apolloRef.current)) { if (isDefined(apolloRef.current)) {

View File

@ -11,6 +11,7 @@ import { useDropdown } from '@/ui/layout/dropdown/hooks/useDropdown';
import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem'; import { MenuItem } from '@/ui/navigation/menu-item/components/MenuItem';
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope'; import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
import { UPDATE_VIEW_BUTTON_DROPDOWN_ID } from '@/views/constants/UpdateViewButtonDropdownId'; import { UPDATE_VIEW_BUTTON_DROPDOWN_ID } from '@/views/constants/UpdateViewButtonDropdownId';
import { useViewFromQueryParams } from '@/views/hooks/internal/useViewFromQueryParams';
import { useViewStates } from '@/views/hooks/internal/useViewStates'; import { useViewStates } from '@/views/hooks/internal/useViewStates';
import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView';
import { useSaveCurrentViewFiltersAndSorts } from '@/views/hooks/useSaveCurrentViewFiltersAndSorts'; import { useSaveCurrentViewFiltersAndSorts } from '@/views/hooks/useSaveCurrentViewFiltersAndSorts';
@ -74,7 +75,11 @@ export const UpdateViewButtonGroup = ({
await saveCurrentViewFilterAndSorts(); await saveCurrentViewFilterAndSorts();
}; };
if (!canPersistView) { const { hasFiltersQueryParams } = useViewFromQueryParams();
const canShowButton = canPersistView && !hasFiltersQueryParams;
if (!canShowButton) {
return <></>; return <></>;
} }

View File

@ -8,6 +8,7 @@ import { DropdownScope } from '@/ui/layout/dropdown/scopes/DropdownScope';
import { EditableFilterDropdownButton } from '@/views/components/EditableFilterDropdownButton'; import { EditableFilterDropdownButton } from '@/views/components/EditableFilterDropdownButton';
import { EditableSortChip } from '@/views/components/EditableSortChip'; import { EditableSortChip } from '@/views/components/EditableSortChip';
import { ViewBarFilterEffect } from '@/views/components/ViewBarFilterEffect'; import { ViewBarFilterEffect } from '@/views/components/ViewBarFilterEffect';
import { useViewFromQueryParams } from '@/views/hooks/internal/useViewFromQueryParams';
import { useViewStates } from '@/views/hooks/internal/useViewStates'; import { useViewStates } from '@/views/hooks/internal/useViewStates';
import { useGetCurrentView } from '@/views/hooks/useGetCurrentView'; import { useGetCurrentView } from '@/views/hooks/useGetCurrentView';
import { useResetCurrentView } from '@/views/hooks/useResetCurrentView'; import { useResetCurrentView } from '@/views/hooks/useResetCurrentView';
@ -105,6 +106,7 @@ export const ViewBarDetails = ({
const { currentViewWithCombinedFiltersAndSorts } = useGetCurrentView(); const { currentViewWithCombinedFiltersAndSorts } = useGetCurrentView();
const isViewBarExpanded = useRecoilValue(isViewBarExpandedState); const isViewBarExpanded = useRecoilValue(isViewBarExpandedState);
const { hasFiltersQueryParams } = useViewFromQueryParams();
const canPersistView = useRecoilValue(canPersistViewSelector()); const canPersistView = useRecoilValue(canPersistViewSelector());
const availableFilterDefinitions = useRecoilValue( const availableFilterDefinitions = useRecoilValue(
availableFilterDefinitionsState, availableFilterDefinitionsState,
@ -114,6 +116,7 @@ export const ViewBarDetails = ({
); );
const { resetCurrentView } = useResetCurrentView(); const { resetCurrentView } = useResetCurrentView();
const canResetView = canPersistView && !hasFiltersQueryParams;
const handleCancelClick = () => { const handleCancelClick = () => {
resetCurrentView(); resetCurrentView();
@ -176,7 +179,7 @@ export const ViewBarDetails = ({
</StyledAddFilterContainer> </StyledAddFilterContainer>
)} )}
</StyledFilterContainer> </StyledFilterContainer>
{canPersistView && ( {canResetView && (
<StyledCancelButton <StyledCancelButton
data-testid="cancel-button" data-testid="cancel-button"
onClick={handleCancelClick} onClick={handleCancelClick}

View File

@ -59,7 +59,9 @@ export const useViewFromQueryParams = () => {
[queryParamsValidation], [queryParamsValidation],
); );
const hasFiltersQueryParams = filterQueryParams; const hasFiltersQueryParams =
isDefined(filterQueryParams) &&
Object.entries(filterQueryParams).length > 0;
const getFiltersFromQueryParams = useRecoilCallback( const getFiltersFromQueryParams = useRecoilCallback(
({ snapshot }) => ({ snapshot }) =>