pull/5370/head
filip mertens 1 year ago
parent ea27ef4cc2
commit 42af0aefac
  1. 1
      apps/remix-ide/src/app.js
  2. 15
      libs/remix-ui/app/src/lib/remix-app/context/context.tsx
  3. 2
      libs/remix-ui/app/src/lib/remix-app/context/provider.tsx
  4. 8
      libs/remix-ui/app/src/lib/remix-app/remix-app.tsx
  5. 11
      libs/remix-ui/workspace/src/lib/components/workspace-hamburger-item.tsx
  6. 13
      libs/remix-ui/workspace/src/lib/components/workspace-hamburger.tsx

@ -148,6 +148,7 @@ class AppComponent {
} }
this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics') this.showMatamo = matomoDomains[window.location.hostname] && !Registry.getInstance().get('config').api.exists('settings/matomo-analytics')
this.walkthroughService = new WalkthroughService(appManager, this.showMatamo) 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'] const hosts = ['127.0.0.1:8080', '192.168.0.101:8080', 'localhost:8080']
// workaround for Electron support // workaround for Electron support

@ -1,8 +1,21 @@
import React from 'react' import React from 'react'
import {AlertModal, AppModal} from '../interface' import {AlertModal, AppModal} from '../interface'
import {ModalInitialState} from '../state/modals' import {ModalInitialState} from '../state/modals'
import { Plugin } from '@remixproject/engine'
export const AppContext = React.createContext<any>(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<appProviderContextType>(null)
export interface dispatchModalInterface { export interface dispatchModalInterface {
modal: (data: AppModal) => void modal: (data: AppModal) => void

@ -80,7 +80,7 @@ export const ModalProvider = ({children = [], reducer = modalReducer, initialSta
) )
} }
export const AppProvider = ({children = [], value = {}} = {}) => { export const AppProvider = ({children = [], value = {}} = null) => {
return ( return (
<AppContext.Provider value={value}> <AppContext.Provider value={value}>
<ModalProvider>{children}</ModalProvider> <ModalProvider>{children}</ModalProvider>

@ -7,10 +7,9 @@ import DragBar from './components/dragbar/dragbar'
import {AppProvider} from './context/provider' import {AppProvider} from './context/provider'
import AppDialogs from './components/modals/dialogs' import AppDialogs from './components/modals/dialogs'
import DialogViewPlugin from './components/modals/dialogViewPlugin' import DialogViewPlugin from './components/modals/dialogViewPlugin'
import { AppContext } from './context/context' import { AppContext, appProviderContextType } from './context/context'
import { FormattedMessage, IntlProvider } from 'react-intl' import { FormattedMessage, IntlProvider } from 'react-intl'
import { CustomTooltip } from '@remix-ui/helper'; import { CustomTooltip } from '@remix-ui/helper';
import { RemixUiXterminals } from '@remix-ui/xterm'
interface IRemixAppUi { interface IRemixAppUi {
app: any app: any
@ -74,12 +73,13 @@ const RemixApp = (props: IRemixAppUi) => {
}) })
} }
const value = { const value: appProviderContextType = {
settings: props.app.settings, settings: props.app.settings,
showMatamo: props.app.showMatamo, showMatamo: props.app.showMatamo,
appManager: props.app.appManager, appManager: props.app.appManager,
modal: props.app.notification, modal: props.app.notification,
layout: props.app.layout layout: props.app.layout,
platform: props.app.platform,
} }
return ( return (

@ -1,7 +1,8 @@
import React from 'react' import React, { useContext } from 'react'
import {CustomTooltip, CustomMenu, CustomIconsToggle} from '@remix-ui/helper' import {CustomTooltip, CustomMenu, CustomIconsToggle} from '@remix-ui/helper'
import {Dropdown, NavDropdown} from 'react-bootstrap' import {Dropdown, NavDropdown} from 'react-bootstrap'
import {FormattedMessage} from 'react-intl' 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 || []) const _paq = (window._paq = window._paq || [])
@ -10,13 +11,16 @@ export interface HamburgerMenuItemProps {
kind: string kind: string
actionOnClick: () => void actionOnClick: () => void
fa: string fa: string
platforms: appPlatformType[]
} }
export function HamburgerMenuItem(props: HamburgerMenuItemProps) { export function HamburgerMenuItem(props: HamburgerMenuItemProps) {
const {hideOption} = props const {hideOption} = props
const {platform} = useContext(AppContext)
const uid = 'workspace' + props.kind const uid = 'workspace' + props.kind
return ( return (
<> <>
{props.platforms.includes(platform)?(
<Dropdown.Item> <Dropdown.Item>
<CustomTooltip placement="right" tooltipId={uid + 'Tooltip'} tooltipClasses="text-nowrap" tooltipText={<FormattedMessage id={'filePanel.workspace.' + props.kind} />}> <CustomTooltip placement="right" tooltipId={uid + 'Tooltip'} tooltipClasses="text-nowrap" tooltipText={<FormattedMessage id={'filePanel.workspace.' + props.kind} />}>
<div <div
@ -33,7 +37,7 @@ export function HamburgerMenuItem(props: HamburgerMenuItemProps) {
</span> </span>
</div> </div>
</CustomTooltip> </CustomTooltip>
</Dropdown.Item> </Dropdown.Item>):null}
</> </>
) )
} }
@ -69,6 +73,7 @@ export interface HamburgerSubMenuItemProps {
id: string id: string
title: string title: string
subMenus: Array<HamburgerMenuItemProps> subMenus: Array<HamburgerMenuItemProps>
platforms: appPlatformType[]
} }
export function HamburgerSubMenuItem(props: HamburgerSubMenuItemProps) { export function HamburgerSubMenuItem(props: HamburgerSubMenuItemProps) {
@ -76,7 +81,7 @@ export function HamburgerSubMenuItem(props: HamburgerSubMenuItemProps) {
<> <>
<NavDropdown title={props.title} as={CustomMenu} key={props.id} id={props.id} drop="right"> <NavDropdown title={props.title} as={CustomMenu} key={props.id} id={props.id} drop="right">
{props.subMenus.map((item) => ( {props.subMenus.map((item) => (
<NavHamburgerMenuItem kind={item.kind} fa={item.fa} hideOption={item.hideOption} actionOnClick={item.actionOnClick} /> <NavHamburgerMenuItem platforms={props.platforms} kind={item.kind} fa={item.fa} hideOption={item.hideOption} actionOnClick={item.actionOnClick} />
))} ))}
</NavDropdown> </NavDropdown>
</> </>

@ -33,6 +33,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.createWorkspace() props.createWorkspace()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web', 'desktop']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="clone" kind="clone"
@ -42,6 +43,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.cloneGitRepository() props.cloneGitRepository()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web', 'desktop']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="rename" kind="rename"
@ -51,6 +53,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.renameCurrentWorkspace() props.renameCurrentWorkspace()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="download" kind="download"
@ -60,6 +63,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.downloadCurrentWorkspace() props.downloadCurrentWorkspace()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="delete" kind="delete"
@ -69,6 +73,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.deleteCurrentWorkspace() props.deleteCurrentWorkspace()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<Dropdown.Divider className="border mb-0 mt-0 remixui_menuhr" style={{pointerEvents: 'none'}} /> <Dropdown.Divider className="border mb-0 mt-0 remixui_menuhr" style={{pointerEvents: 'none'}} />
<HamburgerMenuItem <HamburgerMenuItem
@ -79,6 +84,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.deleteAllWorkspaces() props.deleteAllWorkspaces()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="backup" kind="backup"
@ -88,6 +94,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.downloadWorkspaces() props.downloadWorkspaces()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="restore" kind="restore"
@ -97,6 +104,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.restoreBackup() props.restoreBackup()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<Dropdown.Divider className="border mt-0 mb-0 remixui_menuhr" style={{pointerEvents: 'none'}} /> <Dropdown.Divider className="border mt-0 mb-0 remixui_menuhr" style={{pointerEvents: 'none'}} />
<HamburgerMenuItem <HamburgerMenuItem
@ -107,6 +115,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.addGithubAction() props.addGithubAction()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web', 'desktop']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="tssoltestghaction" kind="tssoltestghaction"
@ -116,6 +125,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.addTsSolTestGithubAction() props.addTsSolTestGithubAction()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web', 'desktop']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="slitherghaction" kind="slitherghaction"
@ -125,6 +135,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.addSlitherGithubAction() props.addSlitherGithubAction()
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web', 'desktop']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<Dropdown.Divider className="border mb-0 mt-0 remixui_menuhr" style={{pointerEvents: 'none'}} /> <Dropdown.Divider className="border mb-0 mt-0 remixui_menuhr" style={{pointerEvents: 'none'}} />
<HamburgerMenuItem <HamburgerMenuItem
@ -135,6 +146,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.addHelperScripts('etherscan') props.addHelperScripts('etherscan')
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web', 'desktop']}
></HamburgerMenuItem> ></HamburgerMenuItem>
<HamburgerMenuItem <HamburgerMenuItem
kind="addscriptdeployer" kind="addscriptdeployer"
@ -144,6 +156,7 @@ export function HamburgerMenu(props: HamburgerMenuProps) {
props.addHelperScripts('deployer') props.addHelperScripts('deployer')
props.hideIconsMenu(!showIconsMenu) props.hideIconsMenu(!showIconsMenu)
}} }}
platforms={['web', 'desktop']}
></HamburgerMenuItem> ></HamburgerMenuItem>
</> </>
) )

Loading…
Cancel
Save