diff --git a/libs/remix-api/src/lib/plugins/layout-api.ts b/libs/remix-api/src/lib/plugins/layout-api.ts new file mode 100644 index 0000000000..cb53309219 --- /dev/null +++ b/libs/remix-api/src/lib/plugins/layout-api.ts @@ -0,0 +1,13 @@ +import { IFilePanel } from '@remixproject/plugin-api' +import { StatusEvents } from '@remixproject/plugin-utils' + +export interface ILayoutApi { + events:{ + } & StatusEvents + methods: { + maximisePinnedPanel: () => void + maximiseSidePanel: () => void + resetPinnedPanel: () => void + resetSidePanel: () => void + } +} diff --git a/libs/remix-api/src/lib/plugins/pinned-panel-api.ts b/libs/remix-api/src/lib/plugins/pinned-panel-api.ts new file mode 100644 index 0000000000..db3aacf199 --- /dev/null +++ b/libs/remix-api/src/lib/plugins/pinned-panel-api.ts @@ -0,0 +1,11 @@ +import { IFilePanel } from '@remixproject/plugin-api' +import { StatusEvents } from '@remixproject/plugin-utils' + +export interface IPinnedPanelApi { + events:{ + + } & StatusEvents + methods: { + currentFocus(): Promise + } +} diff --git a/libs/remix-api/src/lib/plugins/sidePanel-api.ts b/libs/remix-api/src/lib/plugins/sidePanel-api.ts new file mode 100644 index 0000000000..7f7ccdfd19 --- /dev/null +++ b/libs/remix-api/src/lib/plugins/sidePanel-api.ts @@ -0,0 +1,11 @@ +import { IFilePanel } from '@remixproject/plugin-api' +import { StatusEvents } from '@remixproject/plugin-utils' + +export interface ISidePanelApi { + events:{ + focusChanged: (name: string) => void; + } & StatusEvents + methods: { + + } +} diff --git a/libs/remix-api/src/lib/remix-api.ts b/libs/remix-api/src/lib/remix-api.ts index 2dff94abdc..034c6d4c2e 100644 --- a/libs/remix-api/src/lib/remix-api.ts +++ b/libs/remix-api/src/lib/remix-api.ts @@ -8,6 +8,9 @@ import { INotificationApi } from "./plugins/notification-api" import { ISettings } from "./plugins/settings-api" import { IFilePanelApi } from "./plugins/filePanel-api" import { Plugin } from "@remixproject/engine" +import { ISidePanelApi } from "./plugins/sidePanel-api" +import { IPinnedPanelApi } from "./plugins/pinned-panel-api" +import { ILayoutApi } from "./plugins/layout-api" export interface ICustomRemixApi extends IRemixApi { dgitApi: IGitApi @@ -17,6 +20,9 @@ export interface ICustomRemixApi extends IRemixApi { fileDecorator: IFileDecoratorApi fileManager: IExtendedFileSystem filePanel: IFilePanelApi + sidePanel: ISidePanelApi + pinnedPanel: IPinnedPanelApi + layout: ILayoutApi } export declare type CustomRemixApi = Readonly \ No newline at end of file diff --git a/libs/remix-ui/git/src/components/branchHeader.tsx b/libs/remix-ui/git/src/components/branchHeader.tsx index ee8451ebea..c58d9360d7 100644 --- a/libs/remix-ui/git/src/components/branchHeader.tsx +++ b/libs/remix-ui/git/src/components/branchHeader.tsx @@ -16,16 +16,12 @@ export const BranchHeader = () => { actions.getBranchDifferences(context.currentBranch, null, context) } if (!context.currentBranch || (context.currentBranch && context.currentBranch.name === '')) { - console.log(context) if (context.currentHead === '') { - console.log('not detached') setIsDetached(false) } else { - console.log('detached') setIsDetached(true) } } else { - console.log('not detached') setIsDetached(false) } setLatestCommit(null) diff --git a/libs/remix-ui/git/src/lib/listeners.ts b/libs/remix-ui/git/src/lib/listeners.ts index 6e88ba94fa..37f8b9f3a0 100644 --- a/libs/remix-ui/git/src/lib/listeners.ts +++ b/libs/remix-ui/git/src/lib/listeners.ts @@ -164,6 +164,23 @@ export const setCallBacks = (viewPlugin: Plugin, gitDispatcher: React.Dispatch { + const pinnedPlugin = await plugin.call('pinnedPanel', 'currentFocus') + if (name == 'dgit') { + if (pinnedPlugin === 'dgit') { + plugin.call('layout', 'maximisePinnedPanel') + } else { + plugin.call('layout', 'maximiseSidePanel') + } + } else { + if (pinnedPlugin === 'dgit') { + plugin.call('layout', 'resetPinnedPanel') + } else { + plugin.call('layout', 'resetSidePanel') + } + } + }) + callBackEnabled = true; }