pixel-react-excel-sheet 1.0.33 → 1.0.34

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "pixel-react-excel-sheet",
3
3
  "description": "Great for pixel-perfect, design-focused components in React",
4
- "version": "1.0.33",
4
+ "version": "1.0.34",
5
5
  "main": "lib/index.js",
6
6
  "module": "lib/index.esm.js",
7
7
  "types": "lib/index.d.ts",
@@ -1,5 +1,5 @@
1
1
  .ff-excel-menu {
2
- position: absolute;
2
+ position: fixed;
3
3
  border: 1px solid var(--option-card-border-color);
4
4
  background: var(--option-card-bg-color);
5
5
  border-radius: 4px;
@@ -5,13 +5,14 @@ import { ContextMenuState } from '../ExcelFile/ExcelFileComponents/types';
5
5
 
6
6
  type ExcelContextMenuProps = {
7
7
  contextMenu: ContextMenuState;
8
+ position:{ x: number; y: number }
8
9
  };
9
10
 
10
- const ExcelContextMenu: React.FC<ExcelContextMenuProps> = ({ contextMenu }) => {
11
+ const ExcelContextMenu: React.FC<ExcelContextMenuProps> = ({ contextMenu,position}) => {
11
12
  return (
12
13
  <div
13
14
  className="ff-excel-menu"
14
- style={{ left: contextMenu.position.x, top: contextMenu.position.y }}
15
+ style={{ left:position.x, top:position.y }}
15
16
  >
16
17
  {contextMenu.options.map((option) => (
17
18
  <div
@@ -84,6 +84,11 @@ const ExcelFile: React.FC<ExcelFileProps> = ({
84
84
  Matrix.Matrix<CellBase>
85
85
  >([[EmptyRow]]);
86
86
 
87
+ const [position, setPosition] = useState<{ x: number; y: number }>({
88
+ x: 0,
89
+ y: 0,
90
+ });
91
+
87
92
  const pageRef = useRef<string>('');
88
93
  const sheetRef = useRef<HTMLDivElement | null>(null);
89
94
 
@@ -427,11 +432,13 @@ const ExcelFile: React.FC<ExcelFileProps> = ({
427
432
  }
428
433
  });
429
434
 
435
+ setPosition({ x: event.clientX - 350, y: event.clientY });
436
+
430
437
  setContextMenu({
431
438
  open: true,
432
439
  position: {
433
- x: event.pageX,
434
- y: event.pageY,
440
+ x: event.clientX - 350,
441
+ y: event.clientY-500,
435
442
  },
436
443
  options: options,
437
444
  });
@@ -440,8 +447,13 @@ const ExcelFile: React.FC<ExcelFileProps> = ({
440
447
  return (
441
448
  <>
442
449
  {sheetNames.length > 0 && (
443
- <div style={{position:"relative"}}>
444
- <div ref={sheetRef} className="ff-excel-sheet">
450
+ <div
451
+ ref={sheetRef}
452
+ onContextMenu={(event)=>{ setPosition({ x: event.clientX - 350, y: event.clientY });
453
+ }}
454
+ style={{ position: 'relative' }}
455
+ >
456
+ <div className="ff-excel-sheet">
445
457
  <Spreadsheet
446
458
  sheetHeight={sheetHeight}
447
459
  setContextMenu={setContextMenu}
@@ -501,7 +513,7 @@ const ExcelFile: React.FC<ExcelFileProps> = ({
501
513
  ))}
502
514
  </div>
503
515
  </div>
504
- {contextMenu.open && <ExcelContextMenu contextMenu={contextMenu} />}
516
+ {contextMenu.open && <ExcelContextMenu contextMenu={contextMenu} position={position}/>}
505
517
  <Toastify />
506
518
  </div>
507
519
  )}