diff --git a/packages/core/src/locale/en.ts b/packages/core/src/locale/en.ts index 83f20867..785416a7 100644 --- a/packages/core/src/locale/en.ts +++ b/packages/core/src/locale/en.ts @@ -11094,6 +11094,11 @@ export default { confirmCellEditShortcut: "Confirm cell edit and move down: Enter.", moveRightShortcut: "Move right: Tab.", moveLeftShortcut: "Move left: Shift, Tab.", + contextMenuShortcut: "Open context menu: Control or Meta key, Shift, M.", + rowContextMenuShortcut: + "Open row header context menu: Control or Meta key, Shift, R.", + columnContextMenuShortcut: + "Open column header context menu: Control or Meta key, Shift, L.", shortcuts: "Keyboard Shortcuts", }, currencyDetail: [ @@ -11419,7 +11424,7 @@ export default { sortBy: "Sort by", addOthers: "Add another sort column", close: "close", - confirm: "sort", + confirm: "Sort", columnOperation: "Column", secondaryTitle: "then by", diff --git a/packages/core/src/locale/es.ts b/packages/core/src/locale/es.ts index 74887570..4f61a3cc 100644 --- a/packages/core/src/locale/es.ts +++ b/packages/core/src/locale/es.ts @@ -11069,6 +11069,11 @@ export default { "Confirmar edición de celda y mover hacia abajo: Enter.", moveRightShortcut: "Mover a la derecha: Tab.", moveLeftShortcut: "Mover a la izquierda: Shift, Tab.", + contextMenuShortcut: "Abrir menú contextual: Control o Meta, Shift, M.", + rowContextMenuShortcut: + "Abrir menú contextual de fila: Control o Meta, Shift, R.", + columnContextMenuShortcut: + "Abrir menú contextual de columna: Control o Meta, Shift, L.", shortcuts: "Atajos de teclado", }, currencyDetail: { @@ -11385,7 +11390,7 @@ export default { sortBy: "Ordenar por", addOthers: "Añadir otra columna de ordenación", close: "cerrar", - confirm: "ordenar", + confirm: "Ordenar", columnOperation: "Columna", secondaryTitle: "y después por", diff --git a/packages/core/src/locale/hi.ts b/packages/core/src/locale/hi.ts index dd8d9003..dd8cd386 100644 --- a/packages/core/src/locale/hi.ts +++ b/packages/core/src/locale/hi.ts @@ -11099,6 +11099,11 @@ export default { "Confirmar edición de celda y mover hacia abajo: Enter.", moveRightShortcut: "Mover a la derecha: Tab.", moveLeftShortcut: "Mover a la izquierda: Shift, Tab.", + contextMenuShortcut: "Open context menu: Control or Meta, Shift, M.", + rowContextMenuShortcut: + "Open row header context menu: Control or Meta, Shift, R.", + columnContextMenuShortcut: + "Open column header context menu: Control or Meta, Shift, L.", shortcuts: "कुंजीपटल अल्प मार्ग", }, currencyDetail: [ diff --git a/packages/core/src/locale/ru.ts b/packages/core/src/locale/ru.ts index 97c074e4..5e362da4 100644 --- a/packages/core/src/locale/ru.ts +++ b/packages/core/src/locale/ru.ts @@ -12975,6 +12975,12 @@ export default { "Подтвердить редактирование ячейки и перейти вниз: Enter.", moveRightShortcut: "Перейти вправо: Tab.", moveLeftShortcut: "Перейти влево: Shift, Tab.", + contextMenuShortcut: + "Открыть контекстное меню: Control или Meta, Shift, M.", + rowContextMenuShortcut: + "Открыть контекстное меню заголовка строки: Control или Meta, Shift, R.", + columnContextMenuShortcut: + "Открыть контекстное меню заголовка столбца: Control или Meta, Shift, L.", shortcuts: "Горячие клавиши", }, currencyDetail: [ diff --git a/packages/core/src/locale/zh.ts b/packages/core/src/locale/zh.ts index 8def8cd7..87d34567 100644 --- a/packages/core/src/locale/zh.ts +++ b/packages/core/src/locale/zh.ts @@ -11075,6 +11075,11 @@ export default { confirmCellEditShortcut: "确认编辑并向下移动: Enter。", moveRightShortcut: "向右移动: Tab。", moveLeftShortcut: "向左移动: Shift, Tab。", + contextMenuShortcut: "打开上下文菜单: Control 或 Meta 键, Shift, M。", + rowContextMenuShortcut: + "打开行标题上下文菜单: Control 或 Meta 键, Shift, R。", + columnContextMenuShortcut: + "打开列标题上下文菜单: Control 或 Meta 键, Shift, L。", shortcuts: "键盘快捷键", }, currencyDetail: [ diff --git a/packages/core/src/locale/zh_tw.ts b/packages/core/src/locale/zh_tw.ts index ab6f1291..ced6cf1b 100644 --- a/packages/core/src/locale/zh_tw.ts +++ b/packages/core/src/locale/zh_tw.ts @@ -11042,6 +11042,11 @@ export default { confirmCellEditShortcut: "確認編輯並向下移動: Enter。", moveRightShortcut: "向右移動: Tab。", moveLeftShortcut: "向左移動: Shift, Tab。", + contextMenuShortcut: "開啟內容選單: Control 或 Meta 鍵, Shift, M。", + rowContextMenuShortcut: + "開啟列標題內容選單: Control 或 Meta 鍵, Shift, R。", + columnContextMenuShortcut: + "開啟欄標題內容選單: Control 或 Meta 鍵, Shift, L。", shortcuts: "鍵盤快速鍵", }, currencyDetail: { diff --git a/packages/react/src/components/ContextMenu/Menu.tsx b/packages/react/src/components/ContextMenu/Menu.tsx index e855ee8a..7b093a4d 100644 --- a/packages/react/src/components/ContextMenu/Menu.tsx +++ b/packages/react/src/components/ContextMenu/Menu.tsx @@ -35,6 +35,19 @@ const Menu: React.FC = ({ ref={containerRef} className="luckysheet-cols-menuitem luckysheet-mousedown-cancel" onClick={(e) => onClick?.(e, containerRef.current!)} + onKeyDown={(e) => { + if (e.key === "Enter") { + if (e.repeat) return; + e.preventDefault(); + e.stopPropagation(); + containerRef.current?.dispatchEvent( + new MouseEvent("click", { + bubbles: true, + cancelable: true, + }) + ); + } + }} onMouseLeave={(e) => onMouseLeave?.(e, containerRef.current!)} onMouseEnter={(e) => onMouseEnter?.(e, containerRef.current!)} tabIndex={0} diff --git a/packages/react/src/components/ContextMenu/index.tsx b/packages/react/src/components/ContextMenu/index.tsx index 1ce1cfef..3423732f 100644 --- a/packages/react/src/components/ContextMenu/index.tsx +++ b/packages/react/src/components/ContextMenu/index.tsx @@ -96,13 +96,11 @@ const ContextMenu: React.FC = () => { : ["left", "right"].map((dir) => ( { + onClick={(_e, container) => { const position = context.luckysheet_select_save?.[0]?.column?.[0]; if (position == null) return; - const countStr = (e.target as HTMLDivElement).querySelector( - "input" - )?.value; + const countStr = container.querySelector("input")?.value; if (countStr == null) return; const count = parseInt(countStr, 10); if (count < 1) return; diff --git a/packages/react/src/components/CustomSort/index.css b/packages/react/src/components/CustomSort/index.css index 7db67faf..fddf41f7 100644 --- a/packages/react/src/components/CustomSort/index.css +++ b/packages/react/src/components/CustomSort/index.css @@ -8,6 +8,10 @@ margin: 0 0 16px; } +.fortune-sort-title-range { + margin: 0 4px; +} + .fortune-sort-modal > div { margin-bottom: 10px; } @@ -17,6 +21,10 @@ white-space: nowrap; } +.fortune-sort-by-select { + margin-left: 8px; +} + .fortune-sort-button { margin-top: 10px; margin-bottom: 25px; diff --git a/packages/react/src/components/CustomSort/index.tsx b/packages/react/src/components/CustomSort/index.tsx index 8c7a370a..b2a121a0 100644 --- a/packages/react/src/components/CustomSort/index.tsx +++ b/packages/react/src/components/CustomSort/index.tsx @@ -19,7 +19,7 @@ import { useDialog } from "../../hooks/useDialog"; type RadioChangeEvent = React.ChangeEvent; const CustomSort: React.FC<{}> = () => { - const [rangeColChar, setRangeColChar] = useState([]); + const [rangeColChar, setRangeColChar] = useState([]); const [ascOrDesc, setAscOrDesc] = useState(true); const { context, setContext } = useContext(WorkbookContext); const [selectedValue, setSelectedValue] = useState("0"); @@ -27,10 +27,20 @@ const CustomSort: React.FC<{}> = () => { const { sort } = locale(context); const { hideDialog } = useDialog(); + const handleSortConfirm = useCallback(() => { + setContext((draftCtx: Context) => { + sortSelection(draftCtx, ascOrDesc, parseInt(selectedValue, 10)); + draftCtx.contextMenu = {}; + }); + hideDialog(); + }, [ascOrDesc, hideDialog, selectedValue, setContext]); + const col_start = context.luckysheet_select_save![0].column[0]; const col_end = context.luckysheet_select_save![0].column[1]; const row_start = context.luckysheet_select_save![0].row[0]; const row_end = context.luckysheet_select_save![0].row[1]; + const startCell = `${indexToColumnChar(col_start)}${row_start + 1}`; + const endCell = `${indexToColumnChar(col_end)}${row_end + 1}`; const sheetIndex = getSheetIndex(context, context.currentSheetId) as number; @@ -87,13 +97,11 @@ const CustomSort: React.FC<{}> = () => { return (
- + {sort.sortRangeTitle} - {indexToColumnChar(col_start)} - {row_start + 1} + {startCell} {sort.sortRangeTitleTo} - {indexToColumnChar(col_end)} - {row_end + 1} + {endCell}
@@ -113,8 +121,15 @@ const CustomSort: React.FC<{}> = () => { - {sort.sortBy} - {rangeColChar.map((col, index) => { return (