Skip to content

Conversation

@joeizang
Copy link
Collaborator

@joeizang joeizang commented Nov 19, 2025

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)

@joeizang joeizang self-assigned this Nov 19, 2025
@joeizang joeizang added the WIP label Nov 19, 2025
@netlify
Copy link

netlify bot commented Nov 19, 2025

Deploy Preview for reliable-cocada-166884 ready!

Name Link
🔨 Latest commit bdbcb97
🔍 Latest deploy log https://app.netlify.com/projects/reliable-cocada-166884/deploys/692a407ade027a0008278fc6
😎 Deploy Preview https://deploy-preview-6570--reliable-cocada-166884.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@joeizang joeizang marked this pull request as draft November 19, 2025 11:44
@joeizang joeizang marked this pull request as ready for review November 24, 2025 11:01
@joeizang joeizang added ready-to-review PR ready to review and removed WIP labels Nov 24, 2025
Copy link
Collaborator

@Aniket-Engg Aniket-Engg left a 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 system doesn't allow to select files from modal
  • Import files from local file system doesn't allow to upload a file successfully. Shows overwrite modal
  • If we try to create a file from GITHUB ACTIONS actions and that file is already existing, it does nothing and shows no info to user

@joeizang
Copy link
Collaborator Author

  • files from local file system doesn't allow to upload a file successfully. Shows overwrite modal

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.

@nx-cloud
Copy link

nx-cloud bot commented Nov 27, 2025

View your CI Pipeline Execution ↗ for commit b78d53b

Command Status Duration Result
nx lint vyper ✅ Succeeded <1s View ↗
nx lint remixd ✅ Succeeded <1s View ↗
nx lint solhint ✅ Succeeded <1s View ↗
nx lint doc-gen ✅ Succeeded <1s View ↗
nx lint remix-ui ✅ Succeeded <1s View ↗
nx lint learneth ✅ Succeeded <1s View ↗
nx lint debugger ✅ Succeeded <1s View ↗
nx lint remix-lib ✅ Succeeded <1s View ↗
Additional runs (24) ✅ Succeeded ... View ↗

☁️ Nx Cloud last updated this comment at 2025-11-28 23:31:51 UTC

@ci-pr-comment
Copy link

ci-pr-comment bot commented Nov 27, 2025

❌ E2E failures detected (workflow: web)

Last run: Fri, Nov 28, 2025, 11:41 PM UTC

View HTML report

Top failing tests (2/2):

  • Add contract file to workspace using import from HTTPS (template_exp_modal_group1.test)
  • Should load script runner ethers6 (script-runner.test)

Report generated by CI; artifacts are retained per CircleCI retention settings.

Copy link
Collaborator

@Aniket-Engg Aniket-Engg left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Screenshot 2025-11-28 at 9 21 15 PM
  • This button still says validate workspace
  • Clicking on Create with AI doesn't unhide the AI assistant
  • If after adding a file in any manner, no file is being opened in editor, in all such cases, a toaster should be displayed informing the users the folder path at which file(s) is/are added


uploadFolder(target) {
return new Promise((resolve, reject) => {
return this.emit('uploadFolderReducerEvent', '/', target, (err, data) => {
Copy link
Collaborator

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?

Copy link
Collaborator Author

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)
Copy link
Collaborator

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

Copy link
Collaborator Author

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://')
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

url => URL

Copy link
Collaborator Author

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>}
Copy link
Collaborator

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

Copy link
Collaborator Author

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.',
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove commented line

Copy link
Collaborator Author

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)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove log

Copy link
Collaborator Author

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)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this

Copy link
Collaborator Author

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)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this

Copy link
Collaborator Author

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)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and this log

Copy link
Collaborator Author

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)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

remove commented line

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

done

@joeizang
Copy link
Collaborator Author

Screenshot 2025-11-28 at 9 21 15 PM * This button still says validate workspace * Clicking on Create with AI doesn't unhide the AI assistant * If after adding a file in any manner, no file is being opened in editor, in all such cases, a toaster should be displayed informing the users the folder path at which file(s) is/are added

Thanks for pointing these out. I have addressed them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ready-to-review PR ready to review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants