* Add dialog to export recordings
* Add export dialog functionality
* Add ability to name exports
* Add ability to choose custom time range on timeline
* Add ability to choose custom time range on timeline
* Add custom time selection
* Make hot keys optional for typing name of export
* Tweaks to dialog
* Tweaks to dialog
* round corners more
* Final tweaks
* Use full width top bar
* Make each item in review filter group optional
* Remove export creation from export page
* Consolidate packages and fix opening recording from event
* Use common type for time range
* Move timeline to separate component
* Add events list view to recordings view
* Fix loading of images
* Fix incorrect labels
* use overlay state for selected timeline type
* Fix up for mobile view for now
* replace overlay state
* fix comparison
* remove unused
* handle motion timestamps with ranges
* check for overlaps when checking segment for events
* rename motion color vars to significant_motion for consistency
* safelist significant_motion
* rename vars for clarity and use timeout instead of interval
* Move controls to separate component and make features configurable
* Allow playback on motion screen
* Simplify layout
* Fix seeking
* Fix playback
* fix preview scrubbing
* Fix player controls visibility
* Use opacity for both dark and light mode
* add function to get visible timeline duration
* Don't show minimap when minimap bounds exceed timeline area
* when minimap is hidden, only scroll timeline when needed
* observe only when not showing minimap
* no need to duplicate observer
* fix out of order param
* timeline utils hook props
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* implement summary timeline
* implement summary timeline
* merge dev
* conditionally attach listeners only when dragging
* set up listeners with a ref
* Fix selected items text
* Use action icons from design and fix spacing
* Fix icons for live grid
* Fix viewed select api
* Setup default theme as system
* Make conig editor respect system theme
* Fix plus submission dialog
* Different layout for portrait recordings
* Fix now preview found pulsing
* Fix bug with uneven milliseconds
* Improve consistency of video scaling
* Update previews on the hour
* Allow tap to toggle controls so zooming still works
* Use hash location insteaad of state for live camera view
* Add typing
* Show skeleton until video players finishes loading
* Clean up android logic
* Ensure mobile view video is consistent
* Cleanup
* Only show when not scrubbing
* Don't use loading
* Start preview at correct time too
* Fix react race condition
* Be wait for seek to show video player
* use a single source of truth for scrubbing
* simplify controller state
* Cleanup scrubbing logic
* Apply same logic to mobile
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Use dynamic imports to reduce initial load times
Remove videojs
* Convert to using hls.js instead of videojs
* Improve mobile controls experience
* Cleanup
* Ensure playback rate stays teh same when source changes
* Use webp for latest camera image
* Switch to hls.js on error
* Don't rerun error if hls already tried
* Fix error checking
* also check for media decode error to fallback to HLS
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* Use skeleton for gif loading
* cache gifs as well
* Show skeleton when switching previews
* Fix touch controls for mobile
* Fix android mobile scrub logic
* Cleanup
* initial try
* add birdseye
* remove vite
* cleanup
* memoize
* remove console
* ensure birdseye is actually enabled in config
* birdseye first in select list and fix jsmpeg player size
* Write preview frames as webp instead of jpg and ensure webp are cached in nginx
* Support preview player that shows current hour images
* Update to get preview player working
* Use timestamp based recordings check instead of calendar
* Start motion review from current time
* Adjust layout
* Use preview players for previews
* remove vite
* Cleanup
* Fix up the layout
* Cleanup review items
* Fix spacing
* Fix -1 text
* Cleanup scroll
* Show activity indicator when review items are null
* Show no preview text when not found
* Add padding to buttons
* Simplify comparisons
* Increase duration of alerts and detections
* Add key
* Fix cancel button
* Fix motion review when switching days
* Add reset buttons and make calendar apply immediately
* Adjust apis for motion and audio activity
* Write review thumbs as webp and reduce size
* Cleanup to use new preview video player
* Make it so motion persists the selected time
* Don't jump when player first starts
* Get autoplay working right