Allow dragging/swiping to be disabled.

This commit is contained in:
Dermot Duffy
2021-11-06 15:24:51 -07:00
parent 9240264db0
commit 15266be2d7
5 changed files with 17 additions and 1 deletions
+1
View File
@@ -130,6 +130,7 @@ All variables listed are under a `event_viewer:` section.
| - | - | - |
| `autoplay_clip` | `false` | Whether or not to autoplay clips in the 'clip' [view](#views). Clips manually chosen in the clips gallery will still autoplay.|
| `lazy_load` | `true` | Whether or not to lazily load media in the event viewer carousel. Setting this will false will fetch all media immediately which may make the carousel experience smoother at a cost of (potentially) a substantial number of simultaneous media fetches on load. |
| `draggable` | `true` | Whether or not the event viewer carousel can be dragged left or right, via touch/swipe and mouse dragging. |
| `controls.next_previous.style` | `thumbnails` | When viewing media, what kind of controls to show to move to the previous/next media item. Acceptable values: `thumbnails`, `chevrons`, `none` . |
| `controls.next_previous.size` | `48px` | The size of the next/previous controls (in CSS Units)[https://www.w3schools.com/cssref/css_units.asp].|
+2 -1
View File
@@ -197,7 +197,7 @@ export class FrigateCardViewerCore extends LitElement {
'.embla__viewport',
) as HTMLElement;
if (carouselNode) {
if (carouselNode && this.viewerConfig) {
this._loadedCarousel = true;
// Start the carousel on the selected child number.
@@ -209,6 +209,7 @@ export class FrigateCardViewerCore extends LitElement {
this._carousel = EmblaCarousel(carouselNode, {
startIndex: isNaN(startIndex) ? undefined : startIndex,
draggable: this.viewerConfig.draggable,
});
// Update views and dispatch media-show events based on slide selections.
this._carousel.on('select', this._selectSlideSetViewHandler.bind(this));
+11
View File
@@ -585,6 +585,17 @@ export class FrigateCardEditor extends LitElement implements LovelaceCardEditor
@change=${this._valueChangedHandler}
></ha-switch>
</ha-formfield>
<ha-formfield .label=${localize('config.event_viewer.draggable')}>
<ha-switch
.checked=${getConfigValue(
this._config,
'event_viewer.draggable',
defaults.event_viewer.draggable,
)}
.configValue=${'event_viewer.draggable'}
@change=${this._valueChangedHandler}
></ha-switch>
</ha-formfield>
<ha-formfield .label=${localize('config.event_viewer.lazy_load')}>
<ha-switch
.checked=${getConfigValue(
+1
View File
@@ -31,6 +31,7 @@
},
"event_viewer": {
"autoplay_clip": "Autoplay most recent clip (In 'clip' view)",
"draggable": "Event viewer can be dragged/swiped",
"lazy_load": "Lazily load event media",
"controls": {
"next_previous": {
+2
View File
@@ -384,6 +384,7 @@ export type MenuConfig = z.infer<typeof menuConfigSchema>;
const viewerConfigDefault = {
autoplay_clip: false,
lazy_load: true,
draggable: true,
controls: {
next_previous: {
size: '48px',
@@ -405,6 +406,7 @@ const viewerConfigSchema = z
.object({
autoplay_clip: z.boolean().default(viewerConfigDefault.autoplay_clip),
lazy_load: z.boolean().default(viewerConfigDefault.lazy_load),
draggable: z.boolean().default(viewerConfigDefault.draggable),
controls: z
.object({
next_previous: nextPreviousControlConfigSchema,