diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx
index 1114ef393..5a0b54bda 100644
--- a/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx
+++ b/front/src/modules/ui/table/editable-cell/components/EditableCell.tsx
@@ -1,9 +1,6 @@
import { ReactElement, useState } from 'react';
import styled from '@emotion/styled';
-import { motion } from 'framer-motion';
-import { FloatingIconButton } from '@/ui/button/components/FloatingIconButton';
-import { IconPencil } from '@/ui/icon';
import { HotkeyScope } from '@/ui/utilities/hotkey/types/HotkeyScope';
import { CellHotkeyScopeContext } from '../../contexts/CellHotkeyScopeContext';
@@ -14,14 +11,10 @@ import { useIsSoftFocusOnCurrentCell } from '../hooks/useIsSoftFocusOnCurrentCel
import { useSetSoftFocusOnCurrentCell } from '../hooks/useSetSoftFocusOnCurrentCell';
import { EditableCellDisplayMode } from './EditableCellDisplayMode';
+import { EditableCellEditButton } from './EditableCellEditButton';
import { EditableCellEditMode } from './EditableCellEditMode';
import { EditableCellSoftFocusMode } from './EditableCellSoftFocusMode';
-const StyledEditButtonContainer = styled(motion.div)`
- position: absolute;
- right: 5px;
-`;
-
const StyledCellBaseContainer = styled.div`
align-items: center;
box-sizing: border-box;
@@ -102,27 +95,20 @@ export function EditableCell({
{editModeContent}
) : hasSoftFocus ? (
-
- {nonEditModeContent}
-
+ <>
+ {showEditButton && (
+
+ )}
+
+ {nonEditModeContent}
+
+ >
) : (
<>
{showEditButton && (
-
-
-
+
)}
-
-
+
{nonEditModeContent}
>
diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx
index 8788f29a0..52d8b7352 100644
--- a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx
+++ b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayContainer.tsx
@@ -5,10 +5,11 @@ export type EditableCellDisplayContainerProps = {
softFocus?: boolean;
onClick?: () => void;
scrollRef?: Ref;
+ isHovered?: boolean;
};
const StyledEditableCellDisplayModeOuterContainer = styled.div<
- Pick
+ Pick
>`
align-items: center;
display: flex;
@@ -20,7 +21,7 @@ const StyledEditableCellDisplayModeOuterContainer = styled.div<
width: 100%;
${(props) =>
- props.softFocus
+ props.softFocus || props.isHovered
? `background: ${props.theme.background.transparent.secondary};
border-radius: ${props.theme.border.radius.sm};
box-shadow: inset 0 0 0 1px ${props.theme.font.color.extraLight};`
@@ -40,6 +41,7 @@ export function EditableCellDisplayContainer({
softFocus,
onClick,
scrollRef,
+ isHovered,
}: React.PropsWithChildren) {
return (
diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx
index fff2ca11e..4729a7e01 100644
--- a/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx
+++ b/front/src/modules/ui/table/editable-cell/components/EditableCellDisplayMode.tsx
@@ -5,7 +5,8 @@ import { EditableCellDisplayContainer } from './EditableCellDisplayContainer';
export function EditableCellDisplayMode({
children,
-}: React.PropsWithChildren) {
+ isHovered,
+}: React.PropsWithChildren & { isHovered?: boolean }) {
const setSoftFocusOnCurrentCell = useSetSoftFocusOnCurrentCell();
const { openEditableCell } = useEditableCell();
@@ -16,7 +17,7 @@ export function EditableCellDisplayMode({
}
return (
-
+
{children}
);
diff --git a/front/src/modules/ui/table/editable-cell/components/EditableCellEditButton.tsx b/front/src/modules/ui/table/editable-cell/components/EditableCellEditButton.tsx
new file mode 100644
index 000000000..d3e84812c
--- /dev/null
+++ b/front/src/modules/ui/table/editable-cell/components/EditableCellEditButton.tsx
@@ -0,0 +1,29 @@
+import styled from '@emotion/styled';
+import { motion } from 'framer-motion';
+
+import { FloatingIconButton } from '@/ui/button/components/FloatingIconButton';
+import { IconPencil } from '@/ui/icon';
+
+const StyledEditButtonContainer = styled(motion.div)`
+ position: absolute;
+ right: 5px;
+`;
+
+type EditableCellEditButtonProps = {
+ onClick?: () => void;
+};
+
+export function EditableCellEditButton({
+ onClick,
+}: EditableCellEditButtonProps) {
+ return (
+
+
+
+ );
+}