feat: add scroll-to-top button and improve pagination handling

- Implemented a scroll-to-top button in the viewer UI for better navigation.
- Added styles for the scroll-to-top button in viewer.html and viewer-template.html.
- Created a new ScrollToTop component to manage visibility and scrolling behavior.
- Updated Feed component to include the ScrollToTop component.
- Enhanced pagination logic in usePagination hook to prevent stale closures and improve performance.
- Modified SDKAgent to include additional observation fields for better data handling.
This commit is contained in:
Alex Newman
2025-11-07 17:57:54 -05:00
parent d6f1237283
commit 30a42036aa
9 changed files with 183 additions and 17 deletions
+43
View File
@@ -871,6 +871,49 @@
background-position: -200% 0;
}
}
/* Scroll to top button */
.scroll-to-top {
position: fixed;
bottom: 24px;
right: 24px;
width: 48px;
height: 48px;
background: var(--color-bg-button);
color: var(--color-text-button);
border: none;
border-radius: 24px;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
transition: all 0.2s ease;
z-index: 50;
animation: fadeInUp 0.3s ease-out;
}
.scroll-to-top:hover {
background: var(--color-bg-button-hover);
transform: translateY(-2px);
box-shadow: 0 6px 16px rgba(0, 0, 0, 0.2);
}
.scroll-to-top:active {
background: var(--color-bg-button-active);
transform: translateY(0);
}
@keyframes fadeInUp {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
</style>
</head>