mirror of
https://github.com/lingble/twenty.git
synced 2025-10-30 12:22:29 +00:00
Feat : Toggle Eye Icon to Expand/Collapse Kanban Card (#7396)
This pull request implements the functionality to toggle the eye icon in Kanban cards to expand or collapse the card details. #7389 [toogle-button-in-kanban-card.webm](https://github.com/user-attachments/assets/3bc1a31c-4053-429a-95e7-aa98188c39e4) --------- Co-authored-by: Nitin Koche <nitinkoche03@gmail.com> Co-authored-by: Félix Malfait <felix@twenty.com>
This commit is contained in:
committed by
GitHub
parent
316b80ed78
commit
16f2033170
@@ -25,7 +25,8 @@ import styled from '@emotion/styled';
|
|||||||
import { ReactNode, useContext, useState } from 'react';
|
import { ReactNode, useContext, useState } from 'react';
|
||||||
import { useInView } from 'react-intersection-observer';
|
import { useInView } from 'react-intersection-observer';
|
||||||
import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil';
|
import { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil';
|
||||||
import { AvatarChipVariant, IconEye } from 'twenty-ui';
|
import { AvatarChipVariant, IconEye, IconEyeOff } from 'twenty-ui';
|
||||||
|
import { useDebouncedCallback } from 'use-debounce';
|
||||||
import { useAddNewCard } from '../../record-board-column/hooks/useAddNewCard';
|
import { useAddNewCard } from '../../record-board-column/hooks/useAddNewCard';
|
||||||
|
|
||||||
const StyledBoardCard = styled.div<{ selected: boolean }>`
|
const StyledBoardCard = styled.div<{ selected: boolean }>`
|
||||||
@@ -162,7 +163,7 @@ export const RecordBoardCard = ({
|
|||||||
} = useRecordBoardStates();
|
} = useRecordBoardStates();
|
||||||
const isCompactModeActive = useRecoilValue(isCompactModeActiveState);
|
const isCompactModeActive = useRecoilValue(isCompactModeActiveState);
|
||||||
|
|
||||||
const [isCardInCompactMode, setIsCardInCompactMode] = useState(true);
|
const [isCardExpanded, setIsCardExpanded] = useState(false);
|
||||||
|
|
||||||
const [isCurrentCardSelected, setIsCurrentCardSelected] = useRecoilState(
|
const [isCurrentCardSelected, setIsCurrentCardSelected] = useRecoilState(
|
||||||
isRecordBoardCardSelectedFamilyState(recordId),
|
isRecordBoardCardSelectedFamilyState(recordId),
|
||||||
@@ -201,11 +202,11 @@ export const RecordBoardCard = ({
|
|||||||
</StyledFieldContainer>
|
</StyledFieldContainer>
|
||||||
);
|
);
|
||||||
|
|
||||||
const onMouseLeaveBoard = () => {
|
const onMouseLeaveBoard = useDebouncedCallback(() => {
|
||||||
if (isCompactModeActive) {
|
if (isCompactModeActive && isCardExpanded) {
|
||||||
setIsCardInCompactMode(true);
|
setIsCardExpanded(false);
|
||||||
}
|
}
|
||||||
};
|
}, 800);
|
||||||
|
|
||||||
const useUpdateOneRecordHook: RecordUpdateHook = () => {
|
const useUpdateOneRecordHook: RecordUpdateHook = () => {
|
||||||
const updateEntity = ({ variables }: RecordUpdateHookParams) => {
|
const updateEntity = ({ variables }: RecordUpdateHookParams) => {
|
||||||
@@ -285,11 +286,11 @@ export const RecordBoardCard = ({
|
|||||||
{isCompactModeActive && (
|
{isCompactModeActive && (
|
||||||
<StyledCompactIconContainer className="compact-icon-container">
|
<StyledCompactIconContainer className="compact-icon-container">
|
||||||
<LightIconButton
|
<LightIconButton
|
||||||
Icon={IconEye}
|
Icon={isCardExpanded ? IconEyeOff : IconEye}
|
||||||
accent="tertiary"
|
accent="tertiary"
|
||||||
onClick={(e) => {
|
onClick={(e) => {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
setIsCardInCompactMode(false);
|
setIsCardExpanded((prev) => !prev);
|
||||||
}}
|
}}
|
||||||
/>
|
/>
|
||||||
</StyledCompactIconContainer>
|
</StyledCompactIconContainer>
|
||||||
@@ -310,7 +311,7 @@ export const RecordBoardCard = ({
|
|||||||
</StyledBoardCardHeader>
|
</StyledBoardCardHeader>
|
||||||
|
|
||||||
<AnimatedEaseInOut
|
<AnimatedEaseInOut
|
||||||
isOpen={!isCardInCompactMode || !isCompactModeActive}
|
isOpen={isCardExpanded || !isCompactModeActive}
|
||||||
initial={false}
|
initial={false}
|
||||||
>
|
>
|
||||||
<StyledBoardCardBody>
|
<StyledBoardCardBody>
|
||||||
|
|||||||
Reference in New Issue
Block a user