mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-02-03 08:53:36 +00:00
e2e component rename v3
This commit is contained in:
@@ -1000,6 +1000,33 @@ export function ContextView() {
|
|||||||
id="markdown-content"
|
id="markdown-content"
|
||||||
value={newMarkdownContent}
|
value={newMarkdownContent}
|
||||||
onChange={(e) => setNewMarkdownContent(e.target.value)}
|
onChange={(e) => setNewMarkdownContent(e.target.value)}
|
||||||
|
onDrop={async (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
|
||||||
|
// Try files first, then items for better compatibility
|
||||||
|
let files = Array.from(e.dataTransfer.files);
|
||||||
|
if (files.length === 0 && e.dataTransfer.items) {
|
||||||
|
const items = Array.from(e.dataTransfer.items);
|
||||||
|
files = items
|
||||||
|
.filter((item) => item.kind === 'file')
|
||||||
|
.map((item) => item.getAsFile())
|
||||||
|
.filter((f): f is globalThis.File => f !== null);
|
||||||
|
}
|
||||||
|
|
||||||
|
const mdFile = files.find((f) => isMarkdownFile(f.name));
|
||||||
|
if (mdFile) {
|
||||||
|
const content = await mdFile.text();
|
||||||
|
setNewMarkdownContent(content);
|
||||||
|
if (!newMarkdownName.trim()) {
|
||||||
|
setNewMarkdownName(mdFile.name);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}}
|
||||||
|
onDragOver={(e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
e.stopPropagation();
|
||||||
|
}}
|
||||||
placeholder="Enter your markdown content here..."
|
placeholder="Enter your markdown content here..."
|
||||||
className="w-full h-60 p-3 font-mono text-sm bg-background border border-border rounded-lg resize-none focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent"
|
className="w-full h-60 p-3 font-mono text-sm bg-background border border-border rounded-lg resize-none focus:outline-none focus:ring-2 focus:ring-ring focus:border-transparent"
|
||||||
spellCheck={false}
|
spellCheck={false}
|
||||||
|
|||||||
@@ -19,19 +19,29 @@ export async function simulateFileDrop(
|
|||||||
const dataTransfer = new DataTransfer();
|
const dataTransfer = new DataTransfer();
|
||||||
dataTransfer.items.add(file);
|
dataTransfer.items.add(file);
|
||||||
|
|
||||||
|
// Create events and explicitly define the dataTransfer property
|
||||||
|
// to ensure it's accessible (some browsers don't properly set it from constructor)
|
||||||
|
const dragOverEvent = new DragEvent('dragover', {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true,
|
||||||
|
});
|
||||||
|
Object.defineProperty(dragOverEvent, 'dataTransfer', {
|
||||||
|
value: dataTransfer,
|
||||||
|
writable: false,
|
||||||
|
});
|
||||||
|
|
||||||
|
const dropEvent = new DragEvent('drop', {
|
||||||
|
bubbles: true,
|
||||||
|
cancelable: true,
|
||||||
|
});
|
||||||
|
Object.defineProperty(dropEvent, 'dataTransfer', {
|
||||||
|
value: dataTransfer,
|
||||||
|
writable: false,
|
||||||
|
});
|
||||||
|
|
||||||
// Dispatch drag events
|
// Dispatch drag events
|
||||||
target.dispatchEvent(
|
target.dispatchEvent(dragOverEvent);
|
||||||
new DragEvent('dragover', {
|
target.dispatchEvent(dropEvent);
|
||||||
dataTransfer,
|
|
||||||
bubbles: true,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
target.dispatchEvent(
|
|
||||||
new DragEvent('drop', {
|
|
||||||
dataTransfer,
|
|
||||||
bubbles: true,
|
|
||||||
})
|
|
||||||
);
|
|
||||||
},
|
},
|
||||||
{ selector: targetSelector, content: fileContent, name: fileName, mime: mimeType }
|
{ selector: targetSelector, content: fileContent, name: fileName, mime: mimeType }
|
||||||
);
|
);
|
||||||
|
|||||||
Reference in New Issue
Block a user