debouce
Browse files
    	
        frontend/src/lib/store.ts
    CHANGED
    
    | 
         @@ -1,7 +1,15 @@ 
     | 
|
| 1 | 
         | 
| 2 | 
         
            -
            import {
         
     | 
| 3 | 
         
            -
             
     | 
| 4 | 
         
            -
             
     | 
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 
         | 
|
| 5 | 
         | 
| 6 | 
         
            -
            export const pipelineValues = writable({} as Record<string, any>);
         
     | 
| 7 | 
         
             
            export const getPipelineValues = () => get(pipelineValues);
         
     | 
| 
         | 
|
| 1 | 
         | 
| 2 | 
         
            +
            import { derived, writable, get, type Writable, type Readable } from 'svelte/store';
         
     | 
| 3 | 
         
            +
             
     | 
| 4 | 
         
            +
            export const pipelineValues: Writable<Record<string, any>> = writable({});
         
     | 
| 5 | 
         
            +
            export const deboucedPipelineValues: Readable<Record<string, any>>
         
     | 
| 6 | 
         
            +
                = derived(pipelineValues, ($pipelineValues, set) => {
         
     | 
| 7 | 
         
            +
                    const debounced = setTimeout(() => {
         
     | 
| 8 | 
         
            +
                        set($pipelineValues);
         
     | 
| 9 | 
         
            +
                    }, 100);
         
     | 
| 10 | 
         
            +
                    return () => clearTimeout(debounced);
         
     | 
| 11 | 
         
            +
                });
         
     | 
| 12 | 
         
            +
             
     | 
| 13 | 
         
            +
             
     | 
| 14 | 
         | 
| 
         | 
|
| 15 | 
         
             
            export const getPipelineValues = () => get(pipelineValues);
         
     | 
    	
        frontend/src/routes/+page.svelte
    CHANGED
    
    | 
         @@ -15,7 +15,7 @@ 
     | 
|
| 15 | 
         
             
                onFrameChangeStore,
         
     | 
| 16 | 
         
             
                MediaStreamStatusEnum
         
     | 
| 17 | 
         
             
              } from '$lib/mediaStream';
         
     | 
| 18 | 
         
            -
              import { getPipelineValues,  
     | 
| 19 | 
         | 
| 20 | 
         
             
              let pipelineParams: FieldProps[];
         
     | 
| 21 | 
         
             
              let pipelineInfo: PipelineInfo;
         
     | 
| 
         @@ -49,7 +49,7 @@ 
     | 
|
| 49 | 
         
             
              // send only prompt if text mode
         
     | 
| 50 | 
         
             
              $: {
         
     | 
| 51 | 
         
             
                if ($lcmLiveStatus === LCMLiveStatus.CONNECTED) {
         
     | 
| 52 | 
         
            -
                  lcmLiveActions.send($ 
     | 
| 53 | 
         
             
                }
         
     | 
| 54 | 
         
             
              }
         
     | 
| 55 | 
         | 
| 
         | 
|
| 15 | 
         
             
                onFrameChangeStore,
         
     | 
| 16 | 
         
             
                MediaStreamStatusEnum
         
     | 
| 17 | 
         
             
              } from '$lib/mediaStream';
         
     | 
| 18 | 
         
            +
              import { getPipelineValues, deboucedPipelineValues } from '$lib/store';
         
     | 
| 19 | 
         | 
| 20 | 
         
             
              let pipelineParams: FieldProps[];
         
     | 
| 21 | 
         
             
              let pipelineInfo: PipelineInfo;
         
     | 
| 
         | 
|
| 49 | 
         
             
              // send only prompt if text mode
         
     | 
| 50 | 
         
             
              $: {
         
     | 
| 51 | 
         
             
                if ($lcmLiveStatus === LCMLiveStatus.CONNECTED) {
         
     | 
| 52 | 
         
            +
                  lcmLiveActions.send($deboucedPipelineValues);
         
     | 
| 53 | 
         
             
                }
         
     | 
| 54 | 
         
             
              }
         
     | 
| 55 | 
         |