From d9f305e30b15b178617f47e73f90851a276e192c Mon Sep 17 00:00:00 2001 From: Malaber Date: Wed, 19 Mar 2025 21:45:44 +0100 Subject: [PATCH] intersectionobserver shenanigang (do not work) --- js/components/Navigation.js | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/js/components/Navigation.js b/js/components/Navigation.js index 7a85b95..776f114 100644 --- a/js/components/Navigation.js +++ b/js/components/Navigation.js @@ -2,7 +2,7 @@ import { Button, ButtonGroup, Collapse, Nav, Navbar, NavbarBrand, NavbarText, NavbarToggler, NavItem, NavLink } from 'reactstrap'; import {connect} from 'react-redux'; -import React from 'react'; +import React, {useRef, useEffect, useState} from 'react'; import {logout} from '../api'; import {notify} from 'react-notify-toast'; @@ -12,7 +12,32 @@ export class TurniereNavigation extends React.Component { constructor(props) { super(props); this.toggle = this.toggle.bind(this); - this.state = {collapsed: true}; + this.togglerRef = React.createRef(); + this.state = { + collapsed: true, + isToggleVisible: true + }; + } + + componentDidMount() { + const observer = new IntersectionObserver( + ([entry]) => { + this.setState({isToggleVisible: entry.isIntersecting}); + }, + {threshold: 0.1} + ); + + if (this.togglerRef.current) { + observer.observe(this.togglerRef.current); + } + + this.observer = observer; + } + + componentWillUnmount() { + if (this.observer) { + this.observer.disconnect(); + } } toggle() { @@ -21,16 +46,18 @@ export class TurniereNavigation extends React.Component { render() { const {tournament} = this.props; + const {isToggleVisible} = this.state; return ( turnie.re {tournament && tournament.timerEnd && - Spielzeit: + Spielzeit: } - + {isToggleVisible && HALLO WELT} +