Przeglądaj źródła

fix(frontend): no handler for `close_session` command

wangweimin 5 lat temu
rodzic
commit
e63bb2a7e0

Plik diff jest za duży
+ 0 - 0
pywebio/html/js/pywebio.min.js


Plik diff jest za duży
+ 0 - 0
pywebio/html/js/pywebio.min.js.map


+ 11 - 1
webiojs/src/handlers/base.ts

@@ -1,4 +1,4 @@
-import {Command} from "../session";
+import {Command, Session} from "../session";
 
 
 export interface CommandHandler {
@@ -7,6 +7,16 @@ export interface CommandHandler {
     handle_message(msg: Command): void
 }
 
+export class CloseHandler implements CommandHandler {
+    accept_command: string[] = ['close_session']
+
+    constructor(readonly session: Session) {
+    }
+
+    handle_message(msg: Command) {
+        this.session.close_session();
+    }
+}
 
 export class CommandDispatcher {
     command2handler: { [cmd: string]: CommandHandler } = {};

+ 3 - 2
webiojs/src/main.ts

@@ -3,7 +3,7 @@ import {Command, HttpSession, is_http_backend, Session, WebSocketSession} from "
 import {InputHandler} from "./handlers/input"
 import {OutputHandler} from "./handlers/output"
 import {DisplayAreaButtonOnClick} from "./models/output"
-import {CommandDispatcher} from "./handlers/base"
+import {CloseHandler, CommandDispatcher} from "./handlers/base"
 import {PopupHandler} from "./handlers/popup";
 
 // 获取后端API地址
@@ -24,8 +24,9 @@ function set_up_session(webio_session: Session, output_container_elem: JQuery, i
     let output_ctrl = new OutputHandler(webio_session, output_container_elem);
     let input_ctrl = new InputHandler(webio_session, input_container_elem);
     let popup_ctrl = new PopupHandler(webio_session);
+    let close_ctrl = new CloseHandler(webio_session);
 
-    let dispatcher = new CommandDispatcher(output_ctrl, input_ctrl, popup_ctrl);
+    let dispatcher = new CommandDispatcher(output_ctrl, input_ctrl, popup_ctrl, close_ctrl);
 
     webio_session.on_server_message((msg: Command) => {
         let ok = dispatcher.dispatch_message(msg);

Niektóre pliki nie zostały wyświetlone z powodu dużej ilości zmienionych plików