Browse Source

redraw preview on param change

David Sehnal 4 years ago
parent
commit
b2222844ae
1 changed files with 8 additions and 1 deletions
  1. 8 1
      src/mol-plugin-ui/controls/screenshot.tsx

+ 8 - 1
src/mol-plugin-ui/controls/screenshot.tsx

@@ -5,7 +5,7 @@
  */
 
 import * as React from 'react';
-import { useEffect, useRef, useState } from 'react';
+import { useEffect, useLayoutEffect, useRef, useState } from 'react';
 import { Observable, Subject, Subscription } from 'rxjs';
 import { debounceTime } from 'rxjs/operators';
 import { Viewport } from '../../mol-canvas3d/camera/util';
@@ -43,6 +43,7 @@ const _ScreenshotPreview = (props: ScreenshotPreviewProps) => {
 
     useEffect(() => {
         let paused = false;
+
         const updateQueue = new Subject();
         const subs: Subscription[] = [];
 
@@ -92,6 +93,12 @@ const _ScreenshotPreview = (props: ScreenshotPreviewProps) => {
         };
     }, [helper]);
 
+    useLayoutEffect(() => {
+        if (canvasRef.current) {
+            drawPreview(helper, canvasRef.current, props.customBackground, props.borderColor, props.borderWidth);
+        }
+    }, [...Object.values(props)]);
+
     return <>
         <div style={{ position: 'relative', width: '100%', height: '100%' }}>
             <canvas ref={canvasRef} onContextMenu={e => { e.preventDefault(); e.stopPropagation(); }} style={{ display: 'block', width: '100%', height: '100%' }}></canvas>