@@ -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)
|
||||
|
||||
@@ -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' },
|
||||
);
|
||||
Reference in New Issue
Block a user