From 8513b42d4d6dfd2149d11fcc8b6de601725db3cc Mon Sep 17 00:00:00 2001 From: ZHAO Xudong Date: Mon, 25 Nov 2024 12:00:25 +0800 Subject: [PATCH] Code sync --- package-lock.json | 46 ++++----- package.json | 8 +- .../file-select-dialog/file-select-dialog.jsx | 4 +- src/client/simple-auth/logout.jsx | 33 +++---- src/client/simple-auth/web-login.jsx | 98 +++++++++---------- 5 files changed, 89 insertions(+), 100 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9fdf8c0..c42a14c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,16 +1,16 @@ { "name": "electerm-web", - "version": "2.40.20", + "version": "2.50.21", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "electerm-web", - "version": "2.40.20", + "version": "2.50.21", "hasInstallScript": true, "license": "MIT", "dependencies": { - "@electerm/electerm-locales": "2.0.3", + "@electerm/electerm-locales": "2.0.11", "@electerm/electerm-themes": "^1.0.1", "@electerm/rdpjs": "^1.0.0", "@yetzt/nedb": "1.8.0", @@ -51,7 +51,7 @@ }, "devDependencies": { "@ant-design/icons": "5.2.6", - "@electerm/electerm-react": "^1.40.20", + "@electerm/electerm-react": "^1.50.21", "@electerm/electerm-resource": "1.3.7", "@electerm/strip-ansi": "^1.0.0", "@novnc/novnc": "^1.4.0", @@ -67,7 +67,7 @@ "filesize-parser": "1.5.0", "firacode": "^6.2.0", "lodash-es": "^4.17.21", - "manate": "0.3.9", + "manate": "1.0.0", "memoize-one": "6.0.0", "playwright": "1.39.0", "prop-types": "15.7.2", @@ -684,14 +684,14 @@ } }, "node_modules/@electerm/electerm-locales": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@electerm/electerm-locales/-/electerm-locales-2.0.3.tgz", - "integrity": "sha512-qgH8MvDIy4gq76Q89wZpuMXHLdVquoaWEX0acHeumq08DBvsHqXbrgII50WAte3cOxkzFLrf6ZKMRqHsE9d1DA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@electerm/electerm-locales/-/electerm-locales-2.0.11.tgz", + "integrity": "sha512-rqklJTAlvzHBs2kOy6JVNpPa3QIUPs138HqgXCbvjY8R9VrNWoAYIx+2gUg1vLCVrmg6kVXqOrhxsfhxT34YuQ==" }, "node_modules/@electerm/electerm-react": { - "version": "1.40.20", - "resolved": "https://registry.npmjs.org/@electerm/electerm-react/-/electerm-react-1.40.20.tgz", - "integrity": "sha512-w3/oZS0C3glA2i2q5cH+2mNSzJoBL/s5po0XRGxAlmu78ZjW7+4HNSft4VUFIjandH9tK55deZyffKx/1FZGWg==", + "version": "1.50.21", + "resolved": "https://registry.npmjs.org/@electerm/electerm-react/-/electerm-react-1.50.21.tgz", + "integrity": "sha512-BQskhvwk83eCN7Amm0sJEZIs/hVUjjNlD2sPzwcdgavFn1FqQZ8NIUiDcboSq99j/KjSPZzTgn83ial0kGV8+w==", "dev": true, "engines": { "node": ">=18.0.0" @@ -5830,9 +5830,9 @@ } }, "node_modules/manate": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/manate/-/manate-0.3.9.tgz", - "integrity": "sha512-mMf4u6nT10a+HYNnNVE3b7a6p31ZvlgbHYpBIjCPJnGcUVeNohT629lgqRExN4NhXDeH+M6nN6TPO3bdeiQ48w==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/manate/-/manate-1.0.0.tgz", + "integrity": "sha512-KZZ8ZKDRxWGHXtTW5t231iAn1T2EIeJ1J0lSVmvO8K0LcY6LCPUfZi76gYEXgvfOBwdQdRNDGpr6VoisX3Nj/g==", "dev": true }, "node_modules/media-typer": { @@ -10764,14 +10764,14 @@ "dev": true }, "@electerm/electerm-locales": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@electerm/electerm-locales/-/electerm-locales-2.0.3.tgz", - "integrity": "sha512-qgH8MvDIy4gq76Q89wZpuMXHLdVquoaWEX0acHeumq08DBvsHqXbrgII50WAte3cOxkzFLrf6ZKMRqHsE9d1DA==" + "version": "2.0.11", + "resolved": "https://registry.npmjs.org/@electerm/electerm-locales/-/electerm-locales-2.0.11.tgz", + "integrity": "sha512-rqklJTAlvzHBs2kOy6JVNpPa3QIUPs138HqgXCbvjY8R9VrNWoAYIx+2gUg1vLCVrmg6kVXqOrhxsfhxT34YuQ==" }, "@electerm/electerm-react": { - "version": "1.40.20", - "resolved": "https://registry.npmjs.org/@electerm/electerm-react/-/electerm-react-1.40.20.tgz", - "integrity": "sha512-w3/oZS0C3glA2i2q5cH+2mNSzJoBL/s5po0XRGxAlmu78ZjW7+4HNSft4VUFIjandH9tK55deZyffKx/1FZGWg==", + "version": "1.50.21", + "resolved": "https://registry.npmjs.org/@electerm/electerm-react/-/electerm-react-1.50.21.tgz", + "integrity": "sha512-BQskhvwk83eCN7Amm0sJEZIs/hVUjjNlD2sPzwcdgavFn1FqQZ8NIUiDcboSq99j/KjSPZzTgn83ial0kGV8+w==", "dev": true }, "@electerm/electerm-resource": { @@ -14409,9 +14409,9 @@ } }, "manate": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/manate/-/manate-0.3.9.tgz", - "integrity": "sha512-mMf4u6nT10a+HYNnNVE3b7a6p31ZvlgbHYpBIjCPJnGcUVeNohT629lgqRExN4NhXDeH+M6nN6TPO3bdeiQ48w==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/manate/-/manate-1.0.0.tgz", + "integrity": "sha512-KZZ8ZKDRxWGHXtTW5t231iAn1T2EIeJ1J0lSVmvO8K0LcY6LCPUfZi76gYEXgvfOBwdQdRNDGpr6VoisX3Nj/g==", "dev": true }, "media-typer": { diff --git a/package.json b/package.json index cbf5e66..73ce981 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "electerm-web", - "version": "2.40.20", + "version": "2.50.21", "description": "Running electerm in as web app", "main": "src/app/app.js", "type": "module", @@ -47,7 +47,7 @@ "preferGlobal": true, "devDependencies": { "@ant-design/icons": "5.2.6", - "@electerm/electerm-react": "^1.40.20", + "@electerm/electerm-react": "^1.50.21", "@electerm/electerm-resource": "1.3.7", "@electerm/strip-ansi": "^1.0.0", "@novnc/novnc": "^1.4.0", @@ -63,7 +63,7 @@ "filesize-parser": "1.5.0", "firacode": "^6.2.0", "lodash-es": "^4.17.21", - "manate": "0.3.9", + "manate": "1.0.0", "memoize-one": "6.0.0", "playwright": "1.39.0", "prop-types": "15.7.2", @@ -93,7 +93,7 @@ "zmodem-ts": "^1.0.4" }, "dependencies": { - "@electerm/electerm-locales": "2.0.3", + "@electerm/electerm-locales": "2.0.11", "@electerm/electerm-themes": "^1.0.1", "@electerm/rdpjs": "^1.0.0", "@yetzt/nedb": "1.8.0", diff --git a/src/client/file-select-dialog/file-select-dialog.jsx b/src/client/file-select-dialog/file-select-dialog.jsx index 5e110b2..9a5ff3e 100644 --- a/src/client/file-select-dialog/file-select-dialog.jsx +++ b/src/client/file-select-dialog/file-select-dialog.jsx @@ -2,7 +2,7 @@ * file/folder select dialog component */ -import { Component } from '../electerm-react/components/common/react-subx' +import { Component } from 'react' import { Modal, Spin, @@ -325,7 +325,7 @@ export default class FileSelectDialog extends Component { onCancel: this.handleClose } return ( - + {this.renderHeader()} diff --git a/src/client/simple-auth/logout.jsx b/src/client/simple-auth/logout.jsx index f611ff6..01ebb66 100644 --- a/src/client/simple-auth/logout.jsx +++ b/src/client/simple-auth/logout.jsx @@ -1,26 +1,25 @@ +import { auto } from 'manate/react' import { LogoutOutlined } from '@ant-design/icons' -import { Component } from '../electerm-react/components/common/react-subx' import './logout.styl' -export default class Logout extends Component { - handleLogout = () => { +export default auto(function Logout (props) { + const handleLogout = () => { window.localStorage.removeItem('tokenElecterm') - this.props.store.logined = false + props.store.logined = false } - render () { - if (window.et.tokenElecterm) { - return null - } - return ( -
- -
- ) + if (window.et.tokenElecterm) { + return null } -} + + return ( +
+ +
+ ) +}) diff --git a/src/client/simple-auth/web-login.jsx b/src/client/simple-auth/web-login.jsx index 51ffd05..25933cf 100644 --- a/src/client/simple-auth/web-login.jsx +++ b/src/client/simple-auth/web-login.jsx @@ -1,4 +1,5 @@ -import { Component } from '../electerm-react/components/common/react-subx' +import { auto } from 'manate/react' +import { useState, useEffect, useRef } from 'react' import LogoElem from '../electerm-react/components/common/logo-elem.jsx' import { Input, @@ -13,102 +14,91 @@ import Main from '../electerm-react/components/main/main.jsx' const f = window.translate -export default class Login extends Component { - state = { - pass: '' - } +export default auto(function Login ({ store }) { + const [pass, setPass] = useState('') + const submitting = useRef(false) - componentDidMount () { - this.props.store.getConstants() - } + useEffect(() => { + store.getConstants() + }, []) - handlePassChange = e => { - this.setState({ - pass: e.target.value - }) + const handlePassChange = e => { + setPass(e.target.value) } - handleSubmit = () => { - const { - pass - } = this.state + const handleSubmit = async () => { if (!pass) { return message.warning('password required') - } else if ( - this.submitting - ) { + } else if (submitting.current) { return } - this.props.store.login( - this.state.pass - ) + submitting.current = true + await store.login(pass) + submitting.current = false } - renderUnchecked () { + const renderUnchecked = () => { return ( -
+ +
- +
+
) } - renderAfter = () => { + const renderAfter = () => { return ( ) } - renderLogin () { + const renderLogin = () => { const { logining, fetchingUser - } = this.props.store - const { - pass - } = this.state + } = store + return ( -
+ +
-
+ +
+
) } - render () { - const { - authChecked - } = this.props.store - if (!authChecked) { - return this.renderUnchecked() - } else if (!this.props.store.logined) { - return this.renderLogin() - } - return ( -
- ) + if (!store.authChecked) { + return renderUnchecked() + } else if (!store.logined) { + return renderLogin() } -} + + return ( +
+ ) +})