-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Template Explorer "File Mode" Updates #6570
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: master
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for reliable-cocada-166884 ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
…older in template explorer.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Import files from local file systemdoesn't allow to select files from modalImport files from local file systemdoesn't allow to upload a file successfully. Shows overwrite modal- If we try to create a file from
GITHUB ACTIONSactions and that file is already existing, it does nothing and shows no info to user
For point 2, If the file already exists, it should ask to overwrite shouldn't it? This is our standard behaviour so I don't understand what I should do here. |
|
View your CI Pipeline Execution ↗ for commit b78d53b
☁️ Nx Cloud last updated this comment at |
|
❌ E2E failures detected (workflow: web) Last run: Fri, Nov 28, 2025, 11:41 PM UTC Top failing tests (2/2):
Report generated by CI; artifacts are retained per CircleCI retention settings. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
|
||
| uploadFolder(target) { | ||
| return new Promise((resolve, reject) => { | ||
| return this.emit('uploadFolderReducerEvent', '/', target, (err, data) => { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do you need return on this line too?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Error. Fixed now
| const [externalResourceNameError, setExternalResourceNameError] = useState('') | ||
|
|
||
| useEffect(() => { | ||
| console.log('state', state) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove log an subsequently whole useEffect
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
|
|
||
| <button className="btn btn-primary btn-lg mx-3" data-id="validateWorkspaceButton" onClick={async () => { | ||
| if (!externalResourceName.startsWith('ipfs://') && !externalResourceName.startsWith('https://')) { | ||
| setExternalResourceNameError('Your url must start with the proper protocol prefix of either ipfs:// or https://') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
url => URL
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| data-id="templateExplorerBodyLabel" | ||
| className={theme?.name === 'Dark' ? 'text-white-force fs-5' : 'text-dark fs-5'} | ||
| >{state.manageCategory === 'Template' ? 'Workspace Templates' : 'File Templates'}</label> | ||
| {state.manageCategory === 'Files' && <label htmlFor="templateExplorerBodySubheading" className={theme?.name === 'Dark' ? 'text-white-force fs-6 mb-3' : 'text-dark fs-6 mb-3'}>Choose a template to add files to your workspace</label>} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
add files to your currentworkspace
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| { value: "accountAbstraction", displayName: 'Account Abstraction', IsArtefact: true, description: 'A repo about ERC-4337 and EIP-7702', | ||
| }, | ||
| { value: 'remixAiTemplate', tagList: ['AI'], displayName: 'RemixAI Template Generation', IsArtefact: true, description: 'AI generated workspace. Workspace gets generated with a user prompt.', | ||
| { value: 'remixAiTemplate', tagList: ['AI'], displayName: 'RemixAI Template Generation', IsArtefact: true, description: 'AI generated workspace.',//'AI generated workspace. Workspace gets generated with a user prompt.', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove commented line
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| ) => { | ||
|
|
||
| if (scriptTemplates.some(template => template.templateName === workspaceTemplateName)) { | ||
| console.log('scriptTemplates found', scriptTemplates) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove log
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| if (scriptTemplates.some(template => template.templateName === workspaceTemplateName)) { | ||
| console.log('scriptTemplates found', scriptTemplates) | ||
| const templateArtefact = scriptTemplates.find(template => template.templateName === workspaceTemplateName)?.templateArtefact | ||
| console.log('templateArtefact found', templateArtefact) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
| console.log('templateArtefact found', templateArtefact) | ||
| if (templateArtefact) { | ||
| for (const file of templateArtefact.files) { | ||
| console.log('checking file', file) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| for (const file of templateArtefact.files) { | ||
| console.log('checking file', file) | ||
| const fileExists = await plugin.call('fileManager', 'exists', file) | ||
| console.log('fileExists', fileExists) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
and this log
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done
| data-id="fileExplorerCreateButton-importFromIpfs" | ||
| key={index} | ||
| onClick={async () => { | ||
| // await global.plugin.call('templateexplorermodal', 'updateTemplateExplorerInFileMode', true) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
remove commented line
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
done


Update the Template explorer to handle the manipulation of files. This removes the file explorer menu and consolidates basic file ops inside of template explorer. (19/11/25)