sechan100_daily-routine-2/src/shared/view/activate-view.ts
sechan100 9e21e7f5a3 refactor: fsd 모듈을 alias로 참조
ex) features/routine -> @features/routine
2024-11-13 09:31:43 +09:00

28 lines
No EOL
796 B
TypeScript

import { WorkspaceLeaf } from "obsidian";
import { plugin } from "@shared/plugin-service-locator";
/**
* viewType에 해당하는 뷰를 활성화한다.
* @param viewTypeName 뷰 타입 이름
* @param pos -1: left, 0: center(default), 1: right
*/
export const activateView = async (viewTypeName: string, pos = 0) => {
const app = plugin().app;
let leaf = app.workspace.getLeavesOfType(viewTypeName)[0];
let getLeaf;
if(pos === -1) {
getLeaf = () => app.workspace.getLeftLeaf(false)
} else if(pos === 0) {
getLeaf = () => app.workspace.getLeaf(false)
} else {
getLeaf = () => app.workspace.getRightLeaf(false)
}
if(!leaf) {
leaf = getLeaf() as WorkspaceLeaf;
await leaf.setViewState({ type: viewTypeName });
}
app.workspace.revealLeaf(leaf);
}