From 5d747004abe3f45a890b135c64f0c73dddc54bfc Mon Sep 17 00:00:00 2001 From: Joe Ludwig Date: Sat, 13 Feb 2021 10:40:56 -0800 Subject: [PATCH] Added initial remoteUrl state So the image will appear if it's set before the remote gadget is spawned. --- src/main.tsx | 48 +++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) diff --git a/src/main.tsx b/src/main.tsx index cec3a5a..aef0eda 100644 --- a/src/main.tsx +++ b/src/main.tsx @@ -200,6 +200,13 @@ interface MyGadgetState remoteUrl: string; } +interface MyGadgetRemoteParams +{ + remoteUrl: string; +} + +const k_ImageGalleryInterface = "image-gallery@1"; + class MyGadget extends React.Component< {}, MyGadgetState > { private addImagePopup: Window = null; @@ -237,15 +244,51 @@ class MyGadget extends React.Component< {}, MyGadgetState > } } + @bind + private sendRemoteEvent( event: ImageMenuEvent ) + { + if( event.type == ImageMenuEventType.SetImage ) + { + this.setState( { remoteUrl: event.url } ); + } + this.grabbableRef.current?.sendRemoteEvent( event, true ); + } + + public componentDidMount() + { + if( AvGadget.instance().isRemote ) + { + let params = AvGadget.instance().findInitialInterface( k_ImageGalleryInterface )?.params as MyGadgetRemoteParams; + if( params?.remoteUrl ) + { + this.setState( { remoteUrl: params.remoteUrl } ); + } + } + } + private renderLocal() { + let remoteInitLocks: InitialInterfaceLock[] = []; + + if( this.state.remoteUrl ) + { + remoteInitLocks.push( { + iface: k_ImageGalleryInterface, + receiver: null, + params: + { + remoteUrl: this.state.remoteUrl, + } + } ); + } + return (
@@ -254,8 +297,7 @@ class MyGadget extends React.Component< {}, MyGadgetState >
- { this.grabbableRef.current?.sendRemoteEvent( event, true ); } }/> + sendEventCallback={ this.sendRemoteEvent }/>
); }