This commit is contained in:
phamhungd 2025-11-22 01:47:08 +07:00
parent 461ac39b88
commit be77213b65
3 changed files with 71 additions and 11 deletions

View file

@ -232,7 +232,7 @@ document.addEventListener('DOMContentLoaded', () => {
});
loadGallery();
setupSidebarResizer(sidebar, resizeHandle);
initializeSidebarResizer(sidebar, resizeHandle);
function setViewState(state) {
placeholderState.classList.add('hidden');
@ -320,6 +320,32 @@ document.addEventListener('DOMContentLoaded', () => {
}
}
function initializeSidebarResizer(sidebar, handle) {
if (!sidebar || !handle) return;
const resizerQuery = window.matchMedia('(min-width: 1025px)');
let resizerCleanup = null;
const toggleResizer = () => {
if (resizerQuery.matches) {
if (!resizerCleanup) {
resizerCleanup = setupSidebarResizer(sidebar, handle);
}
} else if (resizerCleanup) {
resizerCleanup();
resizerCleanup = null;
sidebar.style.width = '';
}
};
toggleResizer();
if (typeof resizerQuery.addEventListener === 'function') {
resizerQuery.addEventListener('change', toggleResizer);
}
if (typeof resizerQuery.addListener === 'function') {
resizerQuery.addListener(toggleResizer);
}
}
function buildGenerateFormData(fields) {
const formData = new FormData();
@ -483,7 +509,7 @@ document.addEventListener('DOMContentLoaded', () => {
}
function setupSidebarResizer(sidebar, handle) {
if (!sidebar || !handle) return;
if (!sidebar || !handle) return null;
let isResizing = false;
let activePointerId = null;
@ -508,21 +534,31 @@ document.addEventListener('DOMContentLoaded', () => {
document.body.style.cursor = '';
};
handle.addEventListener('pointerdown', (event) => {
const onPointerDown = (event) => {
isResizing = true;
activePointerId = event.pointerId;
handle.setPointerCapture(activePointerId);
document.body.style.cursor = 'ew-resize';
event.preventDefault();
});
};
document.addEventListener('pointermove', (event) => {
const onPointerMove = (event) => {
if (!isResizing) return;
updateWidth(event.clientX);
});
};
handle.addEventListener('pointerdown', onPointerDown);
document.addEventListener('pointermove', onPointerMove);
document.addEventListener('pointerup', stopResize);
document.addEventListener('pointercancel', stopResize);
return () => {
stopResize();
handle.removeEventListener('pointerdown', onPointerDown);
document.removeEventListener('pointermove', onPointerMove);
document.removeEventListener('pointerup', stopResize);
document.removeEventListener('pointercancel', stopResize);
};
}
});

View file

@ -58,13 +58,14 @@ a:hover {
width: 320px;
background: var(--panel-backdrop);
background-image: radial-gradient(circle at 20% -20%, rgba(251, 191, 36, 0.15), transparent 45%);
border-right: 1px solid var(--border-color);
/* border-right: 1px solid var(--border-color); */
border: 1px solid rgba(255, 255, 255, 0.08);
display: flex;
flex-direction: column;
padding: 1.5rem;
overflow-y: auto;
flex-shrink: 0;
box-shadow: inset -1px 0 0 var(--border-color);
/* box-shadow: inset -1px 0 0 var(--border-color); */
backdrop-filter: blur(24px);
border-radius: 1rem;
}
@ -97,6 +98,30 @@ a:hover {
min-height: 0;
}
@media (max-width: 1024px) {
.app-container {
flex-direction: column;
gap: 0.75rem;
}
.sidebar {
width: 100%;
border-radius: 1rem;
margin-bottom: 0;
min-height: calc(100vh - 3rem);
height: auto;
}
.sidebar-resize-handle {
display: none;
}
.content-area {
margin-left: 0;
margin-top: 0;
}
}
.toolbar-info-btn {
border: 1px solid rgba(255, 255, 255, 0.2);
background: rgba(255, 255, 255, 0.04);
@ -429,7 +454,7 @@ button#generate-btn:disabled {
gap: 1rem;
color: var(--text-primary);
border-radius: 1.25rem;
padding: 0.75rem;
/* padding: 0.75rem; */
height: 100%;
min-height: 0;
overflow: hidden;

View file

@ -41,8 +41,7 @@
<div class="input-group image-inputs">
<div class="image-input-header">
<label>Reference Images (optional)</label>
<span>Drag & drop up to 16 files</span>
<label>Reference Images</label>
</div>
<div id="image-input-grid" class="image-input-grid" aria-live="polite"></div>
</div>