import React from 'react';
import { Redirect } from 'react-router-dom';
import { includes } from 'lodash';
import { Product } from 'src/queries/product';
import {
    IN_CONTENT,
    DIGITAL_AUDIO,
    MUSIC_VIDEO,
    PHYSICAL_AUDIO,
    OTHER,
} from '../../constants';
import { getErrorUrl } from '../../urls/collaborator';

const ALLOWED_CONFIGURATIONS = [DIGITAL_AUDIO, MUSIC_VIDEO, PHYSICAL_AUDIO, OTHER];

type Props = {
    product: Product
};

const InvalidProductCheck: React.FC<Props> = ({
    product = {}
}) => {
    const isProductValid = 'status' in product && 'productConfiguration' in product;
    const isStatusInContent = product.status === IN_CONTENT;
    const isConfigurationAllowed = includes(ALLOWED_CONFIGURATIONS, product.productConfiguration);

    if (isProductValid && (!isStatusInContent || !isConfigurationAllowed))
        return (<Redirect to={ getErrorUrl() } />);

    return null;
};

export default InvalidProductCheck;
