Only show download button in media viewer.

This commit is contained in:
Dermot Duffy
2024-04-02 13:03:00 -07:00
parent d22cc07374
commit 02a469fb43
2 changed files with 31 additions and 2 deletions
+8 -2
View File
@@ -131,7 +131,9 @@ export class MenuButtonController {
.getAllDependentCameras(selectedCameraID, 'substream');
if (selectedCameraID && substreamCameraIDs && view.is('live')) {
const substreams = [...substreamCameraIDs].filter((cameraID) => cameraID !== selectedCameraID);
const substreams = [...substreamCameraIDs].filter(
(cameraID) => cameraID !== selectedCameraID,
);
const streams = [selectedCameraID, ...substreams];
if (streams.length === 2) {
@@ -258,7 +260,11 @@ export class MenuButtonController {
});
}
if (mediaCapabilities?.canDownload && !this._isBeingCasted()) {
if (
view.isViewerView() &&
mediaCapabilities?.canDownload &&
!this._isBeingCasted()
) {
buttons.push({
icon: 'mdi:download',
...config.menu.buttons.download,
@@ -726,6 +726,7 @@ describe('MenuButtonController', () => {
createMediaCapabilities({ canDownload: true }),
);
const view = createView({
view: 'media',
queryResults: new MediaQueriesResults({
results: [new ViewMedia('clip', 'camera-1')],
selectedIndex: 0,
@@ -772,6 +773,28 @@ describe('MenuButtonController', () => {
expect.arrayContaining([expect.objectContaining({ title: 'Download' })]),
);
});
it('not in a non-media view', () => {
const cameraManager = createCameraManager();
vi.mocked(cameraManager.getMediaCapabilities).mockReturnValue(
createMediaCapabilities({ canDownload: true }),
);
const view = createView({
view: 'live',
queryResults: new MediaQueriesResults({
results: [new ViewMedia('clip', 'camera-1')],
selectedIndex: 0,
}),
});
const buttons = calculateButtons(controller, {
cameraManager: cameraManager,
view: view,
});
expect(buttons).not.toEqual(
expect.arrayContaining([expect.objectContaining({ title: 'Download' })]),
);
});
});
it('should have camera UI button', () => {