@@ -15,6 +15,16 @@ const OnboardingModal = React.lazy(() =>
1515 import ( 'src/features/onboarding' ) . then ( ( module ) => ( { default : module . OnboardingModal } ) )
1616)
1717
18+ const intersectionCallback = ( entries ) => {
19+ entries . forEach ( ( entry ) => {
20+ if ( ! entry . isIntersecting ) {
21+ document . documentElement . classList . remove ( 'dndState' )
22+ } else {
23+ document . documentElement . classList . add ( 'dndState' )
24+ }
25+ } )
26+ }
27+
1828function App ( ) {
1929 const [ showSideBar , setShowSideBar ] = useState ( false )
2030 const [ showSettings , setShowSettings ] = useState ( false )
@@ -26,6 +36,7 @@ function App() {
2636 maxVisibleCards,
2737 isDNDModeActive,
2838 DNDDuration,
39+ setDNDDuration,
2940 } = useUserPreferences ( )
3041
3142 useLayoutEffect ( ( ) => {
@@ -50,21 +61,14 @@ function App() {
5061
5162 useEffect ( ( ) => {
5263 trackPageView ( 'home' , isDNDModeActive ( ) )
53- } , [ DNDDuration , isDNDModeActive ] )
54-
55- const callback = ( entries ) => {
56- entries . forEach ( ( entry ) => {
57- if ( ! entry . isIntersecting ) {
58- document . documentElement . classList . remove ( 'dndState' )
59- } else {
60- document . documentElement . classList . add ( 'dndState' )
61- }
62- } )
63- }
64+ if ( ! isDNDModeActive ( ) && DNDDuration !== 'never' ) {
65+ setDNDDuration ( 'never' )
66+ }
67+ } , [ DNDDuration , isDNDModeActive , setDNDDuration ] )
6468
6569 useLayoutEffect ( ( ) => {
6670 let dndContent = document . querySelector ( '.DNDContent' )
67- let observer = new IntersectionObserver ( callback , {
71+ let observer = new IntersectionObserver ( intersectionCallback , {
6872 threshold : 0.1 ,
6973 } )
7074
0 commit comments