feat: show connecting status
This commit is contained in:
Binary file not shown.
Vendored
+46
-8
@@ -96,7 +96,8 @@ __webpack_require__.r(__webpack_exports__);
|
||||
class Main extends react__WEBPACK_IMPORTED_MODULE_0__.Component {
|
||||
state = {
|
||||
comfyURL: '',
|
||||
isConnected: false
|
||||
isConnected: false,
|
||||
isReconnecting: false
|
||||
};
|
||||
componentDidMount() {
|
||||
_system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].onConnectStateChange(() => {
|
||||
@@ -104,6 +105,7 @@ class Main extends react__WEBPACK_IMPORTED_MODULE_0__.Component {
|
||||
console.log('isConnected:', instance?.isConnected);
|
||||
this.setState({
|
||||
isConnected: instance?.isConnected,
|
||||
isReconnecting: instance?.isReconnecting,
|
||||
comfyURL: instance ? instance.comfyURL : ''
|
||||
});
|
||||
});
|
||||
@@ -119,7 +121,8 @@ class Main extends react__WEBPACK_IMPORTED_MODULE_0__.Component {
|
||||
});
|
||||
}
|
||||
doConnectOrDisconnect() {
|
||||
if (!_system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].instance?.isConnected) _system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].createInstance(this.state.comfyURL);else _system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].instance.disconnect();
|
||||
console.log(_system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].instance?.isConnected, _system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].instance?.isReconnecting);
|
||||
if (_system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].instance?.isConnected || _system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].instance?.isReconnecting) _system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].instance.disconnect();else _system_ComfyConnection__WEBPACK_IMPORTED_MODULE_1__["default"].createInstance(this.state.comfyURL);
|
||||
}
|
||||
render() {
|
||||
return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement(react__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("sp-textfield", {
|
||||
@@ -131,12 +134,18 @@ class Main extends react__WEBPACK_IMPORTED_MODULE_0__.Component {
|
||||
value: this.state.comfyURL,
|
||||
placeholder: "http://127.0.0.1:8188"
|
||||
}), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
||||
className: "button-box"
|
||||
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("sp-button", {
|
||||
className: "connect-box"
|
||||
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
||||
className: "status-bar " + (this.state.isConnected ? 'connected' : this.state.isReconnecting ? 'reconnecting' : 'disconnected')
|
||||
}, /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
||||
className: "status-icon"
|
||||
}, "\u2B24"), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("div", {
|
||||
className: "status-text"
|
||||
}, this.state.isConnected ? 'connected' : this.state.isReconnecting ? 'reconnecting...' : 'disconnected')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("sp-button", {
|
||||
id: "connect-btn",
|
||||
variant: "primary",
|
||||
onClick: this.doConnectOrDisconnect.bind(this)
|
||||
}, this.state.isConnected ? 'disconnect' : 'connect')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("sp-divider", {
|
||||
}, this.state.isConnected || this.state.isReconnecting ? 'disconnect' : 'connect')), /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createElement("sp-divider", {
|
||||
size: "small"
|
||||
}));
|
||||
}
|
||||
@@ -181,7 +190,7 @@ class ComfyConnection {
|
||||
static _callConnectStateChange() {
|
||||
ComfyConnection._connectStateCallbacks.forEach(cb => {
|
||||
try {
|
||||
cb(ComfyConnection.instance?.isConnected);
|
||||
cb();
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
@@ -196,6 +205,9 @@ class ComfyConnection {
|
||||
get isConnected() {
|
||||
return this.socket != null && this.socket.connected === true;
|
||||
}
|
||||
get isReconnecting() {
|
||||
return this.socket != null && this.socket.connected === false && this.socket.active === true;
|
||||
}
|
||||
comfyURL = '';
|
||||
serverType = '';
|
||||
interval = null;
|
||||
@@ -211,8 +223,11 @@ class ComfyConnection {
|
||||
this.socket.connect();
|
||||
}
|
||||
disconnect() {
|
||||
console.log('disconnect' + this.socket);
|
||||
if (this.socket) {
|
||||
this.socket.close();
|
||||
this.socket = null;
|
||||
ComfyConnection._callConnectStateChange();
|
||||
}
|
||||
}
|
||||
_createSocket() {
|
||||
@@ -5205,15 +5220,38 @@ ___CSS_LOADER_EXPORT___.push([module.id, `.tabbar {
|
||||
#url-bar {
|
||||
width: 100%;
|
||||
}
|
||||
.button-box {
|
||||
.status-bar {
|
||||
display: flex;
|
||||
justify-content: left;
|
||||
align-items: center;
|
||||
}
|
||||
.status-bar.connected { color: lightgreen; }
|
||||
.status-bar.reconnecting { color: lightyellow; }
|
||||
.status-bar.disconnected { color: lightcoral; }
|
||||
.status-icon {
|
||||
margin: 0 5px;
|
||||
}
|
||||
.connect-box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 10px;
|
||||
}
|
||||
#connect-btn {
|
||||
text-align: center;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.client-list-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.client-list-item .client-name {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.client-list-item sp-link {
|
||||
margin-right: 20px;
|
||||
}`, ""]);
|
||||
// Exports
|
||||
/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___);
|
||||
|
||||
Vendored
+4
-4
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"id": "sd-ppp",
|
||||
"name": "SD-PPP",
|
||||
"version": "0.0.3",
|
||||
"version": "1.0.0",
|
||||
"main": "index.html",
|
||||
"manifestVersion": 5,
|
||||
"host": {
|
||||
@@ -42,8 +42,8 @@
|
||||
"height": 100
|
||||
},
|
||||
"maximumSize": {
|
||||
"width": 400,
|
||||
"height": 100
|
||||
"width": 300,
|
||||
"height": 500
|
||||
},
|
||||
"preferredDockedSize": {
|
||||
"width": 300,
|
||||
@@ -51,7 +51,7 @@
|
||||
},
|
||||
"preferredFloatingSize": {
|
||||
"width": 300,
|
||||
"height": 100
|
||||
"height": 500
|
||||
},
|
||||
"icons": [
|
||||
{
|
||||
|
||||
@@ -42,8 +42,8 @@
|
||||
"height": 100
|
||||
},
|
||||
"maximumSize": {
|
||||
"width": 400,
|
||||
"height": 100
|
||||
"width": 300,
|
||||
"height": 500
|
||||
},
|
||||
"preferredDockedSize": {
|
||||
"width": 300,
|
||||
@@ -51,7 +51,7 @@
|
||||
},
|
||||
"preferredFloatingSize": {
|
||||
"width": 300,
|
||||
"height": 100
|
||||
"height": 500
|
||||
},
|
||||
"icons": [
|
||||
{
|
||||
|
||||
@@ -4,7 +4,8 @@ import { storage } from "uxp";
|
||||
export default class Main extends React.Component {
|
||||
state = {
|
||||
comfyURL: '',
|
||||
isConnected: false
|
||||
isConnected: false,
|
||||
isReconnecting: false,
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
@@ -13,6 +14,7 @@ export default class Main extends React.Component {
|
||||
console.log('isConnected:', instance?.isConnected)
|
||||
this.setState({
|
||||
isConnected: instance?.isConnected,
|
||||
isReconnecting: instance?.isReconnecting,
|
||||
comfyURL: instance ? instance.comfyURL : ''
|
||||
})
|
||||
});
|
||||
@@ -27,16 +29,16 @@ export default class Main extends React.Component {
|
||||
}
|
||||
|
||||
doConnectOrDisconnect() {
|
||||
if (!ComfyConnection.instance?.isConnected)
|
||||
ComfyConnection.createInstance(this.state.comfyURL);
|
||||
else
|
||||
console.log(ComfyConnection.instance?.isConnected, ComfyConnection.instance?.isReconnecting)
|
||||
if (ComfyConnection.instance?.isConnected || ComfyConnection.instance?.isReconnecting)
|
||||
ComfyConnection.instance.disconnect();
|
||||
else
|
||||
ComfyConnection.createInstance(this.state.comfyURL);
|
||||
}
|
||||
|
||||
render() {
|
||||
return (
|
||||
<>
|
||||
|
||||
<sp-textfield
|
||||
id="url-bar"
|
||||
label="ComfyURL"
|
||||
@@ -44,15 +46,37 @@ export default class Main extends React.Component {
|
||||
value={this.state.comfyURL}
|
||||
placeholder="http://127.0.0.1:8188"
|
||||
></sp-textfield>
|
||||
<div className="button-box">
|
||||
<div className="connect-box">
|
||||
<div className={"status-bar " + (
|
||||
this.state.isConnected ? 'connected' : (
|
||||
this.state.isReconnecting ? 'reconnecting' :
|
||||
'disconnected'
|
||||
)
|
||||
)}>
|
||||
<div className="status-icon">⬤</div>
|
||||
<div className="status-text">{(
|
||||
this.state.isConnected ? 'connected' : (
|
||||
this.state.isReconnecting ? 'reconnecting...' :
|
||||
'disconnected'
|
||||
)
|
||||
)}</div>
|
||||
</div>
|
||||
<sp-button
|
||||
id="connect-btn"
|
||||
variant="primary"
|
||||
onClick={this.doConnectOrDisconnect.bind(this)}
|
||||
>{this.state.isConnected ? 'disconnect' : 'connect'}</sp-button>
|
||||
</div>
|
||||
>{this.state.isConnected || this.state.isReconnecting ? 'disconnect' : 'connect'}</sp-button>
|
||||
</div>
|
||||
|
||||
<sp-divider size="small"></sp-divider>
|
||||
|
||||
{/* <sp-label>webpage-list</sp-label>
|
||||
<ul className="client-list">
|
||||
<li className="client-list-item">
|
||||
<sp-label class="client-name">AE231DDEB64C</sp-label>
|
||||
<sp-link>Run</sp-link>
|
||||
</li>
|
||||
</ul> */}
|
||||
</>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -24,13 +24,36 @@
|
||||
#url-bar {
|
||||
width: 100%;
|
||||
}
|
||||
.button-box {
|
||||
.status-bar {
|
||||
display: flex;
|
||||
justify-content: left;
|
||||
align-items: center;
|
||||
}
|
||||
.status-bar.connected { color: lightgreen; }
|
||||
.status-bar.reconnecting { color: lightyellow; }
|
||||
.status-bar.disconnected { color: lightcoral; }
|
||||
.status-icon {
|
||||
margin: 0 5px;
|
||||
}
|
||||
.connect-box {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
margin-top: 10px;
|
||||
}
|
||||
#connect-btn {
|
||||
text-align: center;
|
||||
margin-right: 10px;
|
||||
}
|
||||
.client-list-item {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
}
|
||||
.client-list-item .client-name {
|
||||
margin-left: 10px;
|
||||
}
|
||||
.client-list-item sp-link {
|
||||
margin-right: 20px;
|
||||
}
|
||||
@@ -16,7 +16,7 @@ class ComfyConnection {
|
||||
static _callConnectStateChange() {
|
||||
ComfyConnection._connectStateCallbacks.forEach(cb => {
|
||||
try {
|
||||
cb(ComfyConnection.instance?.isConnected)
|
||||
cb()
|
||||
} catch (e) { console.error(e) }
|
||||
});
|
||||
}
|
||||
@@ -31,6 +31,9 @@ class ComfyConnection {
|
||||
get isConnected() {
|
||||
return this.socket != null && this.socket.connected === true;
|
||||
}
|
||||
get isReconnecting() {
|
||||
return this.socket != null && this.socket.connected === false && this.socket.active === true;
|
||||
}
|
||||
|
||||
comfyURL = '';
|
||||
serverType = '';
|
||||
@@ -48,8 +51,11 @@ class ComfyConnection {
|
||||
}
|
||||
|
||||
disconnect() {
|
||||
console.log('disconnect' + this.socket);
|
||||
if (this.socket) {
|
||||
this.socket.close()
|
||||
this.socket = null;
|
||||
ComfyConnection._callConnectStateChange();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user