38 lines
		
	
	
		
			821 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			38 lines
		
	
	
		
			821 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { FormattedMessage } from 'react-intl';
 | |
| 
 | |
| export enum BannerVariant {
 | |
|   Yellow = 'yellow',
 | |
|   Blue = 'blue',
 | |
| }
 | |
| 
 | |
| export const StatusBanner: React.FC<{
 | |
|   children: React.ReactNode;
 | |
|   variant: BannerVariant;
 | |
|   expanded?: boolean;
 | |
|   onClick?: () => void;
 | |
| }> = ({ children, variant, expanded, onClick }) => (
 | |
|   <div
 | |
|     className={
 | |
|       variant === BannerVariant.Yellow
 | |
|         ? 'content-warning'
 | |
|         : 'content-warning content-warning--filter'
 | |
|     }
 | |
|   >
 | |
|     {children}
 | |
| 
 | |
|     <button className='link-button' onClick={onClick}>
 | |
|       {expanded ? (
 | |
|         <FormattedMessage
 | |
|           id='content_warning.hide'
 | |
|           defaultMessage='Hide post'
 | |
|         />
 | |
|       ) : (
 | |
|         <FormattedMessage
 | |
|           id='content_warning.show'
 | |
|           defaultMessage='Show anyway'
 | |
|         />
 | |
|       )}
 | |
|     </button>
 | |
|   </div>
 | |
| );
 |