Propagate learnings to Notifications page

This commit is contained in:
Lim Chee Aun 2023-02-15 10:50:20 +08:00
parent d324d3a672
commit 8da6532cd3

View file

@ -56,9 +56,11 @@ function Notifications() {
const [showMore, setShowMore] = useState(false); const [showMore, setShowMore] = useState(false);
const [onlyMentions, setOnlyMentions] = useState(false); const [onlyMentions, setOnlyMentions] = useState(false);
const scrollableRef = useRef(); const scrollableRef = useRef();
const { nearReachEnd, reachStart } = useScroll({ const { nearReachEnd, scrollDirection, reachStart, nearReachStart } =
useScroll({
scrollableElement: scrollableRef.current, scrollableElement: scrollableRef.current,
}); });
const hiddenUI = scrollDirection === 'end' && !nearReachStart;
console.debug('RENDER Notifications'); console.debug('RENDER Notifications');
@ -142,6 +144,7 @@ function Notifications() {
> >
<div class={`timeline-deck deck ${onlyMentions ? 'only-mentions' : ''}`}> <div class={`timeline-deck deck ${onlyMentions ? 'only-mentions' : ''}`}>
<header <header
hidden={hiddenUI}
onClick={() => { onClick={() => {
scrollableRef.current?.scrollTo({ top: 0, behavior: 'smooth' }); scrollableRef.current?.scrollTo({ top: 0, behavior: 'smooth' });
}} }}
@ -162,7 +165,6 @@ function Notifications() {
<Loader hidden={uiState !== 'loading'} /> <Loader hidden={uiState !== 'loading'} />
</div> </div>
</div> </div>
</header>
{snapStates.notificationsShowNew && uiState !== 'loading' && ( {snapStates.notificationsShowNew && uiState !== 'loading' && (
<button <button
class="updates-button" class="updates-button"
@ -178,6 +180,7 @@ function Notifications() {
<Icon icon="arrow-up" /> New notifications <Icon icon="arrow-up" /> New notifications
</button> </button>
)} )}
</header>
<div id="mentions-option"> <div id="mentions-option">
<label> <label>
<input <input