fixing readonly access with remixd

pull/3174/head
lianahus 2 years ago
parent e2b7fbdc05
commit fd9819d69f
  1. 10
      apps/remix-ide/src/app/editor/editor.js
  2. 4
      apps/remix-ide/src/app/files/fileManager.ts
  3. 3
      libs/remix-ui/editor/src/lib/remix-ui-editor.tsx

@ -220,7 +220,7 @@ class Editor extends Plugin {
if (pathExists) {
contentDep = await readFile(pathDep)
if (contentDep !== '') {
this.emit('addModel', contentDep, 'typescript', pathDep, false)
this.emit('addModel', contentDep, 'typescript', pathDep, this.readOnlySessions[path])
}
} else {
console.log("The file ", pathDep, " can't be found.")
@ -241,7 +241,7 @@ class Editor extends Plugin {
async _createSession (path, content, mode) {
if (!this.activated) return
this.emit('addModel', content, mode, path, false)
this.emit('addModel', content, mode, path, this.readOnlySessions[path])
return {
path,
language: mode,
@ -266,7 +266,7 @@ class Editor extends Plugin {
}
addModel(path, content) {
this.emit('addModel', content, this._getMode(path), path, false)
this.emit('addModel', content, this._getMode(path), path, this.readOnlySessions[path])
}
/**
@ -301,9 +301,9 @@ class Editor extends Plugin {
- URL not prepended with the file explorer. We assume (as it is in the whole app, that this is a "browser" URL
*/
if (!this.sessions[path]) {
this.readOnlySessions[path] = false
const session = await this._createSession(path, content, this._getMode(path))
this.sessions[path] = session
this.readOnlySessions[path] = false
} else if (this.sessions[path].getValue() !== content) {
this.sessions[path].setValue(content)
}
@ -317,9 +317,9 @@ class Editor extends Plugin {
*/
async openReadOnly (path, content) {
if (!this.sessions[path]) {
this.readOnlySessions[path] = true
const session = await this._createSession(path, content, this._getMode(path))
this.sessions[path] = session
this.readOnlySessions[path] = true
}
this._switchSession(path)
}

@ -19,7 +19,9 @@ const profile = {
icon: 'assets/img/fileManager.webp',
permission: true,
version: packageJson.version,
methods: ['closeAllFiles', 'closeFile', 'file', 'exists', 'open', 'writeFile', 'readFile', 'copyFile', 'copyDir', 'rename', 'mkdir', 'readdir', 'dirList', 'fileList', 'remove', 'getCurrentFile', 'getFile', 'getFolder', 'setFile', 'switchFile', 'refresh', 'getProviderOf', 'getProviderByName', 'getPathFromUrl', 'getUrlFromPath', 'saveCurrentFile', 'setBatchFiles', 'isGitRepo'],
methods: ['closeAllFiles', 'closeFile', 'file', 'exists', 'open', 'writeFile', 'readFile', 'copyFile', 'copyDir', 'rename', 'mkdir',
'readdir', 'dirList', 'fileList', 'remove', 'getCurrentFile', 'getFile', 'getFolder', 'setFile', 'switchFile', 'refresh',
'getProviderOf', 'getProviderByName', 'getPathFromUrl', 'getUrlFromPath', 'saveCurrentFile', 'setBatchFiles', 'isGitRepo'],
kind: 'file-system'
}
const errorMsg = {

@ -671,7 +671,6 @@ export const EditorUI = (props: EditorUIProps) => {
monacoRef.current.languages.registerHoverProvider('remix-solidity', new RemixHoverProvider(props, monaco))
monacoRef.current.languages.registerCompletionItemProvider('remix-solidity', new RemixCompletionProvider(props, monaco))
loadTypes(monacoRef.current)
}
@ -683,7 +682,7 @@ export const EditorUI = (props: EditorUIProps) => {
language={editorModelsState[props.currentFile] ? editorModelsState[props.currentFile].language : 'text'}
onMount={handleEditorDidMount}
beforeMount={handleEditorWillMount}
options={{ glyphMargin: true, readOnly: (!editorRef.current || !props.currentFile) }}
options={{ glyphMargin: true, readOnly: ((!editorRef.current || !props.currentFile) && editorModelsState[props.currentFile]?.readOnly) }}
defaultValue={defaultEditorValue}
/>

Loading…
Cancel
Save