Files
AFFiNE-Mirror/packages/frontend/apps/electron-renderer/src/popup/utils.ts
T
pengx17 61c0d01da3 feat(electron): recording popups (#11016)
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
2025-03-26 04:53:43 +00:00

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;
};