styled_crop_and_fix

This commit is contained in:
Mateusz Gruszczyński
2026-08-16 09:35:02 +02:00
parent 2f7da28266
commit be3c315ba1
4 changed files with 151 additions and 10 deletions
+18 -5
View File
@@ -203,12 +203,25 @@ export function bindNoteFiles({ editor, endpoints, getAccessToken, getUploadMaxS
return { start: start + text.length, end: start + text.length };
}
function moveCursorToNextLine(position, inputType = "insertText") {
const cursor = Math.max(0, Math.min(position, editor.value.length));
if (editor.value[cursor] === "\n") {
editor.setSelectionRange(cursor + 1, cursor + 1);
return { start: cursor + 1, end: cursor + 1 };
}
return insertText("\n", { start: cursor, end: cursor }, inputType);
}
function insertAttachmentText(text, range = null, inputType = "insertText") {
const inserted = insertText(text, range, inputType);
return moveCursorToNextLine(inserted.end, inputType);
}
function insertVideoPlayer(text, range = null, inputType = "insertText") {
const start = Math.max(0, Math.min(range?.start ?? editor.selectionStart, editor.value.length));
const end = Math.max(start, Math.min(range?.end ?? editor.selectionEnd, editor.value.length));
const prefix = start > 0 && editor.value[start - 1] !== "\n" ? "\n" : "";
const suffix = end < editor.value.length && editor.value[end] !== "\n" ? "\n" : "";
return insertText(`${prefix}${text}${suffix}`, { start, end }, inputType);
return insertAttachmentText(`${prefix}${text}`, { start, end }, inputType);
}
async function uploadFile(file, onUploaded, insertMode = "auto") {
@@ -272,7 +285,7 @@ export function bindNoteFiles({ editor, endpoints, getAccessToken, getUploadMaxS
const insertMode = isLikelyVideoFile(file) ? await chooseVideoInsertMode(file.name) : "auto";
if (!insertMode) return;
const range = { start: editor.selectionStart, end: editor.selectionEnd };
await uploadFile(file, text => insertMode === "player" ? insertVideoPlayer(text, range) : insertText(text, range), insertMode);
await uploadFile(file, text => insertMode === "player" ? insertVideoPlayer(text, range) : insertAttachmentText(text, range), insertMode);
});
document.querySelector("#editor-workspace")?.addEventListener("paste", async event => {
@@ -307,7 +320,7 @@ export function bindNoteFiles({ editor, endpoints, getAccessToken, getUploadMaxS
const insertMode = isLikelyVideoFile(file) ? await chooseVideoInsertMode(file.name) : "auto";
if (insertMode) await uploadFile(file, insertPastedAlias, insertMode);
}
editor.setSelectionRange(state.cursor, state.cursor);
if (state.inserted) moveCursorToNextLine(state.cursor, "insertFromPaste");
});
document.querySelector("#files-button").addEventListener("click", () => loadFiles({ open: true }));
@@ -319,7 +332,7 @@ export function bindNoteFiles({ editor, endpoints, getAccessToken, getUploadMaxS
const mode = addButton.dataset.insertMode;
const text = aliasCode(addButton.dataset.name, addButton.dataset.name, addButton.dataset.mime, mode);
if (mode === "player") insertVideoPlayer(text);
else insertText(text);
else insertAttachmentText(text);
toast("Added to note");
return;
}