From 1772f5a46f265607847df19ee210711df4335264 Mon Sep 17 00:00:00 2001 From: Nuwan Date: Thu, 16 Jan 2025 13:17:25 +0530 Subject: [PATCH] fixes & improvements in signup and downloads pages --- .../src/components/auth/JKRegistrationForm.js | 26 ++++++---- .../components/auth/basic/JKRegistration.js | 50 +++++++++--------- .../components/jamtracks/JKJamTrackTrack.js | 6 +-- .../components/jamtracks/JKJamTracksFilter.js | 9 ++++ jam-ui/src/components/public/JKDownloads.js | 26 +++++----- .../components/public/JKDownloadsLegacy.js | 23 ++++---- jam-ui/src/context/UserAuth.js | 7 +-- jam-ui/src/helpers/apiFetch.js | 4 +- jam-ui/src/helpers/rest.js | 11 ++++ jam-ui/src/hooks/useJamTrackShopping.js | 2 +- jam-ui/src/hooks/useShoppingCart.js | 52 ++----------------- web/app/controllers/jam_tracks_controller.rb | 7 +++ web/app/views/jam_tracks/show.rabl | 3 ++ web/config/initializers/cors.rb | 9 ++++ web/config/routes.rb | 2 + 15 files changed, 124 insertions(+), 113 deletions(-) create mode 100644 web/app/controllers/jam_tracks_controller.rb create mode 100644 web/app/views/jam_tracks/show.rabl diff --git a/jam-ui/src/components/auth/JKRegistrationForm.js b/jam-ui/src/components/auth/JKRegistrationForm.js index 95a462bea..df8aedce3 100644 --- a/jam-ui/src/components/auth/JKRegistrationForm.js +++ b/jam-ui/src/components/auth/JKRegistrationForm.js @@ -24,7 +24,7 @@ const JKRegistrationForm = ({ hasLabel, jamTrack, jamTrackArtistName }) => { const { addToCart } = useJamTrackShopping(); // Context - const { signUp, setCurrentUser } = useAuth(); + const { signUp, setCurrentUser, currentUser } = useAuth(); const { t } = useTranslation('auth'); @@ -52,21 +52,29 @@ const JKRegistrationForm = ({ hasLabel, jamTrack, jamTrackArtistName }) => { toast.error(`${t('signupForm.errorMessage')}`); setIsDisabled(false); } - console.log('_DEBUG_', jamTrack); - console.log('_DEBUG_', jamTrackArtistName); - if(jamTrack){ + + }; + + useEffect(() => { + const addJamTrackToCart = async () => { try{ + console.log('_DEBUG_ going to jamTrack to cart', jamTrack); await addToCart(jamTrack); }catch(error){ console.error(error); } - }else if(jamTrackArtistName){ - history.push(`/jamtracks?artist=${jamTrackArtistName}`); - }else{ - history.push('/public/downloads'); } - }; + if (currentUser) { + if(jamTrack){ + addJamTrackToCart(); + }else if(jamTrackArtistName){ + history.push(`/jamtracks?artist=${jamTrackArtistName}`); + }else{ + history.push('/public/downloads'); + } + } + }, [currentUser, jamTrack, jamTrackArtistName]); useEffect(() => { setIsDisabled(!firstName || !email || !password); diff --git a/jam-ui/src/components/auth/basic/JKRegistration.js b/jam-ui/src/components/auth/basic/JKRegistration.js index 0ee15db6a..fa1880bd2 100644 --- a/jam-ui/src/components/auth/basic/JKRegistration.js +++ b/jam-ui/src/components/auth/basic/JKRegistration.js @@ -4,47 +4,44 @@ import { Link } from 'react-router-dom'; import JKRegistrationForm from '../JKRegistrationForm'; import { useTranslation } from 'react-i18next'; import { useLocation } from 'react-router-dom'; -import { getJamTrack } from '../../../helpers/rest'; -import { useAuth } from '../../../context/UserAuth'; +import { getJamTrackBySlug } from '../../../helpers/rest'; const Registration = () => { const { t } = useTranslation('auth'); const search = useLocation().search; const [jamTrack, setJamTrack] = useState(null); const [jamTrackArtistName, setJamTrackArtistName] = useState(""); - const { currentUser } = useAuth(); + const [loading, setLoading] = useState(false); //coming to signup page after clicking on jamtrack or artist useEffect(() => { - - if (!search) return; - - const params = new URLSearchParams(search); - - - const jamtrackId = params.get('JamTrackId'); - const artistName = params.get('JamTrackArtistName'); - console.log('_DEBUG_ jamtrackId', jamtrackId); - - + if (!search) return; + + const params = new URLSearchParams(search); + + const jamtrackSlug = params.get('JamTrackSlug'); + const artistName = params.get('JamTrackArtistName'); + setLoading(true); + if (artistName && artistName !== "") { setJamTrackArtistName(artistName); - }else if (jamtrackId) { - const fetchJamTrack = async (id) => { + setLoading(false); + } else if (jamtrackSlug && jamtrackSlug !== "") { + const fetchJamTrack = async (slug) => { try { - const response = await getJamTrack({id}); + const response = await getJamTrackBySlug({ slug }); const jamTrack = await response.json(); setJamTrack(jamTrack); + setLoading(false); } catch (error) { console.error(error); + setLoading(false); } } - fetchJamTrack(jamtrackId); - - // if (jt && jt.allow_free && currentUser && currentUser.show_free_jamtrack) { - // setJamTrack(jt); - // } + fetchJamTrack(jamtrackSlug); + }else{ + setLoading(false); } }, [search]); @@ -56,11 +53,16 @@ const Registration = () => { }, [jamTrack, jamTrackArtistName]); return ( - + loading ? ( +
+
+ Loading... +
+
+ ) :
{pageTitle}
- {jamTrack?.id}
diff --git a/jam-ui/src/components/jamtracks/JKJamTrackTrack.js b/jam-ui/src/components/jamtracks/JKJamTrackTrack.js index d538027af..767301f75 100644 --- a/jam-ui/src/components/jamtracks/JKJamTrackTrack.js +++ b/jam-ui/src/components/jamtracks/JKJamTrackTrack.js @@ -1,5 +1,4 @@ import React, { useState, useEffect } from 'react'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import JKInstrumentIcon from '../profile/JKInstrumentIcon'; import { Howl } from 'howler'; import { useJamTrackPreview } from '../../context/JamTrackPreviewContext'; @@ -11,7 +10,7 @@ import { useJamTrack } from '../../hooks/useJamTrack'; const JKJamTrackTrack = ({ track }) => { const [isPlaying, setIsPlaying] = useState(false); - const [isLoaded, setIsLoaded] = useState(false); + //const [isLoaded, setIsLoaded] = useState(false); const [isLoading, setIsLoading] = useState(false); const [trackInfo, setTrackInfo] = useState(null); const [trackSound, setTrackSound] = useState(null); @@ -94,7 +93,7 @@ const JKJamTrackTrack = ({ track }) => { setIsPlaying(false); }, onload: () => { - setIsLoaded(true); + //setIsLoaded(true); setIsLoading(false); sound.play(); setIsPlaying(true); @@ -112,7 +111,6 @@ const JKJamTrackTrack = ({ track }) => { return (
- {/* */}