feat: stream list view and tasks (#279)

* first attempt at stream sidebar, tasks, and events

* fix folder from root

* cleanup folders and events, and condense changes

* cleanup and add toggle for sidebar

* cleanup

* fix nits
This commit was merged in pull request #279.
This commit is contained in:
Arjun Patel
2026-06-12 12:26:49 -07:00
committed by GitHub
parent a358774106
commit 095b9876f9
37 changed files with 2384 additions and 791 deletions
+17 -2
View File
@@ -1,4 +1,10 @@
import { useEffect, useRef, useState, type RefObject } from 'react';
import {
useCallback,
useEffect,
useRef,
useState,
type RefObject,
} from 'react';
import type { MediaParticleHandle } from '@/features/particles/media-particle-view';
import { useSuspendPlayback } from '@/hooks/use-suspend-playback';
import {
@@ -15,6 +21,10 @@ interface UsePlaybackKeysOptions {
interface UsePlaybackKeysResult {
fastPlayback: boolean;
/** True while playback is paused by the user's space toggle/hold. */
spacePaused: boolean;
/** Clear the user's space pause (e.g. clicking the on-screen play button). */
resume: () => void;
}
/**
@@ -31,6 +41,11 @@ export function usePlaybackKeys({
useSuspendPlayback(spaceHeld, 'hold-space');
const resume = useCallback(() => {
setSpaceHeld(false);
spaceStartRef.current = 0;
}, []);
useEffect(() => {
const isExternallyPaused = () =>
selectIsPaused(usePlaybackPauseStore.getState()) && !spaceHeld;
@@ -92,5 +107,5 @@ export function usePlaybackKeys({
};
}, [mediaRef, spaceHeld]);
return { fastPlayback };
return { fastPlayback, spacePaused: spaceHeld, resume };
}