fix(chat): inject preview inline in chat tab + resizable note list panel
This commit is contained in:
60
memento-note/scripts/add-resize.js
Normal file
60
memento-note/scripts/add-resize.js
Normal file
@@ -0,0 +1,60 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const filePath = path.join(__dirname, '..', 'components', 'notes-tabs-view.tsx');
|
||||
let src = fs.readFileSync(filePath, 'utf8');
|
||||
|
||||
const insertCode = `
|
||||
// Resizable left panel
|
||||
const [listPanelWidth, setListPanelWidth] = useState(256)
|
||||
const isDraggingRef = useRef(false)
|
||||
|
||||
const handleResizeStart = (e) => {
|
||||
e.preventDefault()
|
||||
isDraggingRef.current = true
|
||||
const startX = e.clientX
|
||||
const startW = listPanelWidth
|
||||
const onMove = (ev) => {
|
||||
if (!isDraggingRef.current) return
|
||||
setListPanelWidth(Math.min(420, Math.max(180, startW + (ev.clientX - startX))))
|
||||
}
|
||||
const onUp = () => {
|
||||
isDraggingRef.current = false
|
||||
window.removeEventListener('mousemove', onMove)
|
||||
window.removeEventListener('mouseup', onUp)
|
||||
}
|
||||
window.addEventListener('mousemove', onMove)
|
||||
window.addEventListener('mouseup', onUp)
|
||||
}
|
||||
|
||||
`;
|
||||
|
||||
// Insert before the return statement
|
||||
const MARKER = ' return (\r\n <div\r\n className="flex min-h-0 flex-1 gap-0';
|
||||
const ALT_MARKER = ' return (\n <div\n className="flex min-h-0 flex-1 gap-0';
|
||||
|
||||
if (src.includes(MARKER) && !src.includes('listPanelWidth')) {
|
||||
src = src.replace(MARKER, insertCode + MARKER);
|
||||
console.log('Inserted using CRLF marker');
|
||||
} else if (src.includes(ALT_MARKER) && !src.includes('listPanelWidth')) {
|
||||
src = src.replace(ALT_MARKER, insertCode + ALT_MARKER);
|
||||
console.log('Inserted using LF marker');
|
||||
} else if (src.includes('listPanelWidth')) {
|
||||
console.log('State already exists, skipping insert');
|
||||
} else {
|
||||
console.error('Marker not found!');
|
||||
process.exit(1);
|
||||
}
|
||||
|
||||
// Fix left panel width - CRLF version
|
||||
const OLD_CRLF = 'className="flex w-80 shrink-0 flex-col border-r border-border/60 bg-background">';
|
||||
const NEW = 'className="flex shrink-0 flex-col border-r border-border/60 bg-background" style={{ width: listPanelWidth }}>';
|
||||
if (src.includes(OLD_CRLF)) {
|
||||
src = src.replace(OLD_CRLF, NEW);
|
||||
console.log('Replaced panel width');
|
||||
} else {
|
||||
console.log('Panel width already updated or marker not found');
|
||||
}
|
||||
|
||||
fs.writeFileSync(filePath, src);
|
||||
console.log('Done!');
|
||||
Reference in New Issue
Block a user