mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-07-18 02:26:21 +08:00
61c0d01da3
Added a recording popup UI for the audio recording feature in the desktop app, improving the user experience when capturing audio from applications. ### What changed? - Created a new popup window system for displaying recording controls - Added a dedicated recording UI with start/stop controls and status indicators - Moved audio encoding logic from the main app to a dedicated module - Implemented smooth animations for popup appearance/disappearance - Updated the recording workflow to show visual feedback during recording process - Added internationalization support for recording-related text - Modified the recording status flow to include new states: new, recording, stopped, ready fix AF-2340
19 lines
392 B
TypeScript
19 lines
392 B
TypeScript
import { useEffect, useState } from 'react';
|
|
|
|
export const useBlobUrl = (buffer?: Buffer) => {
|
|
const [blobUrl, setBlobUrl] = useState<string | null>(null);
|
|
|
|
useEffect(() => {
|
|
if (!buffer) {
|
|
return;
|
|
}
|
|
const url = URL.createObjectURL(new Blob([buffer]));
|
|
setBlobUrl(url);
|
|
return () => {
|
|
URL.revokeObjectURL(url);
|
|
};
|
|
}, [buffer]);
|
|
|
|
return blobUrl;
|
|
};
|