-
-
Notifications
You must be signed in to change notification settings - Fork 46
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
Unable to click on meta-bind fields when inside a callout #403
Comments
Work Around Script that is Referenced in the above comment for anyone who is interested. (() => {
console.log("Meta Bind Input in Live Preview script for callouts is running");
function setupListeners() {
function handleClick(e) {
if (e.target instanceof HTMLElement) {
let parent = e.target;
// Check if the clicked element is inside a callout
const callout = parent.closest('[data-callout]');
if (!callout) {
return; // Exit if not in a callout
}
while (parent !== null) {
if (parent.classList.contains('mb-input') || parent.classList.contains('editor-input')) {
e.stopPropagation();
e.preventDefault();
const editorInput = parent.closest('.editor-input');
if (editorInput) {
const textarea = editorInput.querySelector('textarea');
const displayDiv = editorInput.querySelector('div.svelte-1tfnqy0');
if (textarea && displayDiv) {
// Get the original Markdown content from the textarea
const originalContent = textarea.value;
// Hide the display div and show the textarea
displayDiv.style.display = 'none';
textarea.style.display = 'block';
textarea.value = originalContent;
textarea.focus();
// Set up events to handle the editing
textarea.onblur = () => {
textarea.style.display = 'none';
displayDiv.style.display = 'block';
};
}
}
break;
}
parent = parent.parentElement;
}
}
}
function handleKeydown(e) {
if (e.target instanceof HTMLElement && e.target.tagName === 'TEXTAREA') {
// Check if the textarea is inside a callout
const callout = e.target.closest('[data-callout]');
if (!callout) {
return; // Exit if not in a callout
}
let parent = e.target;
while (parent !== null) {
if (parent.classList.contains('mb-input') || parent.classList.contains('editor-input')) {
e.stopPropagation();
break;
}
parent = parent.parentElement;
}
}
}
document.addEventListener('click', handleClick, true);
document.addEventListener('keydown', handleKeydown, true);
console.log("Event listeners for callouts attached");
}
// Delay setup slightly to ensure DOM is ready
setTimeout(setupListeners, 2000);
// Return a cleanup function
return () => {
document.removeEventListener('click', handleClick, true);
document.removeEventListener('keydown', handleKeydown, true);
console.log("Event listeners for callouts removed");
};
})(); |
I had a fix for this a while back, but that broke interaction with some input fields on android in LP. |
I would like for them to be segregated, and have their own fork. Just android, not ios? |
No, I am absolutely not interested in maintaining a fork for mobile. The major reasons are:
However since this plugin is open source under the GPL-3.0 license, you are free to fork it and do whatever you want. Regarding the other issue, I only got reports for Android and none for iOS. |
Updated Script that will work with 1.2.1
|
@LynetteCullens thanks for providing a fix, I am struggling to understand how to use your script. Is this a patch for the plugin?? |
I tested around a bit more. |
I don't know how to prevent the callout from going into edit mode without breaking some input fields. I am open to suggestions and PRs if someone has an idea. |
No, it is just a javascript code that runs every time I open a new note using RunJs plugin. I haven't tested it since 1.2.1 though. I've been working in iOS Obsidian since 1.2.1 so that I will be less inclined to pitchfork them. |
Please fill out these Check-boxes
Plugin Version
1.1.3
This Issue Occurs on
Debug Info
Describe the Issue
Can't interact with input fields when they're placed inside of callouts in Live Preview mode.
Steps to Reproduce
Expected Behavior
I used to be able to interact with the field in Live Preview Mode. So, I expected the field to be interactable without having to switch to Reading View.
Reference: #291
The text was updated successfully, but these errors were encountered: