Fix(view): Create Button is not visible when creating Kanban View (#5969)
Closes #5915 This issue occurs only when there is no select field. The user then creates a new one in settings and returns back to the view picker. And the bug arises, it because `viewPickerKanbanFieldMetadataId` is not being set correctly. When a user navigate to settings, the dirty state should be set to false. As a result, after re-rendering the view picker component, it triggers the effect to set `viewPickerKanbanFieldMetadataId` --------- Co-authored-by: Achsan <achsanh@gmail.com> Co-authored-by: Lucas Bordeau <bordeau.lucas@gmail.com>
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import { useTheme } from '@emotion/react';
|
||||
import styled from '@emotion/styled';
|
||||
import { useRecoilValue } from 'recoil';
|
||||
import { useRecoilValue, useSetRecoilState } from 'recoil';
|
||||
import {
|
||||
IconChevronDown,
|
||||
IconList,
|
||||
@ -19,6 +19,7 @@ import { ViewPickerListContent } from '@/views/view-picker/components/ViewPicker
|
||||
import { VIEW_PICKER_DROPDOWN_ID } from '@/views/view-picker/constants/ViewPickerDropdownId';
|
||||
import { useViewPickerMode } from '@/views/view-picker/hooks/useViewPickerMode';
|
||||
import { useViewPickerPersistView } from '@/views/view-picker/hooks/useViewPickerPersistView';
|
||||
import { useViewPickerStates } from '@/views/view-picker/hooks/useViewPickerStates';
|
||||
import { isDefined } from '~/utils/isDefined';
|
||||
|
||||
import { useViewStates } from '../../hooks/internal/useViewStates';
|
||||
@ -52,6 +53,8 @@ export const ViewPickerDropdown = () => {
|
||||
|
||||
const { entityCountInCurrentViewState } = useViewStates();
|
||||
|
||||
const { viewPickerIsDirtyState } = useViewPickerStates();
|
||||
|
||||
const { currentViewWithCombinedFiltersAndSorts } = useGetCurrentView();
|
||||
|
||||
const { handleUpdate } = useViewPickerPersistView();
|
||||
@ -60,6 +63,8 @@ export const ViewPickerDropdown = () => {
|
||||
entityCountInCurrentViewState,
|
||||
);
|
||||
|
||||
const setViewPickerIsDirty = useSetRecoilState(viewPickerIsDirtyState);
|
||||
|
||||
const { isDropdownOpen: isViewsListDropdownOpen } = useDropdown(
|
||||
VIEW_PICKER_DROPDOWN_ID,
|
||||
);
|
||||
@ -70,6 +75,7 @@ export const ViewPickerDropdown = () => {
|
||||
const CurrentViewIcon = getIcon(currentViewWithCombinedFiltersAndSorts?.icon);
|
||||
|
||||
const handleClickOutside = async () => {
|
||||
setViewPickerIsDirty(false);
|
||||
if (isViewsListDropdownOpen && viewPickerMode === 'edit') {
|
||||
await handleUpdate();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user