mirror of
https://github.com/PrimalHQ/primal-web-app.git
synced 2024-09-29 00:10:50 +00:00
Hold reads scroll position
This commit is contained in:
parent
16c7c1c650
commit
94c91bdc42
@ -16,6 +16,7 @@ import LoginModal from '../LoginModal/LoginModal';
|
||||
import { userName } from '../../stores/profile';
|
||||
import { PrimalUser } from '../../types/primal';
|
||||
import ReedSelect from '../FeedSelect/ReedSelect';
|
||||
import { useReadsContext } from '../../contexts/ReadsContext';
|
||||
|
||||
const ReadsHeader: Component< {
|
||||
id?: string,
|
||||
@ -25,6 +26,48 @@ const ReadsHeader: Component< {
|
||||
newPostAuthors: PrimalUser[],
|
||||
} > = (props) => {
|
||||
|
||||
const reads = useReadsContext();
|
||||
|
||||
let lastScrollTop = document.body.scrollTop || document.documentElement.scrollTop;
|
||||
|
||||
const onScroll = () => {
|
||||
const scrollTop = document.body.scrollTop || document.documentElement.scrollTop;
|
||||
// const smallHeader = document.getElementById('small_header');
|
||||
const border = document.getElementById('small_bottom_border');
|
||||
|
||||
reads?.actions.updateScrollTop(scrollTop);
|
||||
|
||||
const isScrollingDown = scrollTop > lastScrollTop;
|
||||
lastScrollTop = scrollTop;
|
||||
|
||||
if (scrollTop < 2) {
|
||||
if (border) {
|
||||
border.style.display = 'none';
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
if (lastScrollTop < 2) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (border) {
|
||||
border.style.display = 'flex';
|
||||
}
|
||||
|
||||
if (!isScrollingDown) {
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
onMount(() => {
|
||||
window.addEventListener('scroll', onScroll);
|
||||
});
|
||||
|
||||
onCleanup(() => {
|
||||
window.removeEventListener('scroll', onScroll);
|
||||
});
|
||||
return (
|
||||
<div id={props.id}>
|
||||
<div class={`${styles.bigFeedSelect} ${styles.readsFeed}`}>
|
||||
|
@ -64,7 +64,7 @@ const Home: Component = () => {
|
||||
|
||||
|
||||
onMount(() => {
|
||||
setIsHome(true);
|
||||
// setIsHome(true);
|
||||
scrollWindowTo(context?.scrollTop);
|
||||
});
|
||||
|
||||
@ -138,14 +138,14 @@ const Home: Component = () => {
|
||||
|
||||
createEffect(() => {
|
||||
if (account?.isKeyLookupDone && account.publicKey) {
|
||||
context?.actions.clearNotes();
|
||||
|
||||
if (params.topic) {
|
||||
context?.actions.clearNotes();
|
||||
context?.actions.fetchNotes(`filter;${decodeURIComponent(params.topic)}`, APP_ID);
|
||||
return;
|
||||
}
|
||||
|
||||
context?.actions.resetSelectedFeed();
|
||||
// context?.actions.resetSelectedFeed();
|
||||
context?.actions.selectFeed({ hex: account.publicKey, name: 'My Reads'});
|
||||
}
|
||||
});
|
||||
@ -175,6 +175,7 @@ const Home: Component = () => {
|
||||
<Link
|
||||
class={styles.backToReads}
|
||||
href={'/reads'}
|
||||
onClick={() => context?.actions.resetSelectedFeed()}
|
||||
>
|
||||
Reads:
|
||||
</Link>
|
||||
|
Loading…
Reference in New Issue
Block a user