mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-03 20:06:08 +01:00 
			
		
		
		
	chore(client/ts): port components/mobile_screen_switcher
This commit is contained in:
		@@ -9,7 +9,7 @@ import TabManager from "./tab_manager.js";
 | 
				
			|||||||
import Component from "./component.js";
 | 
					import Component from "./component.js";
 | 
				
			||||||
import keyboardActionsService from "../services/keyboard_actions.js";
 | 
					import keyboardActionsService from "../services/keyboard_actions.js";
 | 
				
			||||||
import linkService, { ViewScope } from "../services/link.js";
 | 
					import linkService, { ViewScope } from "../services/link.js";
 | 
				
			||||||
import MobileScreenSwitcherExecutor from "./mobile_screen_switcher.js";
 | 
					import MobileScreenSwitcherExecutor, { Screen } from "./mobile_screen_switcher.js";
 | 
				
			||||||
import MainTreeExecutors from "./main_tree_executors.js";
 | 
					import MainTreeExecutors from "./main_tree_executors.js";
 | 
				
			||||||
import toast from "../services/toast.js";
 | 
					import toast from "../services/toast.js";
 | 
				
			||||||
import ShortcutComponent from "./shortcut_component.js";
 | 
					import ShortcutComponent from "./shortcut_component.js";
 | 
				
			||||||
@@ -157,6 +157,9 @@ export type CommandMappings = {
 | 
				
			|||||||
    moveBranchIdsTo: CommandData & {
 | 
					    moveBranchIdsTo: CommandData & {
 | 
				
			||||||
        branchIds: string[];
 | 
					        branchIds: string[];
 | 
				
			||||||
    };
 | 
					    };
 | 
				
			||||||
 | 
					    setActiveScreen: CommandData & {
 | 
				
			||||||
 | 
					        screen: Screen;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type EventMappings = {
 | 
					type EventMappings = {
 | 
				
			||||||
@@ -188,6 +191,11 @@ export type EventListener<T extends EventNames> = {
 | 
				
			|||||||
    [key in T as `${key}Event`]: (data: EventData<T>) => void
 | 
					    [key in T as `${key}Event`]: (data: EventData<T>) => void
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type CommandListener<T extends CommandNames> = {
 | 
				
			||||||
 | 
					    [key in T as `${key}Command`]: (data: CommandListenerData<T>) => void
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export type CommandListenerData<T extends CommandNames> = CommandMappings[T];
 | 
				
			||||||
export type EventData<T extends EventNames> = EventMappings[T];
 | 
					export type EventData<T extends EventNames> = EventMappings[T];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
type CommandAndEventMappings = (CommandMappings & EventMappings);
 | 
					type CommandAndEventMappings = (CommandMappings & EventMappings);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,8 +1,14 @@
 | 
				
			|||||||
import Component from "./component.js";
 | 
					import Component from "./component.js";
 | 
				
			||||||
import appContext from "./app_context.js";
 | 
					import appContext, { CommandListener, CommandListenerData } from "./app_context.js";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default class MobileScreenSwitcherExecutor extends Component {
 | 
					export type Screen = "detail" | "tree";
 | 
				
			||||||
    setActiveScreenCommand({screen}) {
 | 
					
 | 
				
			||||||
 | 
					export default class MobileScreenSwitcherExecutor extends Component
 | 
				
			||||||
 | 
					    implements CommandListener<"setActiveScreen">
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    private activeScreen?: Screen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    setActiveScreenCommand({screen}: CommandListenerData<"setActiveScreen">) {
 | 
				
			||||||
        if (screen !== this.activeScreen) {
 | 
					        if (screen !== this.activeScreen) {
 | 
				
			||||||
            this.activeScreen = screen;
 | 
					            this.activeScreen = screen;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		Reference in New Issue
	
	Block a user