Skip to content

Commit

Permalink
fix: fix cycle file, extract connect to controller (#126)
Browse files Browse the repository at this point in the history
fix cycle file, extract connect to controller
  • Loading branch information
zhangtengjin authored Apr 15, 2021
1 parent 5a9dba2 commit 69bbb75
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 59 deletions.
9 changes: 6 additions & 3 deletions src/controller/explorer/explorer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@ import 'reflect-metadata';
import * as React from 'react';
import { Controller } from 'mo/react/controller';
import { container, singleton } from 'tsyringe';
import { ExplorerView, FolderTreeView } from 'mo/workbench/sidebar/explore';
import { connect } from 'mo';
import { Explorer, FolderTreeView } from 'mo/workbench/sidebar/explore';
import { IMenuItem } from 'mo/components/menu';
import { MENU_VIEW_SIDEBAR } from 'mo/model/workbench/menuBar';
import { IActivityBarItem } from 'mo/model/workbench/activityBar';
Expand Down Expand Up @@ -76,6 +77,8 @@ export class ExplorerController
onCollapseToolbar: ctx.onCollapseToolbar,
};

const ExplorerView = connect(this.explorerService, Explorer);

const explorePane = {
id: 'explore',
title: 'EXPLORER',
Expand Down Expand Up @@ -153,12 +156,12 @@ export class ExplorerController
}
};

public renderFolderTree() {
public renderFolderTree = () => {
return (
<FolderTreeView
{...this.folderTreeService.getState()?.folderTree}
{...this.folderTreeController}
/>
);
}
};
}
29 changes: 6 additions & 23 deletions src/controller/index.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,9 @@
import { container } from 'tsyringe';
// import { ActivityBarController } from './activityBar';
// import { EditorController } from './editor';
// import { ExplorerController } from './explorer/explorer';
// import { FolderTreeController } from './explorer/folderTree';
// import { SearchController } from './search/search';
// import { MenuBarController } from './menuBar';
import { ExplorerController } from './explorer/explorer';
import { FolderTreeController } from './explorer/folderTree';
import { SearchController } from './search/search';
import { NotificationController } from './notification';
// import { PanelController } from './panel';
// import { SettingsController } from './settings';
// import { SidebarController } from './sidebar';
// import { StatusBarController } from './statusBar';
// import { WorkbenchController } from './workbench';

// export const activityBarController = container.resolve(ActivityBarController);
// export const editorController = container.resolve(EditorController);
// export const menuBarController = container.resolve(MenuBarController);
// export const panelController = container.resolve(PanelController);
// export const sidebarController = container.resolve(SidebarController);
// export const explorerController = container.resolve(ExplorerController);
// export const searchController = container.resolve(SearchController);
// export const statusBarController = container.resolve(StatusBarController);
// export const settingsController = container.resolve(SettingsController);
// export const folderTreeController = container.resolve(FolderTreeController);
// export const workbenchController = container.resolve(WorkbenchController);
export const explorerController = container.resolve(ExplorerController);
export const searchController = container.resolve(SearchController);
export const folderTreeController = container.resolve(FolderTreeController);
export const notificationController = container.resolve(NotificationController);
37 changes: 29 additions & 8 deletions src/controller/search/search.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import 'reflect-metadata';
import { Controller } from 'mo/react/controller';
import { container, singleton } from 'tsyringe';
import { IActivityBarItem } from 'mo';
import { connect, IActivityBarItem } from 'mo';
import * as React from 'react';
import { SearchPanelView } from 'mo/workbench/sidebar/search';
import { SearchPanel } from 'mo/workbench/sidebar/search';
import { IActionBarItem } from 'mo/components/actionBar';
import {
SEARCH_CASE_SENSITIVE_COMMAND_ID,
Expand All @@ -17,6 +17,8 @@ import {
ActivityBarService,
IActivityBarService,
ISearchService,
FolderTreeService,
IFolderTreeService,
ISidebarService,
SearchService,
SidebarService,
Expand All @@ -38,24 +40,43 @@ export class SearchController extends Controller implements ISearchController {
private readonly activityBarService: IActivityBarService;
private readonly sidebarService: ISidebarService;
private readonly searchService: ISearchService;
private readonly searchController: ISearchController;
private readonly folderTreeService: IFolderTreeService;

constructor() {
super();
this.activityBarService = container.resolve(ActivityBarService);
this.sidebarService = container.resolve(SidebarService);
this.searchService = container.resolve(SearchService);
this.searchController = container.resolve(SearchController);
this.folderTreeService = container.resolve(FolderTreeService);
this.initView();
}

private initView = () => {
const ctx = this;
private initView() {
const SearchPanelView = connect(
{
search: this.searchService,
folderTree: this.folderTreeService,
},
SearchPanel
);

const searchEvent = {
setSearchValue: this.setSearchValue,
setReplaceValue: this.setReplaceValue,
onToggleAddon: this.onToggleAddon,
onToggleCaseSensitive: this.onToggleCaseSensitive,
onToggleWholeWord: this.onToggleWholeWord,
onToggleRegex: this.onToggleRegex,
onTogglePreserveCase: this.onTogglePreserveCase,
onToggleRepalceAll: this.onToggleRepalceAll,
convertFoldToSearchTree: this.convertFoldToSearchTree,
};

const searchSidePane = {
id: 'searchPane',
title: 'SEARCH',
render() {
return <SearchPanelView {...ctx.searchController} />;
return <SearchPanelView {...searchEvent} />;
},
};

Expand All @@ -70,7 +91,7 @@ export class SearchController extends Controller implements ISearchController {
});
}
});
};
}

public readonly setSearchValue = (value?: string) => {
this.searchService.setSearchValue?.(value);
Expand Down
8 changes: 2 additions & 6 deletions src/workbench/sidebar/explore/index.tsx
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
import 'reflect-metadata';
import { connect } from 'mo/react';
import { container } from 'tsyringe';
import { ExplorerService, FolderTreeService } from 'mo/services';
import { FolderTreeService } from 'mo/services';
import { Explorer } from './explore';
import FolderTree from './folderTree';
import { ExplorerController } from 'mo/controller/explorer/explorer';
import { FolderTreeController } from 'mo/controller/explorer/folderTree';

const explorerService = container.resolve(ExplorerService);
const explorerController = container.resolve(ExplorerController);
const folderTreeService = container.resolve(FolderTreeService);
const folderTreeController = container.resolve(FolderTreeController);

const ExplorerView = connect(explorerService, Explorer, explorerController);
const FolderTreeView = connect(
folderTreeService,
FolderTree,
folderTreeController
);
export { ExplorerView, Explorer, FolderTreeView, FolderTree };
export { Explorer, FolderTreeView, FolderTree };
20 changes: 1 addition & 19 deletions src/workbench/sidebar/search/index.tsx
Original file line number Diff line number Diff line change
@@ -1,20 +1,2 @@
import 'reflect-metadata';
import { connect } from 'mo/react';
import SearchPanel from './searchPanel';
import { FolderTreeService, SearchService } from 'mo/services';
import { container } from 'tsyringe';
import { SearchController } from 'mo/controller/search/search';

const searchService = container.resolve(SearchService);
const folderTreeService = container.resolve(FolderTreeService);
const searchController = container.resolve(SearchController);

const SearchPanelView = connect(
{
search: searchService,
folderTree: folderTreeService,
},
SearchPanel,
searchController
);
export { SearchPanelView, SearchPanel };
export { SearchPanel };

0 comments on commit 69bbb75

Please sign in to comment.