diff --git a/jam-ui/src/components/jamtracks/JKJamTrackPlayer copy 2.js b/jam-ui/src/components/jamtracks/JKJamTrackPlayer copy 2.js
deleted file mode 100644
index 6843d5f66..000000000
--- a/jam-ui/src/components/jamtracks/JKJamTrackPlayer copy 2.js
+++ /dev/null
@@ -1,101 +0,0 @@
-import React, { useState, useEffect, useMemo } from 'react';
-import Select from 'react-select';
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import { Row, Col } from 'reactstrap';
-import PropTypes from 'prop-types';
-import { markMixdownActive } from '../../helpers/rest';
-import useJamTrackAudio from '../../hooks/useJamTrackAudio';
-
-const JKJamTrackPlayer = ({ jamTrack }) => {
- const [mixes, setMixes] = useState([]);
- const [options, setOptions] = useState([]);
- const [selectedMix, setSelectedMix] = useState(null);
- const { audioUrls, loadJamTrack } = useJamTrackAudio(jamTrack);
-
- const handleChange = selectedOption => {
- const mix = mixes.find(mix => mix.value === selectedOption.value);
- setSelectedMix(mix);
- };
-
- useEffect(() => {
- if (jamTrack) {
- console.log('_JamTrack_ jamTrack', jamTrack);
- const _opts = jamTrack.mixdowns.map(mix => ({ value: mix.id, label: mix.name }));
- _opts.unshift({ value: 'original', label: 'Original' });
- setOptions(_opts);
-
- //set the default mix to the original
- const activeMix = jamTrack.mixdowns.find(mix => mix.id === jamTrack.last_mixdown_id)
-
- console.log('_JamTrack_ activeMix', activeMix);
-
- setSelectedMix(activeMix);
- }
- }, [jamTrack]);
-
- const activateMasterTrack = async () => {
- console.log('playing original');
- await markMixdownActive({ id: jamTrack.id, mixdown_id: null });
- await loadJamTrack();
- };
-
- const activateCustomMix = async () => {
- console.log('playing mix', selectedMix.value);
- try {
- await markMixdownActive({ id: jamTrack.id, mixdown_id: selectedMix.value });
- await loadJamTrack();
- }catch(error){
- console.log('Error when activating custom mix', error);
- }
-
- };
-
- useEffect(() => {
- if (!selectedMix) {
- return;
- }
-
- console.log('_JamTrack_ selectedMix', selectedMix);
-
- if (selectedMix.value === 'original') {
- //console.log('_JAMTRACK_ activating master track');
- activateMasterTrack().then(() => {
- //TODO: commiunicate with the client back end. Following is copied from the Rails front end
- //SessionActions.mixdownActive({id:null})
- });
- } else {
- //console.log('_JAMTRACK_ activating custom mix:', selectedMix);
- activateCustomMix().then(() => {
- //TODO: commiunicate with the client back end. Following is copied from the Rails front end
- //context.jamClient.JamTrackStopPlay();
- //SessionActions.mixdownActive(mixdown)
- });
- }
- }, [selectedMix]);
-
- return (
- <>
-
- { JSON.stringify(audioUrls)}
-
-
- {audioUrls.length > 0 && (
-
-
-
- )}
-
-
- >
- );
-};
-
-JKJamTrackPlayer.propTypes = {
- jamTrack: PropTypes.object.isRequired
-};
-
-export default JKJamTrackPlayer;
diff --git a/jam-ui/src/components/jamtracks/JKJamTrackPlayer copy.js b/jam-ui/src/components/jamtracks/JKJamTrackPlayer copy.js
deleted file mode 100644
index d18ed48e0..000000000
--- a/jam-ui/src/components/jamtracks/JKJamTrackPlayer copy.js
+++ /dev/null
@@ -1,117 +0,0 @@
-import React, { useState, useEffect, useMemo } from 'react';
-import Select from 'react-select';
-import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
-import { Row, Col, Progress } from 'reactstrap';
-import PropTypes from 'prop-types';
-import { markMixdownActive } from '../../helpers/rest';
-import useBrowserMedia from '../../hooks/useBrowserMedia';
-import JKProgressSlider from './JKProgressSlider';
-
-const JKJamTrackPlayer = ({ jamTrack }) => {
- const [mixes, setMixes] = useState([]);
- const [selectedMix, setSelectedMix] = useState(null);
- const { play, stop, pause, loading, loaded, playing, paused, loadError, playPosition } = useBrowserMedia(jamTrack);
-
- const handleChange = selectedOption => {
- //console.log('selectedOption', selectedOption);
- setSelectedMix(selectedOption);
- };
-
- useEffect(() => {
- if (jamTrack) {
- const mixes = jamTrack.mixdowns.map(mix => ({ value: mix.id, label: mix.name, mix }));
- mixes.unshift({ value: 'original', label: 'Original', jamTrack });
- setMixes(mixes);
- }
- }, [jamTrack]);
-
- const trackDuration = useMemo(() => {
- if (jamTrack && jamTrack.duration) {
- return (jamTrack.duration/60).toFixed(2);
- }
- }, [jamTrack]);
-
- const trackCurrentTime = useMemo(() => {
- if (playPosition) {
- return (playPosition/60).toFixed(2);
- }else{
- return '0.00';
- }
- }, [playPosition]);
-
- useEffect(() => {
- if(!selectedMix) {
- return;
- }
-
- const handlePlayOriginal = async () => {
- console.log('playing original');
- await markMixdownActive({id: selectedMix.jamTrack.id, mixdown_id: null});
- }
-
- const handlePlayMix = async () => {
- console.log('playing mix', selectedMix.value);
- await markMixdownActive({id: selectedMix.jamTrack.id, mixdown_id: selectedMix.value});
- }
-
-
- if(selectedMix.value === 'original') {
- console.log('playing original');
- handlePlayOriginal();
- } else {
- console.log('playing mix', selectedMix.value);
- handlePlayMix();
- }
- }, [selectedMix]);
-
- const playAudio = () => {
- console.log('playing');
- play();
- }
-
- const stopAudio = () => {
- console.log('stopping');
- stop();
- }
-
- const pauseAudio = () => {
- console.log('pausing');
- pause();
- }
-
-
- return (
- <>
-
- {/*
-
-
- { playing && }
- { !playing && }
-
-
-
-
-
- {trackCurrentTime}
-
- {trackDuration}
-
-
-
-
*/}
-
-
-
-
-
- >
- );
-};
-
-JKJamTrackPlayer.propTypes = {
- jamTrack: PropTypes.object.isRequired,
-
-};
-
-export default JKJamTrackPlayer;
diff --git a/jam-ui/src/components/jamtracks/JKJamTrackPreview.js b/jam-ui/src/components/jamtracks/JKJamTrackPreview.js
index 707eeabc7..0f3a5045f 100644
--- a/jam-ui/src/components/jamtracks/JKJamTrackPreview.js
+++ b/jam-ui/src/components/jamtracks/JKJamTrackPreview.js
@@ -1,5 +1,5 @@
import React, { Fragment, useState } from 'react';
-import { Row, Col, Container } from 'reactstrap';
+import { Row, Col } from 'reactstrap';
import JKJamTrackTrack from './JKJamTrackTrack';
import PropTypes from 'prop-types';
import { useResponsive } from '@farfetch/react-context-responsive';
diff --git a/jam-ui/src/components/jamtracks/JKJamTrackResourceLinks.js b/jam-ui/src/components/jamtracks/JKJamTrackResourceLinks.js
index e075f2c0e..7175925bb 100644
--- a/jam-ui/src/components/jamtracks/JKJamTrackResourceLinks.js
+++ b/jam-ui/src/components/jamtracks/JKJamTrackResourceLinks.js
@@ -1,5 +1,6 @@
import React from 'react';
import { useTranslation } from 'react-i18next';
+import { Link } from 'react-router-dom';
const JKJamTrackResourceLinks = ({jamTrack}) => {
const { t } = useTranslation('jamtracks');
@@ -23,7 +24,7 @@ const JKJamTrackResourceLinks = ({jamTrack}) => {
@@ -31,14 +32,17 @@ const JKJamTrackResourceLinks = ({jamTrack}) => {
{t('jamtrack.help_resources.see_more.description')}
diff --git a/jam-ui/src/components/jamtracks/JKJamTracksFilter.js b/jam-ui/src/components/jamtracks/JKJamTracksFilter.js
index 587b7dc98..38cc170f2 100644
--- a/jam-ui/src/components/jamtracks/JKJamTracksFilter.js
+++ b/jam-ui/src/components/jamtracks/JKJamTracksFilter.js
@@ -1,5 +1,6 @@
import React, { useState, useEffect } from 'react';
import { Link } from 'react-router-dom';
+import { useBrowserQuery } from '../../context/BrowserQuery';
import { Card, CardBody, Row, Col } from 'reactstrap';
import FalconCardHeader from '../common/FalconCardHeader';
import { useTranslation } from 'react-i18next';
@@ -24,6 +25,9 @@ const JKJamTracksFilter = () => {
const PER_PAGE = 10;
const { shoppingCart } = useShoppingCart();
const { greaterThan } = useResponsive();
+ const queryString = useBrowserQuery();
+ const query = queryString.get('query');
+ const artist = queryString.get('artist');
useEffect(() => {
if (selected) {
@@ -31,6 +35,17 @@ const JKJamTracksFilter = () => {
}
}, [selected]);
+ useEffect(() => {
+ if(query && !artist) {
+ //setAutoCompleteInputValue(query);
+ handleOnEnter(query);
+ }
+ if(artist && !query) {
+ //setAutoCompleteInputValue(artist);
+ handleOnEnter(artist);
+ }
+ }, [query]);
+
const queryOptions = selected => {
const options = {
per_page: PER_PAGE,