added effect to navbar

This commit is contained in:
plebbitor
2023-02-24 20:57:51 +01:00
parent da1d9fe976
commit 67737f8a9e
5 changed files with 59 additions and 9 deletions
+16 -1
View File
@@ -16,6 +16,8 @@ const Board = ({ setBodyStyle }) => {
const [subject, setSubject] = useState(''); const [subject, setSubject] = useState('');
const [comment, setComment] = useState(''); const [comment, setComment] = useState('');
const navigate = useNavigate(); const navigate = useNavigate();
const [prevScrollPos, setPrevScrollPos] = useState(0);
const [visible, setVisible] = useState(true);
const { feed, hasMore, loadMore } = useFeed([`${selectedAddress}`], 'new'); const { feed, hasMore, loadMore } = useFeed([`${selectedAddress}`], 'new');
@@ -108,6 +110,19 @@ const Board = ({ setBodyStyle }) => {
}; };
}, []); }, []);
useEffect(() => {
const handleScroll = () => {
const currentScrollPos = window.pageYOffset;
setVisible(prevScrollPos > currentScrollPos || currentScrollPos < 10);
setPrevScrollPos(currentScrollPos);
};
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, [prevScrollPos, visible]);
const handleVoidClick = () => {} const handleVoidClick = () => {}
const handleClick = (title, address) => { const handleClick = (title, address) => {
@@ -249,7 +264,7 @@ const Board = ({ setBodyStyle }) => {
)}>Home</Link> )}>Home</Link>
] ]
</span> </span>
<div id="board-nav-mobile"> <div id="board-nav-mobile" style={{ top: visible ? 0 : '-23px' }}>
<div className="board-select"> <div className="board-select">
<strong>Board</strong> <strong>Board</strong>
&nbsp; &nbsp;
+16 -1
View File
@@ -17,6 +17,8 @@ const Catalog = ({ setBodyStyle }) => {
const [subject, setSubject] = useState(''); const [subject, setSubject] = useState('');
const [comment, setComment] = useState(''); const [comment, setComment] = useState('');
const navigate = useNavigate(); const navigate = useNavigate();
const [prevScrollPos, setPrevScrollPos] = useState(0);
const [visible, setVisible] = useState(true);
const { feed, hasMore, loadMore } = useFeed([`${selectedAddress}`], 'new'); const { feed, hasMore, loadMore } = useFeed([`${selectedAddress}`], 'new');
@@ -107,6 +109,19 @@ const Catalog = ({ setBodyStyle }) => {
}; };
}, []); }, []);
useEffect(() => {
const handleScroll = () => {
const currentScrollPos = window.pageYOffset;
setVisible(prevScrollPos > currentScrollPos || currentScrollPos < 10);
setPrevScrollPos(currentScrollPos);
};
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, [prevScrollPos, visible]);
const handleVoidClick = () => {} const handleVoidClick = () => {}
const handleClick = (title, address) => { const handleClick = (title, address) => {
@@ -236,7 +251,7 @@ const Catalog = ({ setBodyStyle }) => {
)}>Home</Link> )}>Home</Link>
] ]
</span> </span>
<div id="board-nav-mobile"> <div id="board-nav-mobile" style={{ top: visible ? 0 : '-23px' }}>
<div className="board-select"> <div className="board-select">
<strong>Board</strong> <strong>Board</strong>
&nbsp; &nbsp;
+16 -1
View File
@@ -12,6 +12,8 @@ const Thread = ({ setBodyStyle }) => {
const [showReplyFormLink, setShowReplyFormLink] = useState(true); const [showReplyFormLink, setShowReplyFormLink] = useState(true);
const [showReplyForm, setShowReplyForm] = useState(false); const [showReplyForm, setShowReplyForm] = useState(false);
const navigate = useNavigate(); const navigate = useNavigate();
const [prevScrollPos, setPrevScrollPos] = useState(0);
const [visible, setVisible] = useState(true);
const comment = useComment(`${selectedThread}`); const comment = useComment(`${selectedThread}`);
@@ -32,6 +34,19 @@ const Thread = ({ setBodyStyle }) => {
}; };
}, []); }, []);
useEffect(() => {
const handleScroll = () => {
const currentScrollPos = window.pageYOffset;
setVisible(prevScrollPos > currentScrollPos || currentScrollPos < 10);
setPrevScrollPos(currentScrollPos);
};
window.addEventListener('scroll', handleScroll);
return () => window.removeEventListener('scroll', handleScroll);
}, [prevScrollPos, visible]);
const handleVoidClick = () => {} const handleVoidClick = () => {}
const handleClick = (title, address) => { const handleClick = (title, address) => {
@@ -159,7 +174,7 @@ const Thread = ({ setBodyStyle }) => {
)}>Home</Link> )}>Home</Link>
] ]
</span> </span>
<div id="board-nav-mobile"> <div id="board-nav-mobile" style={{ top: visible ? 0 : '-23px' }}>
<div className="board-select"> <div className="board-select">
<strong>Board</strong> <strong>Board</strong>
&nbsp; &nbsp;
+1
View File
@@ -47,6 +47,7 @@ export const NavBar = styled.div`
z-index: 9001; z-index: 9001;
display: block !important; display: block !important;
clear: left !important; clear: left !important;
transition: top 0.3s ease-in-out;
} }
.board-select { .board-select {
+10 -6
View File
@@ -17,12 +17,12 @@ export const ReplyFormLink = styled.div`
} }
#post-form-link-mobile { #post-form-link-mobile {
margin: 11px 0; margin: 11px 0;
font-size: 13px; font-size: 13px;
text-align: center; text-align: center;
font-weight: 700; font-weight: 700;
display: block !important; display: block !important;
padding-top: 10px; padding-top: 10px;
} }
#return-button-mobile, #catalog-button-mobile, #bottom-button-mobile, #bottom-bar-top { #return-button-mobile, #catalog-button-mobile, #bottom-button-mobile, #bottom-bar-top {
@@ -38,6 +38,10 @@ export const ReplyFormLink = styled.div`
#btns-container { #btns-container {
text-align: center; text-align: center;
} }
.bottom-bar-top {
}
} }
${({ selectedStyle }) => { ${({ selectedStyle }) => {