feat: Implement basic general folder support (#2051)

- Related: #1748
This commit is contained in:
Dermot Duffy
2025-05-21 19:59:21 -07:00
committed by GitHub
parent 2eb0d9e35e
commit c6a4c8aea2
350 changed files with 12837 additions and 4509 deletions
+5 -9
View File
@@ -16,6 +16,7 @@ export const VIEWS_USER_SPECIFIED = [
'live',
'clip',
'clips',
'folder',
'snapshot',
'snapshots',
'recording',
@@ -24,12 +25,7 @@ export const VIEWS_USER_SPECIFIED = [
'timeline',
] as const;
export type AdvancedCameraCardUserSpecifiedView = (typeof VIEWS_USER_SPECIFIED)[number];
const VIEWS = [
...VIEWS_USER_SPECIFIED,
'diagnostics',
// Media: A generic piece of media (could be clip, snapshot, recording).
'media',
] as const;
export type AdvancedCameraCardView = (typeof VIEWS)[number];
export type AdvancedCameraCardView =
| AdvancedCameraCardUserSpecifiedView
| 'media'
| 'diagnostics';
@@ -2,10 +2,11 @@ import { z } from 'zod';
// The min/max width thumbnail.
export const THUMBNAIL_WIDTH_MIN = 75;
export const THUMBNAIL_WIDTH_DEFAULT = 100;
export const THUMBNAIL_WIDTH_MAX = 300;
const thumbnailControlsBaseDefaults = {
size: 100,
size: THUMBNAIL_WIDTH_DEFAULT,
show_details: true,
show_favorite_control: true,
show_timeline_control: true,
@@ -13,7 +14,7 @@ const thumbnailControlsBaseDefaults = {
};
// Configuration for the actual rendered thumbnail.
const thumbnailsControlBaseSchema = z.object({
export const thumbnailsControlBaseSchema = z.object({
size: z
.number()
.min(THUMBNAIL_WIDTH_MIN)
+13
View File
@@ -0,0 +1,13 @@
import { z } from 'zod';
export const regexSchema = z.string().refine(
(val) => {
try {
new RegExp(val);
} catch {
return false;
}
return true;
},
{ message: 'Invalid regular expression' },
);