29 lines
		
	
	
		
			749 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			749 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import { createContext, useContext, useMemo } from 'react';
 | 
						|
 | 
						|
export const SensitiveMediaContext = createContext<{
 | 
						|
  hideMediaByDefault: boolean;
 | 
						|
}>({
 | 
						|
  hideMediaByDefault: false,
 | 
						|
});
 | 
						|
 | 
						|
export function useSensitiveMediaContext() {
 | 
						|
  return useContext(SensitiveMediaContext);
 | 
						|
}
 | 
						|
 | 
						|
type ContextValue = React.ContextType<typeof SensitiveMediaContext>;
 | 
						|
 | 
						|
export const SensitiveMediaContextProvider: React.FC<
 | 
						|
  React.PropsWithChildren<{ hideMediaByDefault: boolean }>
 | 
						|
> = ({ hideMediaByDefault, children }) => {
 | 
						|
  const contextValue = useMemo<ContextValue>(
 | 
						|
    () => ({ hideMediaByDefault }),
 | 
						|
    [hideMediaByDefault],
 | 
						|
  );
 | 
						|
 | 
						|
  return (
 | 
						|
    <SensitiveMediaContext.Provider value={contextValue}>
 | 
						|
      {children}
 | 
						|
    </SensitiveMediaContext.Provider>
 | 
						|
  );
 | 
						|
};
 |