From 3ce2e5b200220f6d0877e30a2543669171ab3996 Mon Sep 17 00:00:00 2001 From: filip mertens Date: Thu, 22 Jun 2023 10:12:59 +0200 Subject: [PATCH] context menu --- .../src/lib/components/electron-menu.tsx | 3 ++- .../components/file-explorer-context-menu.tsx | 4 +++- .../workspace/src/lib/remix-ui-workspace.tsx | 4 ++-- .../remix-ui/workspace/src/lib/types/index.ts | 2 +- .../remix-ui/workspace/src/lib/utils/index.ts | 21 ++++++++++++------- 5 files changed, 22 insertions(+), 12 deletions(-) diff --git a/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx b/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx index c633d636a9..3c0a6d2631 100644 --- a/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx +++ b/libs/remix-ui/workspace/src/lib/components/electron-menu.tsx @@ -30,7 +30,8 @@ export const ElectronMenu = () => { } return ( - (isElectron() && global.fs.browser.isSuccessfulWorkspace ? null : + !isElectron() ? null : + (global.fs.browser.isSuccessfulWorkspace ? null : <>
{await openFolderElectron(null)}} className='btn btn-primary'>
{global.fs.browser.recentFolders.length > 0 ? diff --git a/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx b/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx index 146721b3b4..445778e2ad 100644 --- a/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx +++ b/libs/remix-ui/workspace/src/lib/components/file-explorer-context-menu.tsx @@ -5,6 +5,7 @@ import { action, FileExplorerContextMenuProps } from '../types' import '../css/file-explorer-context-menu.css' import { customAction } from '@remixproject/plugin-api' import UploadFile from './upload-file' +import isElectron from 'is-electron' declare global { interface Window { @@ -56,7 +57,8 @@ export const FileExplorerContextMenu = (props: FileExplorerContextMenuProps) => } const itemMatchesCondition = (item: action, itemType: string, itemPath: string) => { - if (item.type && Array.isArray(item.type) && (item.type.findIndex(name => name === itemType) !== -1)) return true + if( isElectron() && item.platform && item.platform === 'browser') return false + else if (item.type && Array.isArray(item.type) && (item.type.findIndex(name => name === itemType) !== -1)) return true else if (item.path && Array.isArray(item.path) && (item.path.findIndex(key => key === itemPath) !== -1)) return true else if (item.extension && Array.isArray(item.extension) && (item.extension.findIndex(ext => itemPath.endsWith(ext)) !== -1)) return true else if (item.pattern && Array.isArray(item.pattern) && (item.pattern.filter(value => itemPath.match(new RegExp(value))).length > 0)) return true diff --git a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx index 74fa74dfda..f4975d3d7e 100644 --- a/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx +++ b/libs/remix-ui/workspace/src/lib/remix-ui-workspace.tsx @@ -702,7 +702,7 @@ export function Workspace() { : null} - {currentWorkspace !== LOCALHOST ? ( + {currentWorkspace !== LOCALHOST && !isElectron() ? ( , path?: string[], extension?: string[], pattern?: string[], id: string, multiselect: boolean, label: string, sticky?: boolean, group: number } +export type action = { name: string, type?: Array<'folder' | 'gist' | 'file' | 'workspace'>, path?: string[], extension?: string[], pattern?: string[], id: string, multiselect: boolean, label: string, sticky?: boolean, group: number, platform?: 'electron' | 'browser' } export interface JSONStandardInput { language: "Solidity"; settings?: any, diff --git a/libs/remix-ui/workspace/src/lib/utils/index.ts b/libs/remix-ui/workspace/src/lib/utils/index.ts index 9069e827e0..cdcf7e9d9a 100644 --- a/libs/remix-ui/workspace/src/lib/utils/index.ts +++ b/libs/remix-ui/workspace/src/lib/utils/index.ts @@ -62,7 +62,8 @@ export const contextMenuActions: MenuItems = [{ type: ['file', 'folder', 'workspace'], multiselect: false, label: '', - group: 2 + group: 2, + platform: 'browser' }, { id: 'run', name: 'Run', @@ -76,35 +77,40 @@ export const contextMenuActions: MenuItems = [{ type: ['gist'], multiselect: false, label: '', - group: 4 + group: 4, + platform: 'browser' }, { id: 'publishFolderToGist', name: 'Publish folder to gist', type: ['folder'], multiselect: false, label: '', - group: 4 + group: 4, + platform: 'browser' }, { id: 'publishFileToGist', name: 'Publish file to gist', type: ['file'], multiselect: false, label: '', - group: 4 + group: 4, + platform: 'browser' }, { id: 'uploadFile', name: 'Load a Local File', type: ['folder', 'gist', 'workspace'], multiselect: false, label: 'Load a Local File', - group: 4 + group: 4, + platform: 'browser' }, { id: 'publishToGist', name: 'Push changes to gist', type: ['folder', 'gist'], multiselect: false, label: 'Publish all to Gist', - group: 4 + group: 4, + platform: 'browser' }, { id: 'publishWorkspace', @@ -112,5 +118,6 @@ export const contextMenuActions: MenuItems = [{ type: ['workspace'], multiselect: false, label: '', - group: 4 + group: 4, + platform: 'browser' }] \ No newline at end of file