diff --git a/packages/core/src/events/keyboard.ts b/packages/core/src/events/keyboard.ts index bf1e5baa..7262146c 100644 --- a/packages/core/src/events/keyboard.ts +++ b/packages/core/src/events/keyboard.ts @@ -155,13 +155,13 @@ function handleControlPlusArrowKey( e: KeyboardEvent, shiftPressed: boolean ) { - if (ctx.luckysheetCellUpdate.length > 0) return; + // if (ctx.luckysheetCellUpdate.length > 0) return; const idx = getSheetIndex(ctx, ctx.currentSheetId); - if (_.isNil(idx)) return; + // if (_.isNil(idx)) return; const file = ctx.luckysheetfile[idx]; - if (!file || !file.row || !file.column) return; + // if (!file || !file.row || !file.column) return; const maxRow = file.row; const maxCol = file.column; let last; @@ -603,12 +603,10 @@ export function handleArrowKey(ctx: Context, e: KeyboardEvent) { // handling for inputbox active arrow navigation for cell reference input for functions like SUM(A1:A10) if ( - lastSpan?.innerText.includes(")") || - lastSpan?.innerText.includes('"') || - (notFunctionInit && - /^[a-zA-Z]+$/.test(lastSpan?.innerText) && - !_.includes(["="], lastSpan?.innerText)) || - /^[a-zA-Z]+$/.test(lastSpan?.innerText) + true + // lastSpan?.innerText.includes(")") || + // lastSpan?.innerText.includes('"') || + // notFunctionInit ) { return; } diff --git a/packages/core/src/events/mouse.ts b/packages/core/src/events/mouse.ts index faa5be66..f6b61f30 100644 --- a/packages/core/src/events/mouse.ts +++ b/packages/core/src/events/mouse.ts @@ -374,14 +374,10 @@ export function handleCellAreaMouseDown( const lastSpan = spans[spans.length - 1]; if ( - (ctx.formulaCache.rangestart || - ctx.formulaCache.rangedrag_column_start || - ctx.formulaCache.rangedrag_row_start || - israngeseleciton(ctx) || - (firstSpan?.innerText.includes("=") && - !lastSpan?.innerText.includes(")"))) && - lastSpan && - ctx.luckysheetCellUpdate.length === 2 + ctx.formulaCache.rangestart || + ctx.formulaCache.rangedrag_column_start || + ctx.formulaCache.rangedrag_row_start || + israngeseleciton(ctx) ) { // 公式选区 let rowseleted = [row_index, row_index_ed]; diff --git a/packages/react/src/components/SheetOverlay/InputBox.tsx b/packages/react/src/components/SheetOverlay/InputBox.tsx index 71dd29f8..e5714880 100644 --- a/packages/react/src/components/SheetOverlay/InputBox.tsx +++ b/packages/react/src/components/SheetOverlay/InputBox.tsx @@ -22,6 +22,7 @@ import { handleUnderline, handleStrikeThrough, getRangeRectsByCharacterOffset, + rangeSetValue, } from "@fileverse-dev/fortune-core"; import React, { useContext, @@ -32,7 +33,7 @@ import React, { useLayoutEffect, useState, } from "react"; -import _ from "lodash"; +import _, { set } from "lodash"; import { Tooltip } from "@fileverse/ui"; import WorkbookContext from "../../context"; import ContentEditable from "./ContentEditable"; @@ -377,6 +378,26 @@ const InputBox: React.FC = () => { event.preventDefault(); }; + useEffect(() => { + if (!context.luckysheet_select_save?.[0]?.row) return; + console.log("InputBox useEffect triggered", rangeSetValue); + setContext((ctx) => { + rangeSetValue?.( + ctx, + refs.cellInput.current!, + { + row: ctx.luckysheet_select_save?.[0]?.row, + column: ctx.luckysheet_select_save?.[0]?.column, + }, + refs.fxInput.current! + ); + }); + }, [ + context.luckysheet_select_save, + context.rangeDialog?.show, + isInputBoxActive, + ]); + const onKeyDown = useCallback( (e: React.KeyboardEvent) => { lastKeyDownEventRef.current = new KeyboardEvent(e.type, e.nativeEvent); @@ -477,14 +498,13 @@ const InputBox: React.FC = () => { !arrowRefNotAllowed && !/^[a-zA-Z]+$/.test(lastSpan?.innerText) ) { - allowListNavigation = false; - inputRef.current!.innerHTML = `${ - inputRef.current!.innerHTML - }${refCell}`; - - setTimeout(() => { - moveCursorToEnd(inputRef.current!); - }, 1); + // allowListNavigation = false; + // inputRef.current!.innerHTML = `${ + // inputRef.current!.innerHTML + // }${refCell}`; + // setTimeout(() => { + // moveCursorToEnd(inputRef.current!); + // }, 1); } if (isLetterNumberPattern(lastSpan?.innerText)) {