feat: Add folder view to view folder media (#2077)

- Closes: #2068

Note: Renames existing `folder` view to `folders` [experimental
functionality]
This commit is contained in:
Dermot Duffy
2025-05-31 17:13:39 -07:00
committed by GitHub
parent 1901475065
commit 956a2e523c
30 changed files with 246 additions and 132 deletions
@@ -1,9 +1,9 @@
import { FolderActionConfig } from '../../../config/schema/actions/custom/folder';
import { FoldersViewActionConfig } from '../../../config/schema/actions/custom/folders-view';
import { FolderViewQuery } from '../../../view/query';
import { CardActionsAPI } from '../../types';
import { AdvancedCameraCardAction } from './base';
export class FolderAction extends AdvancedCameraCardAction<FolderActionConfig> {
export class FoldersViewAction extends AdvancedCameraCardAction<FoldersViewActionConfig> {
public async execute(api: CardActionsAPI): Promise<void> {
await super.execute(api);
@@ -19,7 +19,8 @@ export class FolderAction extends AdvancedCameraCardAction<FolderActionConfig> {
await api.getViewManager().setViewByParametersWithExistingQuery({
params: {
view: 'folder',
// Supports both 'folder' and 'folders' views.
view: this._action.advanced_camera_card_action,
query: new FolderViewQuery(query),
},
});
+3 -2
View File
@@ -10,7 +10,7 @@ import { DefaultAction } from './actions/default';
import { DisplayModeSelectAction } from './actions/display-mode-select';
import { DownloadAction } from './actions/download';
import { ExpandAction } from './actions/expand';
import { FolderAction } from './actions/folder';
import { FoldersViewAction } from './actions/folders-view';
import { FullscreenAction } from './actions/fullscreen';
import { InternalCallbackAction } from './actions/internal-callback';
import { LogAction } from './actions/log';
@@ -152,7 +152,8 @@ export class ActionFactory {
case INTERNAL_CALLBACK_ACTION:
return new InternalCallbackAction(context, action, options?.config);
case 'folder':
return new FolderAction(context, action, options?.config);
case 'folders':
return new FoldersViewAction(context, action, options?.config);
}
/* istanbul ignore next: this path cannot be reached -- @preserve */
@@ -120,6 +120,7 @@ export class ViewQueryExecutor {
viewModifiers.push(...(await executeMediaQuery(mediaType)));
break;
case 'folder':
case 'folders':
viewModifiers.push(...(await executeFolderQuery()));
break;
}