mirror of
https://github.com/gradio-app/gradio.git
synced 2025-04-06 12:30:29 +08:00
Fix multiple trigger bug when function has js (#9188)
* add code * add changeset * lint --------- Co-authored-by: gradio-pr-bot <gradio-pr-bot@users.noreply.github.com>
This commit is contained in:
parent
ac2c015bd8
commit
8f8e1c6a0b
7
.changeset/blue-rooms-run.md
Normal file
7
.changeset/blue-rooms-run.md
Normal file
@ -0,0 +1,7 @@
|
||||
---
|
||||
"@gradio/audio": patch
|
||||
"@gradio/core": patch
|
||||
"gradio": patch
|
||||
---
|
||||
|
||||
fix:Fix multiple trigger bug when function has js
|
@ -97,7 +97,6 @@
|
||||
Boolean
|
||||
) as FileData[]
|
||||
)[0];
|
||||
|
||||
dispatch(event, value);
|
||||
};
|
||||
|
||||
|
@ -62,7 +62,7 @@
|
||||
edit: undefined;
|
||||
}>();
|
||||
|
||||
$: record?.on("record-start", () => {
|
||||
function record_start_callback(): void {
|
||||
start_interval();
|
||||
timing = true;
|
||||
dispatch("start_recording");
|
||||
@ -70,9 +70,9 @@
|
||||
let waveformCanvas = microphoneContainer;
|
||||
if (waveformCanvas) waveformCanvas.style.display = "block";
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$: record?.on("record-end", async (blob) => {
|
||||
async function record_end_callback(blob: Blob): Promise<void> {
|
||||
seconds = 0;
|
||||
timing = false;
|
||||
clearInterval(interval);
|
||||
@ -91,12 +91,7 @@
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
});
|
||||
|
||||
$: record?.on("record-pause", () => {
|
||||
dispatch("pause_recording");
|
||||
clearInterval(interval);
|
||||
});
|
||||
}
|
||||
|
||||
$: record?.on("record-resume", () => {
|
||||
start_interval();
|
||||
@ -140,6 +135,25 @@
|
||||
|
||||
record = micWaveform.registerPlugin(RecordPlugin.create());
|
||||
record.startMic();
|
||||
record?.on("record-end", record_end_callback);
|
||||
record?.on("record-start", record_start_callback);
|
||||
record?.on("record-pause", () => {
|
||||
dispatch("pause_recording");
|
||||
clearInterval(interval);
|
||||
});
|
||||
|
||||
record?.on("record-end", (blob) => {
|
||||
recordedAudio = URL.createObjectURL(blob);
|
||||
|
||||
const microphone = microphoneContainer;
|
||||
const recording = recordingContainer;
|
||||
|
||||
if (microphone) microphone.style.display = "none";
|
||||
if (recording && recordedAudio) {
|
||||
recording.innerHTML = "";
|
||||
create_recording_waveform();
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const create_recording_waveform = (): void => {
|
||||
@ -152,19 +166,6 @@
|
||||
});
|
||||
};
|
||||
|
||||
$: record?.on("record-end", (blob) => {
|
||||
recordedAudio = URL.createObjectURL(blob);
|
||||
|
||||
const microphone = microphoneContainer;
|
||||
const recording = recordingContainer;
|
||||
|
||||
if (microphone) microphone.style.display = "none";
|
||||
if (recording && recordedAudio) {
|
||||
recording.innerHTML = "";
|
||||
create_recording_waveform();
|
||||
}
|
||||
});
|
||||
|
||||
const handle_trim_audio = async (
|
||||
start: number,
|
||||
end: number
|
||||
|
@ -238,7 +238,7 @@
|
||||
.then((v: unknown[]) => {
|
||||
if (dep.backend_fn) {
|
||||
payload.data = v;
|
||||
make_prediction(payload);
|
||||
trigger_prediction(dep, payload);
|
||||
} else {
|
||||
handle_update(v, dep_index);
|
||||
}
|
||||
@ -253,16 +253,20 @@
|
||||
);
|
||||
} else {
|
||||
if (dep.backend_fn) {
|
||||
if (dep.trigger_mode === "once") {
|
||||
if (!dep.pending_request) make_prediction(payload);
|
||||
} else if (dep.trigger_mode === "multiple") {
|
||||
trigger_prediction(dep, payload);
|
||||
}
|
||||
}
|
||||
|
||||
function trigger_prediction(dep: Dependency, payload: Payload): void {
|
||||
if (dep.trigger_mode === "once") {
|
||||
if (!dep.pending_request) make_prediction(payload);
|
||||
} else if (dep.trigger_mode === "multiple") {
|
||||
make_prediction(payload);
|
||||
} else if (dep.trigger_mode === "always_last") {
|
||||
if (!dep.pending_request) {
|
||||
make_prediction(payload);
|
||||
} else if (dep.trigger_mode === "always_last") {
|
||||
if (!dep.pending_request) {
|
||||
make_prediction(payload);
|
||||
} else {
|
||||
dep.final_event = payload;
|
||||
}
|
||||
} else {
|
||||
dep.final_event = payload;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user