Aurora SpotiRip desktop and web app
- Spotify playlist, library, album and artist browsing with in-app playback - Song, playlist and album downloads via spotdl with YouTube and Bandcamp fallbacks - Electron desktop app (castLabs Widevine) with a permanent sidebar layout - Linux and Windows packaging scripts
This commit is contained in:
@@ -0,0 +1,16 @@
|
||||
import { useRef, useLayoutEffect, useCallback } from "react";
|
||||
|
||||
export function useCallbackRef<T extends (...args: any[]) => any>(
|
||||
callback: T,
|
||||
): T {
|
||||
const callbackRef = useRef(callback);
|
||||
|
||||
useLayoutEffect(() => {
|
||||
callbackRef.current = callback;
|
||||
});
|
||||
|
||||
return useCallback(
|
||||
((...args) => callbackRef.current?.(...args)) as T,
|
||||
[],
|
||||
) as T;
|
||||
}
|
||||
Reference in New Issue
Block a user