export const scrollToBottom = (ref, smooth = false) => {
    const element = ref.current;
    const scroll_height = element.scrollHeight - element.clientHeight;

    if (smooth) {
        const duration = 300; // スクロールにかける時間（ミリ秒）
        const start_time = performance.now();
        const scroll_top = element.scrollTop;

        const scroll = (current_time) => {
            const elapsed = current_time - start_time;
            const progress = Math.min(elapsed / duration, 1);
            const ease_in_out_quad = (t) => t < 0.5
                ? 2 * t * t
                : -1 + (4 - 2 * t) * t;
            element.scrollTop = scroll_top + (scroll_height - scroll_top) * ease_in_out_quad(progress);

            if (progress < 1) {
                requestAnimationFrame(scroll);
            }
        };

        requestAnimationFrame(scroll);
    } else {
        element.scrollTop = scroll_height;
    }
};
