Initial commit
This commit is contained in:
@@ -0,0 +1,111 @@
|
||||
// File Explorer JavaScript functions
|
||||
|
||||
let escapeKeyHandler = null;
|
||||
|
||||
export function registerEscapeKeyHandler(dotNetHelper) {
|
||||
// Remove existing handler if any
|
||||
if (escapeKeyHandler) {
|
||||
document.removeEventListener('keydown', escapeKeyHandler);
|
||||
}
|
||||
|
||||
// Create new handler
|
||||
escapeKeyHandler = (e) => {
|
||||
if (e.key === 'Escape' || e.key === 'Esc') {
|
||||
dotNetHelper.invokeMethodAsync('HandleEscapeKey');
|
||||
}
|
||||
};
|
||||
|
||||
// Register handler
|
||||
document.addEventListener('keydown', escapeKeyHandler);
|
||||
}
|
||||
|
||||
export function unregisterEscapeKeyHandler() {
|
||||
if (escapeKeyHandler) {
|
||||
document.removeEventListener('keydown', escapeKeyHandler);
|
||||
escapeKeyHandler = null;
|
||||
}
|
||||
}
|
||||
|
||||
export function init(treeContainerRef) {
|
||||
// Initialize file explorer if needed
|
||||
}
|
||||
|
||||
export function updateFolderBadges(folderPath, hasWarnings, hasErrors, isModified, warningCount, errorCount, folderName) {
|
||||
// Update folder badges via DOM manipulation
|
||||
const folderElement = document.querySelector(`[data-folder-path="${folderPath}"]`);
|
||||
if (folderElement) {
|
||||
const warningBadge = folderElement.querySelector('[data-badge="warning"]');
|
||||
const errorBadge = folderElement.querySelector('[data-badge="error"]');
|
||||
const modifiedBadge = folderElement.querySelector('[data-badge="modified"]');
|
||||
|
||||
if (warningBadge) {
|
||||
warningBadge.style.display = hasWarnings ? 'inline' : 'none';
|
||||
warningBadge.textContent = warningCount;
|
||||
warningBadge.setAttribute('data-count', warningCount);
|
||||
}
|
||||
|
||||
if (errorBadge) {
|
||||
errorBadge.style.display = hasErrors ? 'inline' : 'none';
|
||||
errorBadge.textContent = errorCount;
|
||||
errorBadge.setAttribute('data-count', errorCount);
|
||||
}
|
||||
|
||||
if (modifiedBadge) {
|
||||
modifiedBadge.style.display = isModified ? 'inline' : 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function updateFileBadges(filePath, hasWarnings, hasErrors, isModified, warningCount, errorCount, fileName) {
|
||||
// Update file badges via DOM manipulation
|
||||
const fileElement = document.querySelector(`[data-file-path="${filePath}"]`);
|
||||
if (fileElement) {
|
||||
const warningBadge = fileElement.querySelector('[data-badge="warning"]');
|
||||
const errorBadge = fileElement.querySelector('[data-badge="error"]');
|
||||
const modifiedBadge = fileElement.querySelector('[data-badge="modified"]');
|
||||
|
||||
if (warningBadge) {
|
||||
warningBadge.style.display = hasWarnings ? 'inline' : 'none';
|
||||
warningBadge.textContent = warningCount;
|
||||
warningBadge.setAttribute('data-count', warningCount);
|
||||
}
|
||||
|
||||
if (errorBadge) {
|
||||
errorBadge.style.display = hasErrors ? 'inline' : 'none';
|
||||
errorBadge.textContent = errorCount;
|
||||
errorBadge.setAttribute('data-count', errorCount);
|
||||
}
|
||||
|
||||
if (modifiedBadge) {
|
||||
modifiedBadge.style.display = isModified ? 'inline' : 'none';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export function UncheckRadioByName(radioName) {
|
||||
const radios = document.querySelectorAll(`input[type="radio"][name="${radioName}"]`);
|
||||
radios.forEach(radio => {
|
||||
radio.checked = false;
|
||||
});
|
||||
}
|
||||
|
||||
export function CheckRadioById(itemId) {
|
||||
const radio = document.getElementById(itemId);
|
||||
if (radio) {
|
||||
radio.checked = true;
|
||||
}
|
||||
}
|
||||
|
||||
export function setElementPosition(elementId, x, y) {
|
||||
const element = document.getElementById(elementId);
|
||||
if (element) {
|
||||
element.style.position = 'fixed';
|
||||
element.style.left = x + 'px';
|
||||
element.style.top = y + 'px';
|
||||
element.style.width = '1px';
|
||||
element.style.height = '1px';
|
||||
element.style.pointerEvents = 'none';
|
||||
element.style.zIndex = '-1';
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user