24 lines
		
	
	
	
		
			606 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			24 lines
		
	
	
	
		
			606 B
			
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| 
								 | 
							
								// Copyright 2022 Signal Messenger, LLC
							 | 
						||
| 
								 | 
							
								// SPDX-License-Identifier: AGPL-3.0-only
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								import { useEffect, useState } from 'react';
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								export function useIsWindowActive(): boolean {
							 | 
						||
| 
								 | 
							
								  const { activeWindowService } = window.SignalContext;
							 | 
						||
| 
								 | 
							
								  const [isActive, setIsActive] = useState(activeWindowService.isActive());
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  useEffect(() => {
							 | 
						||
| 
								 | 
							
								    const update = (newIsActive: boolean): void => {
							 | 
						||
| 
								 | 
							
								      setIsActive(newIsActive);
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    activeWindowService.registerForChange(update);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    return () => {
							 | 
						||
| 
								 | 
							
								      activeWindowService.unregisterForChange(update);
							 | 
						||
| 
								 | 
							
								    };
							 | 
						||
| 
								 | 
							
								  }, [activeWindowService]);
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  return isActive;
							 | 
						||
| 
								 | 
							
								}
							 |