@electerm/electerm-react 3.15.32 → 3.15.35

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.
@@ -537,7 +537,7 @@ export default class SessionWrapper extends Component {
537
537
  }
538
538
 
539
539
  renderKeepaliveIcon = () => {
540
- if (this.isSshDisabled() || !this.props.tab.authType) {
540
+ if (this.isSshDisabled()) {
541
541
  return null
542
542
  }
543
543
  const { keepaliveEnabled } = this.state
@@ -27,7 +27,6 @@ import {
27
27
  paneMap,
28
28
  isMac, maxEditFileSize, ctrlOrCmd
29
29
  } from '../../common/constants'
30
- import findParent from '../../common/find-parent'
31
30
  import sorter from '../../common/index-sorter'
32
31
  import { getFolderFromFilePath, getLocalFileInfo } from './file-read'
33
32
  import { readClipboard, copy as copyToClipboard, hasFileInClipboardText } from '../../common/clipboard'
@@ -192,33 +191,6 @@ export default class FileSection extends React.Component {
192
191
  this.props.addTransferList(res)
193
192
  }
194
193
 
195
- onDrag = () => {}
196
-
197
- onDragEnter = e => {
198
- let { target } = e
199
- target = findParent(target, '.' + fileItemCls)
200
- if (!target) {
201
- return e.preventDefault()
202
- }
203
- this.dropTarget = target
204
- target.classList.add(onDragOverCls)
205
- }
206
-
207
- onDragExit = () => {}
208
-
209
- onDragLeave = e => {
210
- let { target } = e
211
- target = findParent(target, '.' + fileItemCls)
212
- if (!target) {
213
- return e.preventDefault()
214
- }
215
- target.classList.remove(onDragOverCls)
216
- }
217
-
218
- onDragOver = e => {
219
- e.preventDefault()
220
- }
221
-
222
194
  onDragStart = e => {
223
195
  this.props.modifier({
224
196
  onDrag: true
@@ -248,6 +220,16 @@ export default class FileSection extends React.Component {
248
220
  return getDropFileList(data)
249
221
  }
250
222
 
223
+ onDragEnd = () => {
224
+ this.props.modifier({
225
+ onDrag: false
226
+ })
227
+ removeClass(this.domRef.current, onDragCls, onMultiDragCls)
228
+ document.querySelectorAll('.' + onDragOverCls).forEach((d) => {
229
+ removeClass(d, onDragOverCls)
230
+ })
231
+ }
232
+
251
233
  onDrop = async e => {
252
234
  e.preventDefault()
253
235
  const fromFileManager = !!e?.dataTransfer?.files?.length
@@ -279,17 +261,6 @@ export default class FileSection extends React.Component {
279
261
  this.onDropFile(fromFiles, toFile, fromFileManager)
280
262
  }
281
263
 
282
- onDragEnd = e => {
283
- this.props.modifier({
284
- onDrag: false
285
- })
286
- removeClass(this.domRef.current, onDragCls, onMultiDragCls)
287
- document.querySelectorAll('.' + onDragOverCls).forEach((d) => {
288
- removeClass(d, onDragOverCls)
289
- })
290
- e && e.dataTransfer && e.dataTransfer.clearData()
291
- }
292
-
293
264
  onDropFile = async (fromFiles, toFile, fromFileManager) => {
294
265
  const { type: fromType } = fromFiles[0]
295
266
  const {
@@ -1297,15 +1268,7 @@ export default class FileSection extends React.Component {
1297
1268
  const props = {
1298
1269
  className,
1299
1270
  draggable: draggable && !isParent,
1300
- ...pick(this, [
1301
- 'onDrag',
1302
- 'onDragEnter',
1303
- 'onDragExit',
1304
- 'onDragLeave',
1305
- 'onDragOver',
1306
- 'onDrop',
1307
- 'onDragEnd'
1308
- ]),
1271
+ onDrop: this.onDrop,
1309
1272
  onDragStart: onDragStart || this.onDragStart,
1310
1273
  'data-id': id,
1311
1274
  id: this.id,
@@ -13,8 +13,14 @@ import {
13
13
  } from '@ant-design/icons'
14
14
  import IconHolder from '../sys-menu/icon-holder'
15
15
  import { filesRef } from '../common/ref'
16
+ import findParent from '../../common/find-parent'
17
+ import { removeClass } from '../../common/class'
16
18
 
17
19
  const e = window.translate
20
+ const fileItemCls = 'sftp-item'
21
+ const onDragCls = 'sftp-ondrag'
22
+ const onDragOverCls = 'sftp-dragover'
23
+ const onMultiDragCls = 'sftp-dragover-multi'
18
24
 
19
25
  export default class FileListTable extends Component {
20
26
  constructor (props) {
@@ -27,6 +33,67 @@ export default class FileListTable extends Component {
27
33
 
28
34
  containerRef = createRef()
29
35
 
36
+ onDragOver = e => {
37
+ e.preventDefault()
38
+ }
39
+
40
+ onDragEnter = e => {
41
+ let { target } = e
42
+ target = findParent(target, '.' + fileItemCls)
43
+ if (!target) {
44
+ return e.preventDefault()
45
+ }
46
+ if (this.dropTarget && this.dropTarget !== target) {
47
+ this.dropTarget.classList.remove(onDragOverCls)
48
+ }
49
+ this.dropTarget = target
50
+ target.classList.add(onDragOverCls)
51
+ }
52
+
53
+ onDragLeave = e => {
54
+ let { target } = e
55
+ target = findParent(target, '.' + fileItemCls)
56
+ if (!target) {
57
+ return e.preventDefault()
58
+ }
59
+ if (
60
+ this.containerRef.current &&
61
+ !this.containerRef.current.contains(e.relatedTarget)
62
+ ) {
63
+ target.classList.remove(onDragOverCls)
64
+ }
65
+ }
66
+
67
+ onDrop = e => {
68
+ e.preventDefault()
69
+ let { target } = e
70
+ if (!target) {
71
+ return
72
+ }
73
+ target = findParent(target, '.' + fileItemCls)
74
+ if (!target) {
75
+ return
76
+ }
77
+ const id = target.getAttribute('data-id')
78
+ const ref = filesRef.get('file-' + id)
79
+ if (ref) {
80
+ ref.onDrop(e)
81
+ }
82
+ }
83
+
84
+ onDragEnd = e => {
85
+ this.props.modifier({
86
+ onDrag: false
87
+ })
88
+ document.querySelectorAll('.' + onDragCls).forEach((d) => {
89
+ removeClass(d, onDragCls, onMultiDragCls)
90
+ })
91
+ document.querySelectorAll('.' + onDragOverCls).forEach((d) => {
92
+ removeClass(d, onDragOverCls)
93
+ })
94
+ e && e.dataTransfer && e.dataTransfer.clearData()
95
+ }
96
+
30
97
  componentDidUpdate (prevProps) {
31
98
  const prevList = prevProps.fileList
32
99
  const nextList = this.props.fileList
@@ -289,7 +356,12 @@ export default class FileListTable extends Component {
289
356
  draggable: false,
290
357
  onScroll: this.onScroll,
291
358
  onClick: this.handleClick,
292
- onDoubleClick: this.handleDoubleClick
359
+ onDoubleClick: this.handleDoubleClick,
360
+ onDragOver: this.onDragOver,
361
+ onDragEnter: this.onDragEnter,
362
+ onDragLeave: this.onDragLeave,
363
+ onDrop: this.onDrop,
364
+ onDragEnd: this.onDragEnd
293
365
  }
294
366
  const cls = classnames('sftp-table relative')
295
367
  const ddProps = {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@electerm/electerm-react",
3
- "version": "3.15.32",
3
+ "version": "3.15.35",
4
4
  "description": "react components src for electerm",
5
5
  "main": "./client/components/main/main.jsx",
6
6
  "license": "MIT",