Skip to content

Commit b6436e9

Browse files
committed
fix long name editing bug
1 parent 8d06b03 commit b6436e9

2 files changed

Lines changed: 12 additions & 5 deletions

File tree

frontend/app/store/global.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -547,6 +547,7 @@ function getAllBlockComponentModels(): BlockComponentModel[] {
547547

548548
function getFocusedBlockId(): string {
549549
const layoutModel = getLayoutModelForStaticTab();
550+
if (layoutModel?.focusedNode == null) return null;
550551
const focusedLayoutNode = globalStore.get(layoutModel.focusedNode);
551552
return focusedLayoutNode?.data?.blockId;
552553
}

frontend/app/tab/tab.tsx

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,10 @@ const TabV = forwardRef<HTMLDivElement, TabVProps>((props, ref) => {
106106
onRename,
107107
renameRef,
108108
} = props;
109-
const [originalName, setOriginalName] = useState(tabName);
109+
const MaxTabNameLength = 14;
110+
const truncateTabName = (name: string) => [...(name ?? "")].slice(0, MaxTabNameLength).join("");
111+
const displayName = truncateTabName(tabName);
112+
const [originalName, setOriginalName] = useState(displayName);
110113
const [isEditable, setIsEditable] = useState(false);
111114

112115
const editableRef = useRef<HTMLDivElement>(null);
@@ -116,7 +119,7 @@ const TabV = forwardRef<HTMLDivElement, TabVProps>((props, ref) => {
116119
useImperativeHandle(ref, () => tabRef.current as HTMLDivElement);
117120

118121
useEffect(() => {
119-
setOriginalName(tabName);
122+
setOriginalName(truncateTabName(tabName));
120123
}, [tabName]);
121124

122125
useEffect(() => {
@@ -192,8 +195,11 @@ const TabV = forwardRef<HTMLDivElement, TabVProps>((props, ref) => {
192195
event.preventDefault();
193196
event.stopPropagation();
194197
} else if (curLen >= 14 && !["Backspace", "Delete", "ArrowLeft", "ArrowRight"].includes(event.key)) {
195-
event.preventDefault();
196-
event.stopPropagation();
198+
const selection = window.getSelection();
199+
if (!selection || selection.isCollapsed) {
200+
event.preventDefault();
201+
event.stopPropagation();
202+
}
197203
}
198204
};
199205

@@ -233,7 +239,7 @@ const TabV = forwardRef<HTMLDivElement, TabVProps>((props, ref) => {
233239
onKeyDown={handleKeyDown}
234240
suppressContentEditableWarning={true}
235241
>
236-
{tabName}
242+
{displayName}
237243
</div>
238244
<TabBadges badges={badges} flagColor={flagColor} />
239245
<Button

0 commit comments

Comments
 (0)