Add scroll-to-bottom button inside session view #26

Open
developer wants to merge 1 commit from feature/19_scroll_to_bottom_button into main
Collaborator

Closes #19

Что сделано

Кнопка быстрой прокрутки внутри просмотра сессии:

  • «↓ Вниз» — плавающая кнопка (fixed, правый нижний угол), плавно (smooth) пролистывает транскрипт к последнему сообщению. Решает основной сценарий из постановки: открыл сессию — видишь первое сообщение, но можешь в один клик увидеть крайнее.
  • «↑ Вверх» — появляется, когда прокрутили вниз более 200px от верха, возвращает к началу сессии.
  • У дна страницы кнопка «↓ Вниз» скрывается (нечего листать); логика видимости — на scroll с requestAnimationFrame (без дёрганья layout на каждый кадр).
  • Кнопки монтируются только во вью сессии; при уходе на другую вкладку слушатель scroll снимается, кнопки удаляются (MutationObserver на контейнере приложения).

Правки только фронта (public/app.js, public/style.css), API не менялся.

Как проверить

SESSIONS_DIR=test/fixtures npm start

Открыть любую сессию → справа внизу «↓ Вниз» → клик → плавный скролл к последнему сообщению, кнопка исчезает у дна, появляется «↑ Вверх» → клик → возврат наверх. Уйти со страницы сессии → кнопки пропадают.

Тесты

npm test — 34/34 зелёные (правки фронтовые, тесты не затронуты). Дополнительно прогнан смоук в браузере на фикстурах: монтирование, скролл вниз/вверх, скрытие у дна, снятие слушателя при уходе.

Closes #19 ## Что сделано Кнопка быстрой прокрутки внутри просмотра сессии: - **«↓ Вниз»** — плавающая кнопка (fixed, правый нижний угол), плавно (smooth) пролистывает транскрипт к последнему сообщению. Решает основной сценарий из постановки: открыл сессию — видишь первое сообщение, но можешь в один клик увидеть крайнее. - **«↑ Вверх»** — появляется, когда прокрутили вниз более 200px от верха, возвращает к началу сессии. - У дна страницы кнопка «↓ Вниз» скрывается (нечего листать); логика видимости — на `scroll` с `requestAnimationFrame` (без дёрганья layout на каждый кадр). - Кнопки монтируются только во вью сессии; при уходе на другую вкладку слушатель scroll снимается, кнопки удаляются (MutationObserver на контейнере приложения). Правки только фронта (`public/app.js`, `public/style.css`), API не менялся. ## Как проверить ```bash SESSIONS_DIR=test/fixtures npm start ``` Открыть любую сессию → справа внизу «↓ Вниз» → клик → плавный скролл к последнему сообщению, кнопка исчезает у дна, появляется «↑ Вверх» → клик → возврат наверх. Уйти со страницы сессии → кнопки пропадают. ## Тесты `npm test` — 34/34 зелёные (правки фронтовые, тесты не затронуты). Дополнительно прогнан смоук в браузере на фикстурах: монтирование, скролл вниз/вверх, скрытие у дна, снятие слушателя при уходе.
Floating '↓ Вниз' button (fixed, bottom-right) smooth-scrolls the
transcript to the last message; '↑ Вверх' appears after scrolling
200px down and returns to the top. Buttons mount only in the session
view; the scroll listener is detached and the buttons removed when the
user navigates away (MutationObserver on the app container).
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feature/19_scroll_to_bottom_button:feature/19_scroll_to_bottom_button
git switch feature/19_scroll_to_bottom_button

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff feature/19_scroll_to_bottom_button
git switch feature/19_scroll_to_bottom_button
git rebase main
git switch main
git merge --ff-only feature/19_scroll_to_bottom_button
git switch feature/19_scroll_to_bottom_button
git rebase main
git switch main
git merge --no-ff feature/19_scroll_to_bottom_button
git switch main
git merge --squash feature/19_scroll_to_bottom_button
git switch main
git merge --ff-only feature/19_scroll_to_bottom_button
git switch main
git merge feature/19_scroll_to_bottom_button
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
forgejo-admin/watcherenish!26
No description provided.