mirror of
				https://github.com/elyby/accounts-frontend.git
				synced 2025-05-31 14:11:58 +05:30 
			
		
		
		
	
		
			
				
	
	
		
			36 lines
		
	
	
		
			937 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			36 lines
		
	
	
		
			937 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
import React, { ComponentType, useContext } from 'react';
 | 
						|
import { FormattedMessage as Message, MessageDescriptor } from 'react-intl';
 | 
						|
 | 
						|
import Context, { AuthContext } from './Context';
 | 
						|
 | 
						|
interface Props {
 | 
						|
    isAvailable?: (context: AuthContext) => boolean;
 | 
						|
    payload?: Record<string, any>;
 | 
						|
    label: MessageDescriptor;
 | 
						|
}
 | 
						|
 | 
						|
const RejectionLink: ComponentType<Props> = ({ isAvailable, payload, label }) => {
 | 
						|
    const context = useContext(Context);
 | 
						|
 | 
						|
    if (isAvailable && !isAvailable(context)) {
 | 
						|
        // TODO: if want to properly support multiple links, we should control
 | 
						|
        // the dividers ' | ' rendered from factory too
 | 
						|
        return null;
 | 
						|
    }
 | 
						|
 | 
						|
    return (
 | 
						|
        <a
 | 
						|
            href="#"
 | 
						|
            onClick={(event) => {
 | 
						|
                event.preventDefault();
 | 
						|
 | 
						|
                context.reject(payload);
 | 
						|
            }}
 | 
						|
        >
 | 
						|
            <Message {...label} />
 | 
						|
        </a>
 | 
						|
    );
 | 
						|
};
 | 
						|
 | 
						|
export default RejectionLink;
 |