/** * Copyright (c) OpenLens Authors. All rights reserved. * Licensed under MIT License. See LICENSE in root directory for more information. */ import styles from "./top-bar.module.scss"; import React, { useEffect } from "react"; import { observer } from "mobx-react"; import type { IComputedValue } from "mobx"; import { withInjectables } from "@ogre-tools/injectable-react"; import toggleMaximizeWindowInjectable from "./toggle-maximize-window/toggle-maximize-window.injectable"; import watchHistoryStateInjectable from "../../../remote-helpers/watch-history-state.injectable"; import topBarItemsOnRightSideInjectable from "./top-bar-items/top-bar-items-on-right-side.injectable"; import type { TopBarItem } from "./top-bar-items/top-bar-item-injection-token"; import { Map } from "../../map/map"; import Gutter from "../../gutter/gutter"; import topBarItemsOnLeftSideInjectable from "./top-bar-items/top-bar-items-on-left-side.injectable"; interface Dependencies { itemsOnLeft: IComputedValue; itemsOnRight: IComputedValue; toggleMaximizeWindow: () => void; watchHistoryState: () => () => void; } const NonInjectedTopBar = observer( ({ itemsOnLeft, itemsOnRight, toggleMaximizeWindow, watchHistoryState, }: Dependencies) => { useEffect(() => watchHistoryState(), []); return (
} > {toItemWhichWorksWithWindowDraggingAndDoubleClicking}
} > {toItemWhichWorksWithWindowDraggingAndDoubleClicking}
); }, ); export const TopBar = withInjectables(NonInjectedTopBar, { getProps: (di) => ({ itemsOnLeft: di.inject(topBarItemsOnLeftSideInjectable), itemsOnRight: di.inject(topBarItemsOnRightSideInjectable), toggleMaximizeWindow: di.inject(toggleMaximizeWindowInjectable), watchHistoryState: di.inject(watchHistoryStateInjectable), }), }); const toItemWhichWorksWithWindowDraggingAndDoubleClicking = ( item: TopBarItem, ) => (
{ return event.stopPropagation(); }} >
);