body: getFormValues()

in source/frontend/src/containers/Replay/ReplayCreate.js [203:361]


                    body: getFormValues()
                });
                history.push({pathname: "/listReplays"});
            }
            catch (error) {

                return {success: false};
            }
            finally {
                setIsLoading(false)
            }
        }

    };


    const goBack = () => {
        history.goBack();
    };

    const handleInputChange = (e) => {
        if (e.target.id === 'desc') {
            setReplayDescription(e.target.value)
        }
        else if (e.target.id === 'duration') {
            setDuration(e.target.value)
        }
        else if (e.target.id === 'adInsertDuration') {
            setAdInsertDuration(e.target.value)
        }
        else if (e.target.id === 'uxlabel') {
            setUXlabel(e.target.value)
        }

    }

    const fetchAudioTracks = async (url) => {
        try {
            let response = await API.get('api', url);
            return {success: true, data: response};
        }
        catch (error) {
            return {success: false};
        }
    };

    const handleProgramChange = async (event) => {
        setSelectedProgram(event.target.value);
        // Only if Program and Event are available , initiate a lookup
        if (selectedEvent !== '-NA-' && event.target.value !== '-NA-') {
            let res = await fetchAudioTracks(`event/${selectedEvent}/program/${event.target.value}`)
            let resultEvent = res.data;
            if (res.success) {
                if (resultEvent.hasOwnProperty('AudioTracks'))
                    setAudioTrackOptions(resultEvent.AudioTracks);
            }
            else {
                setAudioTrackOptions([]);
                setSelectedAudioTrack("-NA-")
            }

            // Load features
            setAvailableFeatures([]);

            try {
                let res = await API.get('api', `replay/program/${event.target.value}/event/${selectedEvent}/features`);
                setAvailableFeatures(res);
            }
            catch (error) {

            }

        }

        //validateForm()
    }

    const handleReplayModeChange = async (event) => {
        setReplayMode(event.target.value);
    }

    const handleAdPositionChange = async (event) => {
        setAdPosition(event.target.value);
    }

    const handleAdInsertionModeChange = async (event) => {
        setAdInsertionMode(event.target.value);
    }

    const handleEventChange = async (event) => {
        if(event.target.value !== 'Load More') {
            setSelectedEvent(event.target.value);
        }

        if (event.target.value !== '-NA-' && selectedProgram !== '-NA-' && event.target.value !== 'Load More') {
            let res = await fetchAudioTracks(`event/${event.target.value}/program/${selectedProgram}`)
            let resultEvent = res.data;
            if (res.success && resultEvent !== null) {
                if (resultEvent.hasOwnProperty('AudioTracks'))
                    setAudioTrackOptions(resultEvent.AudioTracks);
            }
            else {
                setAudioTrackOptions([]);
                setSelectedAudioTrack("-NA-")
            }

            // Load features
            setAvailableFeatures([]);
            try {

                let res = await API.get('api', `replay/program/${selectedProgram}/event/${event.target.value}/features`);
                setAvailableFeatures(res);
            }
            catch (error) {

            }

        }

        //validateForm()

    }

    const handleReplayDurationChange = (e) => {
        if (e.target.value > 0) {
            setReplayDuration(e.target.value);
        }
    }

    const handleAdInsertDurationChange = (e) => {
        if (e.target.value > 0) {
            setAdInsertDuration(e.target.value);
        }
    }

    const isFeatureSelected = () => {

        // let res = false
        // let i = 0
        // _.forEach(featuresObject, (key) => {
        //     const featValue = featuresObject[i][Object.keys(key)[0]]
        //     ++i
        //     const weight = featValue.split('^')[0]
        //     console.log('weight: ', weight);

        //     if (parseInt(weight) >= 0){
        //         res = true
        //     }
        // })
        return true
    }

    React.useEffect(() => {
        console.log(replayMode);
        if (selectedProgram === '-NA-' || selectedEvent === '-NA-' || selectedAudioTrack === '-NA-' || replayDescription.trim() === '' || uxlabel.trim() === '')
            setFormInvalid(true)
        else {
            if (outputFormat !== "") {
                if (resolutionValues.length === 0) {