feat(down-button): added down button func

Now you don't have to scroll all the way down yay
This commit is contained in:
JK-le-dev 2025-10-19 08:11:54 -05:00
commit 542ba32cda
4 changed files with 376 additions and 134 deletions

View file

@ -3,9 +3,17 @@ import { ArrowDown } from "lucide-react";
import { motion } from "motion/react";
export default function DownButton({ onClick }) {
function handleClick(e) {
if (onClick) return onClick(e);
// default behavior: scroll to bottom of page smoothly
const doc = document.documentElement;
const top = Math.max(doc.scrollHeight, document.body.scrollHeight);
window.scrollTo({ top, behavior: "smooth" });
}
return (
<motion.button
onClick={onClick}
onClick={handleClick}
className="bg-gray-700 p-2 rounded-2xl file-input border-2 border-gray-600 size-10"
whileHover={{ scale: 1.1 }}
whileTap={{ scale: 0.9 }}

View file

@ -41,6 +41,13 @@ export default function MessageInput({ onSend }) {
ta.style.height = `${ta.scrollHeight}px`;
}
}}
onKeyDown={(e) => {
// Enter to submit, Shift+Enter for newline
if (e.key === "Enter" && !e.shiftKey) {
e.preventDefault();
handleSubmit(e);
}
}}
placeholder="Type a message..."
rows={1}
className="flex-1 mx-2 rounded-md shadow-2sx border-none focus:border-none focus:outline-none resize-none overflow-auto max-h-40"