From e3bc15a8d24c9beced4588055cdb6632fb99499a Mon Sep 17 00:00:00 2001 From: Chandler Abraham Date: Sat, 31 May 2025 14:47:51 -0700 Subject: [PATCH] code review --- packages/codemirror/codemirror.mjs | 2 +- packages/codemirror/dragdrop.mjs | 34 ++++-------------------------- 2 files changed, 5 insertions(+), 31 deletions(-) diff --git a/packages/codemirror/codemirror.mjs b/packages/codemirror/codemirror.mjs index dda23acf0..a7158e9f4 100644 --- a/packages/codemirror/codemirror.mjs +++ b/packages/codemirror/codemirror.mjs @@ -24,7 +24,7 @@ import { initTheme, activateTheme, theme } from './themes.mjs'; import { sliderPlugin, updateSliderWidgets } from './slider.mjs'; import { widgetPlugin, updateWidgets } from './widget.mjs'; import { persistentAtom } from '@nanostores/persistent'; -import { dragDropPlugin, dragDropStyles } from './dragdrop.mjs'; +import { dragDropPlugin } from './dragdrop.mjs'; const extensions = { isLineWrappingEnabled: (on) => (on ? EditorView.lineWrapping : []), diff --git a/packages/codemirror/dragdrop.mjs b/packages/codemirror/dragdrop.mjs index 05dc3b45d..d2c57d578 100644 --- a/packages/codemirror/dragdrop.mjs +++ b/packages/codemirror/dragdrop.mjs @@ -11,13 +11,11 @@ async function readFileContent(file) { }); } -// Helper function to check if file is a code file +// Check for common text file formats, to avoid +// accidentally loading images or other files function isCodeFile(file) { const codeExtensions = [ - '.js', '.mjs', '.ts', '.tsx', '.jsx', - '.json', '.txt', '.md', '.tidal', '.strudel', - '.html', '.css', '.scss', '.yaml', '.yml', - '.xml', '.csv', '.log', '.ini', '.conf' + '.js', '.strudel', '.str' ]; const fileName = file.name.toLowerCase(); return codeExtensions.some(ext => fileName.endsWith(ext)) || file.type.startsWith('text/'); @@ -101,25 +99,10 @@ export const dragDropPlugin = ViewPlugin.fromClass( const fileNames = codeFiles.map(f => f.name).join(', '); logger(`Successfully loaded ${codeFiles.length} file(s): ${fileNames}`, 'highlight'); - // Dispatch custom event for external notification handling - this.view.dom.dispatchEvent(new CustomEvent('files-dropped', { - detail: { - success: true, - fileCount: codeFiles.length, - fileNames: fileNames - } - })); } catch (error) { console.error('Error reading dropped files:', error); logger(`Error loading files: ${error.message}`, 'error'); - // Dispatch error event - this.view.dom.dispatchEvent(new CustomEvent('files-dropped', { - detail: { - success: false, - error: error.message - } - })); } } @@ -130,13 +113,4 @@ export const dragDropPlugin = ViewPlugin.fromClass( this.view.dom.removeEventListener('dragleave', this.handleDragLeave); } } -); - -// CSS for drag over effect -export const dragDropStyles = ` - .cm-editor.cm-drag-over { - outline: 2px dashed #4CAF50; - outline-offset: -2px; - background-color: rgba(76, 175, 80, 0.05); - } -`; \ No newline at end of file +); \ No newline at end of file