diff --git a/apps/remix-ide/src/app.js b/apps/remix-ide/src/app.js index a81a13c2e9..cb101b2b0f 100644 --- a/apps/remix-ide/src/app.js +++ b/apps/remix-ide/src/app.js @@ -148,6 +148,7 @@ class AppComponent { } this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') this.walkthroughService = new WalkthroughService(appManager, this.showMatamo) + this.platform = isElectron() ? 'desktop' : 'web' const hosts = ['127.0.0.1:8080', '192.168.0.101:8080', 'localhost:8080'] // workaround for Electron support diff --git a/libs/remix-ui/app/src/lib/remix-app/context/context.tsx b/libs/remix-ui/app/src/lib/remix-app/context/context.tsx index 1dae1787f1..56792ad370 100644 --- a/libs/remix-ui/app/src/lib/remix-app/context/context.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/context/context.tsx @@ -1,8 +1,21 @@ import React from 'react' import {AlertModal, AppModal} from '../interface' import {ModalInitialState} from '../state/modals' +import { Plugin } from '@remixproject/engine' -export const AppContext = React.createContext(null) +export type appProviderContextType = { + settings: any, + showMatamo: boolean + appManager: any + modal: any + layout: any + platform: appPlatformType +} + +export type appPlatformType = 'web' | 'desktop' + + +export const AppContext = React.createContext(null) export interface dispatchModalInterface { modal: (data: AppModal) => void diff --git a/libs/remix-ui/app/src/lib/remix-app/context/provider.tsx b/libs/remix-ui/app/src/lib/remix-app/context/provider.tsx index c267e50e7c..8ddcd08538 100644 --- a/libs/remix-ui/app/src/lib/remix-app/context/provider.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/context/provider.tsx @@ -80,7 +80,7 @@ export const ModalProvider = ({children = [], reducer = modalReducer, initialSta ) } -export const AppProvider = ({children = [], value = {}} = {}) => { +export const AppProvider = ({children = [], value = {}} = null) => { return ( {children} diff --git a/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx b/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx index 3771acfcf2..051f252453 100644 --- a/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx +++ b/libs/remix-ui/app/src/lib/remix-app/remix-app.tsx @@ -7,10 +7,9 @@ import DragBar from './components/dragbar/dragbar' import {AppProvider} from './context/provider' import AppDialogs from './components/modals/dialogs' import DialogViewPlugin from './components/modals/dialogViewPlugin' -import { AppContext } from './context/context' +import { AppContext, appProviderContextType } from './context/context' import { FormattedMessage, IntlProvider } from 'react-intl' import { CustomTooltip } from '@remix-ui/helper'; -import { RemixUiXterminals } from '@remix-ui/xterm' interface IRemixAppUi { app: any @@ -74,12 +73,13 @@ const RemixApp = (props: IRemixAppUi) => { }) } - const value = { + const value: appProviderContextType = { settings: props.app.settings, showMatamo: props.app.showMatamo, appManager: props.app.appManager, modal: props.app.notification, - layout: props.app.layout + layout: props.app.layout, + platform: props.app.platform, } return ( diff --git a/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx b/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx index 56e6c7746b..ed2820669a 100644 --- a/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx +++ b/libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx @@ -1,7 +1,8 @@ -import React from 'react' +import React, { useContext } from 'react' import {CustomTooltip, CustomMenu, CustomIconsToggle} from '@remix-ui/helper' import {Dropdown, NavDropdown} from 'react-bootstrap' import {FormattedMessage} from 'react-intl' +import { AppContext, appPlatformType } from 'libs/remix-ui/app/src/lib/remix-app/context/context' const _paq = (window._paq = window._paq || []) @@ -10,13 +11,16 @@ export interface HamburgerMenuItemProps { kind: string actionOnClick: () => void fa: string + platforms: appPlatformType[] } export function HamburgerMenuItem(props: HamburgerMenuItemProps) { const {hideOption} = props + const {platform} = useContext(AppContext) const uid = 'workspace' + props.kind return ( <> + {props.platforms.includes(platform)?( }>
-
+ ):null} ) } @@ -69,6 +73,7 @@ export interface HamburgerSubMenuItemProps { id: string title: string subMenus: Array + platforms: appPlatformType[] } export function HamburgerSubMenuItem(props: HamburgerSubMenuItemProps) { @@ -76,7 +81,7 @@ export function HamburgerSubMenuItem(props: HamburgerSubMenuItemProps) { <> {props.subMenus.map((item) => ( - + ))} diff --git a/libs/remix-ui/workspace/src/lib/components/workspace-hamburger.tsx b/libs/remix-ui/workspace/src/lib/components/workspace-hamburger.tsx index 399d85e215..c4c79fbc55 100644 --- a/libs/remix-ui/workspace/src/lib/components/workspace-hamburger.tsx +++ b/libs/remix-ui/workspace/src/lib/components/workspace-hamburger.tsx @@ -33,6 +33,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) { props.createWorkspace() props.hideIconsMenu(!showIconsMenu) }} + platforms={['web', 'desktop']} > )