Fixed Custom Icon Persistance Across New View Creations (#9070)

closes #8714
This commit is contained in:
nitin
2024-12-17 16:42:34 +05:30
committed by GitHub
parent 1f4d1358a1
commit ac2894c87c
2 changed files with 29 additions and 7 deletions

View File

@ -30,7 +30,7 @@ import { viewPickerIsPersistingComponentState } from '@/views/view-picker/states
import { viewPickerKanbanFieldMetadataIdComponentState } from '@/views/view-picker/states/viewPickerKanbanFieldMetadataIdComponentState';
import { viewPickerSelectedIconComponentState } from '@/views/view-picker/states/viewPickerSelectedIconComponentState';
import { viewPickerTypeComponentState } from '@/views/view-picker/states/viewPickerTypeComponentState';
import { useState } from 'react';
import { useMemo, useState } from 'react';
const StyledNoKanbanFieldAvailableContainer = styled.div`
color: ${({ theme }) => theme.font.color.light};
@ -41,7 +41,7 @@ const StyledNoKanbanFieldAvailableContainer = styled.div`
`;
export const ViewPickerContentCreateMode = () => {
const { setViewPickerMode } = useViewPickerMode();
const { viewPickerMode, setViewPickerMode } = useViewPickerMode();
const [hasManuallySelectedIcon, setHasManuallySelectedIcon] = useState(false);
const [viewPickerInputName, setViewPickerInputName] =
@ -92,9 +92,20 @@ export const ViewPickerContentCreateMode = () => {
const defaultIcon =
viewPickerType === ViewType.Kanban ? 'IconLayoutKanban' : 'IconTable';
const selectedIcon = hasManuallySelectedIcon
? viewPickerSelectedIcon
: defaultIcon;
const selectedIcon = useMemo(() => {
if (hasManuallySelectedIcon) {
return viewPickerSelectedIcon;
}
if (viewPickerMode === 'create-from-current') {
return viewPickerSelectedIcon || defaultIcon;
}
return defaultIcon;
}, [
hasManuallySelectedIcon,
viewPickerSelectedIcon,
viewPickerMode,
defaultIcon,
]);
const onIconChange = ({ iconKey }: { iconKey: string }) => {
setViewPickerIsDirty(true);