Skip to content

Commit d93bb74

Browse files
committed
Allow InputBinding.receiveMessage to be async
1 parent 77bc4e9 commit d93bb74

File tree

3 files changed

+4
-4
lines changed

3 files changed

+4
-4
lines changed

srcts/src/bindings/input/inputBinding.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ class InputBinding {
4444
// 'data' should be an object with elements corresponding to value, min,
4545
// max, etc., as appropriate for the type of input object. It also should
4646
// trigger a change event.
47-
receiveMessage(el: HTMLElement, data: unknown): void {
47+
receiveMessage(el: HTMLElement, data: unknown): Promise<void> | void {
4848
throw "Not implemented";
4949
el; // unused var
5050
data; // unused var

srcts/src/shiny/shinyapp.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -717,7 +717,7 @@ class ShinyApp {
717717

718718
addMessageHandler(
719719
"inputMessages",
720-
(message: Array<{ id: string; message: unknown }>) => {
720+
async (message: Array<{ id: string; message: unknown }>) => {
721721
// inputMessages should be an array
722722
for (let i = 0; i < message.length; i++) {
723723
const $obj = $(".shiny-bound-input#" + $escape(message[i].id));
@@ -734,7 +734,7 @@ class ShinyApp {
734734
$(el).trigger(evt);
735735
if (!evt.isDefaultPrevented()) {
736736
try {
737-
inputBinding.receiveMessage(el, evt.message);
737+
await inputBinding.receiveMessage(el, evt.message);
738738
} catch (error) {
739739
console.error(
740740
"[shiny] Error in inputBinding.receiveMessage()",

srcts/types/src/bindings/input/inputBinding.d.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ declare class InputBinding {
88
getValue(el: HTMLElement): any;
99
subscribe(el: HTMLElement, callback: (value: boolean) => void): void;
1010
unsubscribe(el: HTMLElement): void;
11-
receiveMessage(el: HTMLElement, data: unknown): void;
11+
receiveMessage(el: HTMLElement, data: unknown): Promise<void> | void;
1212
getState(el: HTMLElement): unknown;
1313
getRatePolicy(el: HTMLElement): {
1414
policy: RatePolicyModes;

0 commit comments

Comments
 (0)