Fix TypeScript cleanup regressions

This commit is contained in:
webadderall committed 2026-03-18 18:36:25 +11:00
1 parent e064f738ae
commit 30d61925c3
5 files changed
+17 -11

No files matched your search

+1 -1
View File
@@ -167,7 +167,7 @@ export function LaunchWindow() {
const [pausedTotal, setPausedTotal] = useState(0);
const [selectedSource, setSelectedSource] = useState("Screen");
const [hasSelectedSource, setHasSelectedSource] = useState(false);
const [recordingsDirectory, setRecordingsDirectory] = useState<string | null>(null);
const [, setRecordingsDirectory] = useState<string | null>(null);
const [activeDropdown, setActiveDropdown] = useState<"none" | "sources" | "more" | "mic" | "countdown" | "webcam">("none");
const [sources, setSources] = useState<DesktopSource[]>([]);
const [sourcesLoading, setSourcesLoading] = useState(false);
@@ -415,7 +415,7 @@ export function normalizeProjectEditor(editor: Partial<ProjectEditorState>): Pro
reactToZoom:
typeof webcam.reactToZoom === "boolean"
? webcam.reactToZoom
: legacyZoomScaleEffect !== null
: legacyZoomScaleEffect != null
? legacyZoomScaleEffect > 0
: DEFAULT_WEBCAM_REACT_TO_ZOOM,
cornerRadius: isFiniteNumber(webcam.cornerRadius)
+2 -2
View File
@@ -119,8 +119,8 @@ function getInitialLocale(): AppLocale {
}
const storedLocale = window.localStorage.getItem(LOCALE_STORAGE_KEY)
if (storedLocale && isSupportedLocale(storedLocale)) {
return storedLocale
if (storedLocale) {
return normalizeLocale(storedLocale)
}
// Product default must be English on first launch unless user explicitly
+12 -6
View File
@@ -208,26 +208,32 @@ export class AudioProcessor {
}[] = []
for (const region of audioRegions) {
const regionSource = await resolveMediaElementSource(region.audioPath)
const regionFileSource = await resolveMediaElementSource(region.audioPath)
const audioEl = document.createElement('audio')
audioEl.src = regionSource.src
audioEl.src = regionFileSource.src
audioEl.preload = 'auto'
try {
await this.waitForLoadedMetadata(audioEl)
} catch {
regionSource.revoke()
regionFileSource.revoke()
console.warn('[AudioProcessor] Failed to load audio region:', region.audioPath)
continue
}
if (this.cancelled) throw new Error('Export cancelled')
const regionSource = audioContext.createMediaElementSource(audioEl)
const regionSourceNode = audioContext.createMediaElementSource(audioEl)
const gainNode = audioContext.createGain()
gainNode.gain.value = Math.max(0, Math.min(1, region.volume))
regionSource.connect(gainNode)
regionSourceNode.connect(gainNode)
gainNode.connect(destinationNode)
audioRegionElements.push({ media: audioEl, sourceNode: regionSource, gainNode, region, cleanup: regionSource.revoke })
audioRegionElements.push({
media: audioEl,
sourceNode: regionSourceNode,
gainNode,
region,
cleanup: regionFileSource.revoke,
})
}
const { recorder, recordedBlobPromise } = this.startAudioRecording(destinationNode.stream)
+1 -1
View File
@@ -69,7 +69,7 @@ export async function resolveMediaElementSource(resource: string): Promise<{
const bytes =
result.data instanceof Uint8Array ? result.data : new Uint8Array(result.data);
const blob = new Blob([bytes], { type: inferMimeType(localFilePath) });
const blob = new Blob([Uint8Array.from(bytes)], { type: inferMimeType(localFilePath) });
const objectUrl = URL.createObjectURL(blob);
return {