{"version":3,"file":"static/js/661.6c3ff73b.chunk.js","mappings":"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","sources":["components/band/LeaveBand.js","components/artist/detail/ArtistBands.js","components/artist/detail/ArtistButtons.js","components/artist/detail/ArtistInfo.js","components/artist/detail/ArtistTracks.js","components/artist/detail/ArtistPerformances.js","components/artist/detail/ArtistImages.js","components/artist/detail/ArtistProducts.js","components/artist/detail/ArtistDetailPage.js","../node_modules/@mui/icons-material/Album.js","../node_modules/@mui/icons-material/ConfirmationNumberSharp.js","../node_modules/@mui/icons-material/Image.js","../node_modules/@mui/icons-material/Sell.js"],"sourcesContent":["import React from 'react'\nimport { connect } from 'react-redux'\nimport makeStyles from '@mui/styles/makeStyles'\nimport { showAlert, removeBandmate } from '../../actions'\nimport { destroy } from '../../apis'\nimport { getErrorMessage } from '../../utils'\nimport Typography from '@mui/material/Typography'\nimport List from '@mui/material/List'\nimport ListItem from '@mui/material/ListItem'\nimport ListItemText from '@mui/material/ListItemText'\nimport ListItemAvatar from '@mui/material/ListItemAvatar'\nimport Avatar from '@mui/material/Avatar'\nimport { CloseButton, FormDeleteButton } from '../generics'\n\n\nconst useStyles = makeStyles(theme => ({\n root: {\n width: '100%',\n padding: 30\n },\n title: {\n fontSize: '1.7rem',\n marginBottom: 24,\n marginTop: 24\n },\n bold: {\n fontWeight: 800,\n },\n avatar: {\n width: theme.spacing(6),\n height: theme.spacing(6),\n marginRight: 15\n },\n item: {\n minWidth: 300,\n padding: 12,\n transition: 'all 0.3s ease',\n '&:hover': {\n backgroundColor: '#dfdfdf'\n }\n },\n button: {\n marginTop: 0,\n marginLeft: 24,\n minWidth: 74,\n width: 74,\n height: 36,\n fontSize: '0.8rem'\n }\n}))\n\nconst LeaveBand = props => {\n const classes = useStyles()\n const { bands, showAlert, artistId, handleClose, removeBandmate } = props\n\n const leaveBand = band => () => {\n destroy('/bands/' + band.id + '/leave')\n .then(response => {\n removeBandmate(band.id, artistId)\n showAlert('Successfully left ' + band.attributes.name, 'success')\n })\n .catch(error => {\n const message = getErrorMessage(error)\n showAlert(message, 'error')\n }) \n } \n\n return (\n
\n \n\n \n Leave Band\n \n\n \n { Object.values(bands).map(band => {\n const { name, image, imageDerivatives } = band.attributes\n const imageURL = imageDerivatives.small || image\n\n return (\n \n \n \n \n \n \n LEAVE\n \n \n )\n })\n }\n \n
\n )\n}\n\nexport default connect(null, { showAlert, removeBandmate })(LeaveBand)\n\n\n","import React, {useState, useEffect, useCallback} from 'react'\n/** @jsxImportSource @emotion/react */\nimport {css} from '@emotion/react'\n\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nimport {connect} from 'react-redux'\n\nimport {get} from 'lodash'\n\nimport {\n makeGetArtistBands, \n selectArtistFetchedAssociations\n} from '../../../selectors'\n\nimport {useIsMounted, useFetchFavoritesOfType} from '../../../hooks'\n\nimport {\n index,\n addBandsToArtist,\n setFetchedAssociations\n} from '../../../actions'\n\nimport Dialog from '@mui/material/Dialog'\nimport Button from '@mui/material/Button'\nimport Skeleton from '@mui/material/Skeleton'\nimport IconButton from '@mui/material/IconButton'\nimport Avatar from '@mui/material/Avatar'\nimport AvatarGroup from '@mui/material/AvatarGroup'\n\nimport AddIcon from '@mui/icons-material/Add'\nimport RemoveIcon from '@mui/icons-material/Remove'\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore'\n\nimport BandRow from '../../cards/BandRow'\n\nimport BandForm from '../../band/BandForm'\nimport LeaveBand from '../../band/LeaveBand'\n\n\nimport {SlideTransition, FadeTransition} from '../../generics'\n\n\n\n\nconst styles = {\n root: css`\n height: 100%;\n width: 100%;\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: flex-start;\n margin-bottom: 40px;\n border-top: 1px solid #333;\n border-bottom: 1px solid #333;\n padding: 15px 0 25px 0;\n `,\n header: css`\n width: 100%;\n display: flex;\n justify-content: space-between;\n align-items: center;\n color: #fff;\n margin-bottom: 10px;\n `,\n section: css`\n width: 100%;\n padding: 0;\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n\n h4 {\n font-size: 1.2rem;\n font-weight: 500;\n margin: 0;\n }\n `,\n mainContainer: css`\n width: 100%;\n display: flex;\n align-items: flex-start;\n justify-content: space-between;\n gap: 25px;\n cursor: pointer;\n `,\n truncatedText: css`\n display: -webkit-box;\n -webkit-line-clamp: 10;\n -webkit-box-orient: vertical;\n overflow: hidden;\n `,\n expandedLineup: css`\n display: flex;\n flex-direction: column;\n width: 100%;\n gap: 7px;\n `,\n footer: css`\n display: flex;\n justify-content: center;\n width: 100%;\n position: relative;\n min-height: 36px;\n margin-top: 15px;\n `,\n expandMoreContainer: css`\n position: absolute;\n right: 0;\n width: 36px;\n height: 36px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n `,\n showMoreContainer: css`\n display: flex;\n justify-content: center;\n `,\n showMoreButton: css`\n height: 36px;\n width: 110px;\n border-radius: 18px;\n background: #000;\n color: #3ea5ff;\n font-weight: 500;\n border: none;\n text-transform: uppercase;\n font-size: 11px;\n `,\n dialog: css`\n backdrop-filter: blur(10px);\n `,\n}\n\n\n\n\n\nconst ArtistBands = props => {\n\n const isMounted = useIsMounted()\n\n const isExtraSmallScreen = useMediaQuery(theme => theme.breakpoints.only('xs'))\n\n\n const { \n artistId,\n bands,\n index,\n links,\n setLinks,\n isOwner,\n isLoaded,\n addBandsToArtist,\n setFetchedAssociations,\n } = props\n \n\n const alwaysExpanded = bands.length > 0 && bands.length <= 3\n\n const [isFetched, setIsFetched] = useState(isLoaded)\n const [isFetching, setIsFetching] = useState(false)\n const [isExpanded, setIsExpanded] = useState(alwaysExpanded)\n\n const [modal, setModal] = useState(false)\n\n const hasNextPage = (links.pages !== links.page)\n\n\n\n useEffect(() => {\n if (!isFetched && !isFetching) {\n setIsFetching(true)\n setFetchedAssociations('ARTIST', artistId, 'bands')\n\n index('/artists/' + artistId + '/bands', 'BANDS').then(response => {\n addBandsToArtist(artistId, response.data)\n if (isMounted.current) {\n setIsFetched(true)\n setIsFetching(false)\n if (response.links) {\n setLinks(response.links)\n }\n }\n })\n }\n }, [\n index,\n setLinks,\n artistId,\n isFetched,\n isFetching,\n isMounted,\n addBandsToArtist,\n setFetchedAssociations\n ])\n\n\n\n\n\n const fetchMoreBands = useCallback(props => {\n if (hasNextPage) {\n const url = links.next_url.slice(4)\n\n index(url, 'BANDS').then(response => {\n addBandsToArtist(artistId, response.data)\n\n if (isMounted.current) {\n if (props.isMounted && props.isMounted.current && props.setIsFetching) {\n props.setIsFetching(false)\n }\n\n if (response.links) {\n setLinks(response.links)\n }\n \n setIsFetched(true) \n }\n })\n }\n }, [\n addBandsToArtist,\n artistId,\n index,\n isMounted,\n links.next_url,\n setLinks,\n hasNextPage\n ])\n\n\n\n useFetchFavoritesOfType('band')\n\n\n\n const open = content => () => {\n setModal(content)\n }\n\n\n\n function close() {\n if (isMounted.current) {\n setModal('')\n }\n }\n\n\n\n const toggleExpand = () => {\n if (!alwaysExpanded) {\n setIsExpanded((prev) => !prev);\n }\n }\n\n\n\n \n return ((isFetched && bands.length === 0 && !isOwner)\n ? null \n :
\n
\n
\n {isFetched\n ?

Bands

\n : \n }\n\n {isOwner &&\n
\n \n \n \n\n \n \n \n
\n }\n
\n
\n\n\n \n {!isFetched && }\n {isFetched &&\n (alwaysExpanded || isExpanded ? (\n
\n {bands.map((band) => (\n \n ))}\n
\n ) : (\n <>\n \n {bands.map((band) => {\n const {attributes} = band\n const imageURL = attributes.imageDerivatives?.small || attributes.externalImageUrl\n\n return (\n \n )\n })}\n \n
\n

\n {bands.map((band) => band.attributes.name).join(', ')}\n

\n
\n \n ))}\n
\n\n {((!alwaysExpanded && bands.length > 0) || hasNextPage) && (\n
\n {!alwaysExpanded && bands.length > 0 && (\n \n \n
\n )}\n {hasNextPage && (\n
\n \n
\n )}\n \n )}\n\n\n\n\n \n \n \n\n\n \n \n \n \n )\n}\n\n\nconst makeMapStateToProps = () => {\n const getArtistBands = makeGetArtistBands()\n\n const mapStateToProps = (state, props) => {\n const id = props.artistId\n \n const bands = getArtistBands(state, id)\n\n const role = get(state, ['user', 'attributes', 'role'])\n\n const isLoaded = selectArtistFetchedAssociations(state, id).includes('bands')\n\n \n return {\n bands,\n isLoaded,\n isOwner: ['admin', 'editor'].includes(role) || state.user.account.id === id\n }\n }\n\n return mapStateToProps\n}\n\n\n\nconst actions = {index, addBandsToArtist, setFetchedAssociations}\n\n\n\nexport default connect(makeMapStateToProps, actions)(ArtistBands)\n\n\n\n\n","import {useState, useCallback} from 'react'\n/** @jsxImportSource @emotion/react */\nimport {css} from '@emotion/react'\n\nimport {connect} from 'react-redux'\n\nimport {get} from 'lodash'\n\nimport {useNavigate} from 'react-router-dom'\n\nimport {getErrorMessage} from '../../../utils'\n\nimport {useFetchLFFForTypeAndId} from '../../../hooks'\n\nimport {makeGetArtistById} from '../../../selectors'\n\nimport {destroy, deleteAccount, showAlert} from '../../../actions'\n\nimport ArtistForm from '../ArtistForm'\n\n\nimport Flier from '../../generics/flyers/Flier'\n\n\nimport {\n TipButton,\n // LikeIconButton,\n EditIconButton,\n ButtonGroupRound,\n DeleteIconButton,\n ShareIconButton,\n StatsIconButton,\n QRCodeIconButton,\n MessageIconButton,\n GradientPlayButton,\n FavoriteIconButton\n} from '../../generics'\n\n\n\n\nconst styles = {\n buttonRow: css`\n width: 100%;\n display: flex;\n flex-wrap: nowrap;\n align-items: flex-start;\n padding: 0px 0px 10px 0px;\n gap: 15px;\n\n @media (max-width: 550px) {\n flex-wrap: nowrap;\n overflow-x: scroll;\n -ms-overflow-style: none;\n scrollbar-width: none;\n\n &::-webkit-scrollbar {\n display: none;\n }\n }\n `\n}\n\n\n\n\nconst ArtistButtons = props => {\n\n const navigate = useNavigate()\n\n const [open, setOpen] = useState(false)\n\n\n const {\n artistId,\n name,\n claimed,\n isOwner,\n isEditor,\n isMerchant,\n imageURL,\n videoURL,\n destroy,\n showAlert,\n deleteAccount,\n originalImage\n } = props\n\n\n\n useFetchLFFForTypeAndId('artist', artistId)\n\n\n\n const deleteArtist = useCallback(() => {\n destroy('/artists/' + artistId, 'ARTIST').then(response => {\n showAlert('Artist deleted', 'info')\n deleteAccount()\n navigate(-1)\n })\n .catch(error => {\n const message = getErrorMessage(error)\n showAlert(message, 'error')\n })\n }, [artistId, destroy, deleteAccount, navigate, showAlert])\n\n\n\n function close() {\n setOpen(false)\n }\n\n\n\n const Buttons = useCallback(() => {\n if (isOwner || isEditor) {\n return ( \n <>\n {videoURL &&\n \n }\n\n\n \n \n \n\n\n {(isOwner && !isMerchant) &&\n \n }\n\n\n {/**/}\n\n\n \n \n\n\n \n \n \n\n\n {isOwner &&\n \n }\n \n )\n } else {\n return (\n <>\n {videoURL &&\n \n }\n\n \n\n {isMerchant && \n \n }\n\n {/**/}\n {claimed &&\n \n }\n \n \n \n )\n }\n }, [\n name,\n open,\n claimed,\n isOwner,\n setOpen,\n artistId,\n imageURL,\n videoURL,\n isEditor,\n isMerchant,\n deleteArtist,\n originalImage\n ])\n\n \n\n\n\n\n return (\n
\n \n \n \n
\n )\n}\n\n\n\nconst makeMapStateToProps = () => {\n const getArtistById = makeGetArtistById()\n \n\n const mapStateToProps = (state, props) => {\n \n const id = props.artistId\n \n const artist = getArtistById(state, id).attributes\n\n const role = get(state, ['user', 'attributes', 'role'])\n\n const isOwner = state.user.account.id === id\n\n const isEditor = ['admin', 'editor'].includes(role)\n\n\n\n return {\n name: artist.name,\n claimed: artist.claimed,\n isOwner: isOwner,\n isEditor: isEditor,\n isMerchant: artist?.isMerchant,\n imageURL: artist?.imageDerivatives?.small || '',\n videoURL: artist.video,\n originalImage: artist.image\n }\n }\n\n return mapStateToProps\n}\n\n\n\nconst actions = {destroy, deleteAccount, showAlert}\n\n\nexport default connect(makeMapStateToProps, actions)(ArtistButtons)\n\n\n\n","import {useState, useEffect} from 'react'\n/** @jsxImportSource @emotion/react */\nimport {css} from '@emotion/react'\n\nimport {connect} from 'react-redux'\n\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nimport {get} from 'lodash'\n\nimport {makeGetArtistById} from '../../../selectors'\n\nimport {formatInfoPageAddress} from '../../../utils'\n\nimport MailIcon from '@mui/icons-material/Mail'\nimport PhoneIcon from '@mui/icons-material/Phone'\nimport GlobeIcon from '@mui/icons-material/Language'\n\nimport VideoForm from '../../generics/forms/formik/VideoForm'\n\nimport ArtistBands from './ArtistBands'\nimport ArtistButtons from './ArtistButtons'\n\n\n\nimport { \n Tags,\n // ViewCount,\n Broadcast,\n LinksList,\n WebsiteLink,\n FollowButton,\n VideoIconButton,\n DetailPageTitle,\n DetailPageSection,\n InfoExpandingText\n} from '../../generics'\n\n\n\n\nconst styles = {\n root: css`\n height: 100%;\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n max-width: 550px;\n `,\n titleContainer: css`\n position: relative;\n width: 100%;\n display: flex;\n justify-content: flex-start;\n gap: 30px;\n\n\n @media (max-width: 1120px) {\n justify-content: space-between;\n padding: 0px 25px;\n }\n\n @media (max-width: 768px) {\n gap: 20px;\n }\n `,\n innerTitleContainer: css`\n max-width: 80vw;\n `,\n mainButtonContainer: css`\n position: absolute;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #262626;\n border-radius: 50%;\n flex: 0 0 60px;\n z-index: 15;\n\n svg {\n width: 27px;\n height: 27px;\n }\n\n\n @media (max-width: 1120px) {\n position: absolute;\n top: -25px;\n right: 20px;\n }\n `,\n buttonContainer: css`\n @media (max-width: 1120px) {\n padding: 0px;\n\n #button-row {\n width: auto;\n padding-right: 25px;\n padding-left: 25px;\n }\n }\n `,\n broadcastContainer: css`\n @media (max-width: 1120px) {\n padding: 0px 25px;\n }\n `,\n body: css`\n display: flex;\n flex-direction: column;\n flex-wrap: nowrap;\n margin-bottom: 20px;\n margin-top: 10px;\n\n @media (max-width: 1120px) {\n padding: 0px 25px;\n }\n `,\n footer: css`\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n\n @media (max-width: 1120px) {\n padding: 0px 25px;\n }\n `\n}\n\n\n\nconst ArtistInfo = props => {\n\n const [open, setOpen] = useState(false)\n\n const isLargeScreen = useMediaQuery('(min-width:1120px)')\n\n\n const { \n isOwner,\n artistId, \n name, \n bio, \n tags,\n // views,\n email,\n links,\n setLinks,\n externalLinks,\n address, \n website,\n phoneNumber\n } = props\n\n\n const hasExternalLinks = Object.values(externalLinks).filter(value => !!value).length > 0\n\n\n\n useEffect(() => {\n const mainButtonContainer = document.getElementById('main-button')\n\n\n if (isLargeScreen) {\n const imageContainer = document.getElementById('image-container')\n \n\n if (imageContainer.contains(mainButtonContainer)) return\n\n mainButtonContainer.style.bottom = '15px'\n mainButtonContainer.style.right = '15px'\n mainButtonContainer.style.top = null\n\n imageContainer.appendChild(mainButtonContainer)\n \n\n } else {\n const titleContainer = document.getElementById('title-container')\n\n if (titleContainer.contains(mainButtonContainer)) return\n\n mainButtonContainer.style.top = isOwner ? '-45px' : '-25px'\n mainButtonContainer.style.right = '20px'\n mainButtonContainer.style.bottom = null\n\n \n titleContainer.appendChild(mainButtonContainer)\n }\n }, [isOwner, isLargeScreen])\n\n\n\n\n function close() {\n setOpen(false)\n }\n\n\n\n return (\n
\n
\n
\n \n
\n\n\n {isOwner &&\n
\n \n \n \n
\n }\n\n\n {!isOwner &&\n
\n \n
\n }\n
\n\n {/**/}\n\n \n
\n \n
\n\n\n\n
\n {!isLargeScreen &&\n \n }\n
\n\n\n
\n {bio && \n \n }\n\n\n \n\n\n {website && \n } \n Content={} \n />\n }\n\n\n {email && \n } \n Content={} \n />\n }\n\n\n {phoneNumber && \n } text={phoneNumber} />\n }\n\n\n {hasExternalLinks &&\n } />\n }\n
\n \n\n
\n \n
\n
\n )\n}\n\n\n\nconst makeMapStateToProps = () => {\n const getArtistById = makeGetArtistById()\n\n\n const mapStateToProps = (state, props) => {\n\n const id = props.artistId\n\n const role = get(state, ['user', 'attributes', 'role'])\n \n const artist = getArtistById(state, id).attributes\n \n\n return {\n name: artist.name,\n bio: artist.bio,\n tags: artist.tags,\n views: artist.views,\n email: artist.email,\n address: artist.address,\n website: artist.website,\n phoneNumber: artist.phoneNumber,\n externalLinks: artist.links,\n isOwner: ['admin', 'editor'].includes(role) || (state.user.account.id === id)\n }\n }\n\n return mapStateToProps\n}\n\n\n\nexport default connect(makeMapStateToProps)(ArtistInfo)\n\n\n\n\n\n","import React, {useState, useEffect, useCallback} from 'react'\n/** @jsxImportSource @emotion/react */\nimport {css} from '@emotion/react'\n\nimport {shuffle} from 'lodash'\n\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nimport {connect, useDispatch} from 'react-redux'\n\nimport {get} from 'lodash'\n\nimport {show} from '../../../apis'\n\nimport { \n useIsMounted,\n useFetchLikesOfType,\n useFetchFavoritesOfType\n} from '../../../hooks'\n\nimport { \n makeGetArtistById,\n selectArtistLinks,\n makeGetArtistTracks, \n selectArtistFetchedAssociations\n} from '../../../selectors'\n\nimport { \n index,\n saveLinks,\n addTracksToArtist,\n setFetchedAssociations,\n removeSpotifyTracksFromArtist\n} from '../../../actions'\n\n\nimport {\n convertSpotifyTracksToCkordFormat,\n convertAppleMusicTracksToCkordFormat\n} from '../../../helpers'\n\n\nimport AddIcon from '@mui/icons-material/Add'\nimport Dialog from '@mui/material/Dialog'\n\n\nimport {TrackForm} from '../../track'\nimport {CardList, CardListMobile} from '../../cards'\n\n\nimport { \n ThreeDotProgress, \n SlideTransition,\n FadeTransition,\n GroupedButton,\n DetailPageTabMessage,\n DetailPageTabButtonContainer\n} from '../../generics'\n\n\n\n\nconst styles = {\n root: css`\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n flex-direction: column;\n `,\n section: css`\n width: 100%;\n display: flex;\n flex-direction: column;\n margin-bottom: 60px;\n\n h4 {\n font-size: 1.3rem;\n font-weight: 600;\n color: #7b7b7b;\n letter-spacing: 0;\n margin-left: 15px;\n margin-right: 15px;\n margin-bottom: 15px;\n padding-bottom: 10px;\n border-bottom: 1px solid #d9d9d9;\n margin-top: 10px;\n }\n `,\n cardsContainer: css`\n display: flex;\n flex-wrap: wrap;\n max-width: 100%;\n width: 100%;\n\n .message {\n width: 100%;\n font-size: 1rem;\n text-align: left;\n padding-left: 15px;\n margin-bottom: 15px;\n }\n `,\n progressContainer: css`\n height: 100%;\n width: 100%;\n margin-top: 20px;\n `,\n dialog: css`\n backdrop-filter: blur(10px);\n `\n}\n\n\n\nconst ArtistTracks = props => {\n\n const isMounted = useIsMounted()\n\n const dispatch = useDispatch()\n\n const isExtraSmallScreen = useMediaQuery(theme => theme.breakpoints.only('xs'))\n\n const [open, setOpen] = useState(false)\n\n\n const { \n artistId, \n tracks,\n index,\n isOwner,\n isFetching,\n isLoaded,\n saveLinks,\n stateLinks,\n // spotifyLink,\n appleMusicLink,\n addTracksToArtist,\n setFetchedAssociations,\n removeSpotifyTracksFromArtist\n } = props\n\n\n const [links, setLinks] = useState(stateLinks)\n\n const [isFetched, setIsFetched] = useState(isLoaded)\n\n const hasNextPage = links.pages !== links.page\n\n\n\n\n\n const fetchMoreTracks = useCallback(props => {\n if (hasNextPage) {\n const url = links.next_url.slice(4)\n\n index(url, 'TRACKS').then(response => {\n addTracksToArtist(artistId, response.data)\n\n if (isMounted.current) {\n if (props.isMounted && props.isMounted.current && props.setIsFetching) {\n props.setIsFetching(false)\n }\n\n if (response.links) {\n setLinks(response.links)\n }\n \n setIsFetched(true) \n }\n })\n }\n }, [\n index,\n artistId,\n isMounted,\n hasNextPage,\n links.next_url,\n addTracksToArtist\n ])\n\n\n\n useEffect(() => {\n return () => saveLinks('ARTIST', artistId, 'tracks', links)\n }, [artistId, links, saveLinks])\n\n\n\n useEffect(() => {\n if (!isLoaded) {\n setFetchedAssociations('ARTIST', artistId, 'tracks')\n \n index('/artists/' + artistId + '/tracks', 'TRACKS').then(response => {\n addTracksToArtist(artistId, response.data)\n\n if (isMounted.current) {\n setIsFetched(true) \n\n if (response.links) {\n setLinks(response.links)\n } \n }\n })\n }\n }, [\n index,\n isLoaded,\n artistId,\n isMounted,\n addTracksToArtist,\n setFetchedAssociations\n ])\n\n\n\n // Get Spotify previews of tracks if user has a Spotify link\n // useEffect(() => {\n // const spotifyArtistID = spotifyLink?.split('?')[0].split('/').reverse()[0]\n\n\n // if (!spotifyArtistID) return\n\n\n // // Since this effect should only run once, if it runs a second time it means\n // // the artist changed the spotfiy link and therefore the current spotify tracks\n // // should be removed before the new ones are added\n // removeSpotifyTracksFromArtist(artistId)\n\n \n // show('/services/spotify/artists/' + spotifyArtistID + '/tracks').then(response => {\n // const data = response.data\n\n // // Format the Spotify tracks to match the Ckord tracks\n // const ckordTracks = shuffle(convertSpotifyTracksToCkordFormat(data, artistId, 'Artist', spotifyLink))\n\n\n // // Update the store\n // dispatch({type: 'TRACKS_INDEX_SUCCESS', payload: {data: ckordTracks}})\n // addTracksToArtist(artistId, ckordTracks)\n // })\n // .catch(error => {})\n // }, [\n // artistId, \n // dispatch, \n // spotifyLink, \n // addTracksToArtist, \n // removeSpotifyTracksFromArtist\n // ])\n\n\n\n\n useEffect(() => {\n const appleMusicArtistID = appleMusicLink?.split('?')[0].split('/').reverse()[0]\n\n\n if (!appleMusicArtistID) return\n\n\n // Since this effect should only run once, if it runs a second time it means\n // the artist changed the spotfiy link and therefore the current spotify tracks\n // should be removed before the new ones are added\n // removeSpotifyTracksFromArtist(artistId)\n\n \n show('/services/apple-music/artists/' + appleMusicArtistID + '/tracks').then(response => {\n const data = response.data\n \n // Format the Spotify tracks to match the Ckord tracks\n const ckordTracks = convertAppleMusicTracksToCkordFormat(data, artistId, 'Artist', appleMusicLink)\n\n // Update the store\n dispatch({type: 'TRACKS_INDEX_SUCCESS', payload: {data: ckordTracks}})\n addTracksToArtist(artistId, ckordTracks)\n })\n .catch(error => console.log(error))\n }, [\n artistId, \n dispatch, \n appleMusicLink, \n addTracksToArtist, \n removeSpotifyTracksFromArtist\n ])\n\n\n\n\n useFetchLikesOfType('track')\n useFetchFavoritesOfType('track')\n\n\n\n\n function handleClick() {\n setOpen(true)\n }\n\n\n\n function close() {\n setOpen(false)\n }\n\n\n\n\n return (\n
\n \n {isOwner && \n }\n onClick={handleClick} \n />\n } \n \n\n\n\n
\n {Boolean(tracks.length) && \n <>\n {isExtraSmallScreen &&\n \n }\n\n\n {!isExtraSmallScreen &&\n \n }\n \n }\n\n\n\n {!Boolean(tracks.length) && isFetched &&\n \n {isOwner \n ? 'To add / upload a music track, click the plus icon above' \n : 'This artist hasn\\'t uploaded any tracks yet'\n }\n \n }\n\n\n\n {isFetching && \n
\n \n
\n }\n
\n\n\n \n \n \n
\n )\n}\n\n\n\nconst makeMapStateToProps = () => {\n const getArtistById = makeGetArtistById()\n const getArtistTracks = makeGetArtistTracks()\n\n\n const mapStateToProps = (state, props) => {\n \n const id = props.artistId\n\n const artist = getArtistById(state, id)\n \n const links = selectArtistLinks(state, id, 'tracks')\n\n const tracks = getArtistTracks(state, id)\n \n const role = get(state, ['user', 'attributes', 'role'])\n \n const isOwner = ['admin', 'editor'].includes(role) || state.user.account.id === id\n\n\n return {\n tracks: tracks,\n isOwner: isOwner,\n stateLinks: links,\n // spotifyLink: artist?.attributes?.links?.spotify,\n appleMusicLink: artist?.attributes?.links?.apple,\n isFetching: state.tracks.isFetching && tracks.length === 0,\n isLoaded: selectArtistFetchedAssociations(state, id).includes('tracks')\n }\n }\n\n return mapStateToProps\n}\n\n\nconst actions = { \n index, \n saveLinks, \n addTracksToArtist, \n setFetchedAssociations,\n removeSpotifyTracksFromArtist\n}\n\n\n\nexport default connect(makeMapStateToProps, actions)(ArtistTracks)\n\n\n","import React, {useState, useEffect, useCallback} from 'react'\n/** @jsxImportSource @emotion/react */\nimport {css} from '@emotion/react'\n\nimport {connect} from 'react-redux'\n\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nimport {get} from 'lodash'\n\nimport {startOfToday} from 'date-fns'\n\nimport {dateToUTC} from '../../../utils'\n\nimport {useIsMounted} from '../../../hooks'\n\nimport { \n selectArtistLinks,\n makeGetArtistPerformances, \n makeGetNearbyArtistPerformances,\n selectArtistFetchedAssociations\n} from '../../../selectors'\n\n\nimport { \n index, \n saveLinks,\n showAlert,\n setFetchedAssociations,\n addPerformancesToArtist, \n addNearbyPerformancesToArtist\n} from '../../../actions'\n\n\nimport AddIcon from '@mui/icons-material/Add'\nimport RemoveIcon from '@mui/icons-material/Remove'\nimport HistoryIcon from '@mui/icons-material/History'\nimport Dialog from '@mui/material/Dialog'\n\n\nimport {PerformanceItemContainer} from '../../cards/CardList'\nimport {CardList, CardListMobile, PerformanceCard} from '../../cards'\nimport {LeavePerformance, PerformanceForm} from '../../performance'\n\n\nimport { \n ThreeDotProgress, \n SlideTransition,\n FadeTransition,\n GroupedButton,\n DetailPageTabMessage,\n DetailPageTabButtonContainer\n} from '../../generics'\n\n\n\n\nconst styles = {\n root: css`\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n flex-direction: column;\n `,\n section: css`\n width: 100%;\n display: flex;\n flex-direction: column;\n margin-bottom: 30px;\n\n h4 {\n font-size: 1rem;\n font-weight: 600;\n color: #7b7b7b;\n letter-spacing: 0;\n margin-left: 15px;\n margin-right: 15px;\n margin-bottom: 15px;\n padding-bottom: 5px;\n border-bottom: 1px solid #d9d9d9;\n margin-top: 10px;\n text-transform: uppercase;\n }\n `,\n cardsContainer: css`\n display: flex;\n flex-wrap: wrap;\n max-width: 100%;\n width: 100%;\n\n .message {\n width: 100%;\n font-size: 1rem;\n text-align: left;\n padding-left: 15px;\n margin-bottom: 15px;\n }\n `,\n progressContainer: css`\n height: 100%;\n width: 100%;\n margin-top: 20px;\n `,\n dialog: css`\n backdrop-filter: blur(10px);\n `\n}\n\n\n\n\n\nconst ArtistPerformances = props => {\n\n const isMounted = useIsMounted()\n \n const isExtraSmallScreen = useMediaQuery(theme => theme.breakpoints.only('xs'))\n const isLessThanMediumScreen = useMediaQuery(theme => theme.breakpoints.down('md'))\n const isLessThanLargeScreen = useMediaQuery(theme => theme.breakpoints.down('lg'))\n \n const [modal, setModal] = useState(false)\n \n\n\n const { \n artistId, \n performances,\n nearbyPerformances,\n index,\n isOwner,\n addPerformancesToArtist,\n addNearbyPerformancesToArtist,\n setFetchedAssociations,\n isFetching,\n isLoaded,\n lat,\n lng,\n saveLinks,\n stateLinks\n } = props\n\n\n\n const [links, setLinks] = useState(stateLinks)\n\n const [isFetched, setIsFetched] = useState(isLoaded)\n\n const hasNextPage = (links.pages !== links.page)\n\n\n\n\n\n const fetchMorePerformances = useCallback(props => {\n if (hasNextPage) {\n const url = links.next_url.slice(4)\n\n index(url, 'PERFORMANCES').then(response => {\n addPerformancesToArtist(artistId, response.data)\n\n if (isMounted.current) {\n if (props.isMounted && props.isMounted.current && props.setIsFetching) {\n props.setIsFetching(false)\n }\n \n if (response.links) {\n setLinks(response.links)\n }\n \n setIsFetched(true) \n }\n })\n }\n }, [\n addPerformancesToArtist,\n artistId,\n index,\n isMounted,\n links.next_url,\n hasNextPage\n ])\n\n\n\n\n useEffect(() => {\n return () => saveLinks('ARTIST', artistId, 'performances', links)\n }, [artistId, links, saveLinks])\n\n\n\n\n useEffect(() => {\n if (!isLoaded) {\n\n const url = '/artists/' + artistId + '/performances'\n\n const time = dateToUTC(startOfToday())\n \n const data = {time, lat, lng}\n\n\n setFetchedAssociations('ARTIST', artistId, 'performances')\n\n\n index(url, 'PERFORMANCES', data).then(response => {\n const nearby = get(response, ['meta', 'nearby', 'data'], [])\n\n addPerformancesToArtist(artistId, response.data)\n \n if (isMounted.current) {\n setIsFetched(true)\n\n if (response.links) {\n setLinks(response.links)\n }\n \n if (nearby && nearby.length) {\n addNearbyPerformancesToArtist(artistId, nearby)\n }\n }\n })\n }\n }, [\n lat,\n lng,\n index,\n isLoaded,\n artistId,\n isMounted,\n setFetchedAssociations,\n addPerformancesToArtist,\n addNearbyPerformancesToArtist\n ])\n\n\n\n function handleHistoryClick() {\n\n const url = '/artists/' + artistId + '/performances'\n \n const data = {show_past: true, time: dateToUTC(startOfToday()), lat, lng}\n\n \n index(url, 'PERFORMANCES', data).then(response => {\n addPerformancesToArtist(artistId, response.data, true)\n \n if (isMounted.current && response.links) {\n setLinks(response.links)\n }\n })\n }\n\n\n\n const open = content => () => {\n setModal(content)\n }\n\n\n\n function close() {\n setModal('')\n }\n\n\n\n\n\n const NearbyContent = useCallback(() => {\n if (!nearbyPerformances.length) return null\n\n\n return nearbyPerformances.map(performance => {\n if (isExtraSmallScreen) {\n return \n } else {\n return (\n \n \n \n )\n }\n })\n }, [nearbyPerformances, isExtraSmallScreen])\n\n\n\n\n return (\n
\n \n <>\n {isOwner &&\n <>\n }\n onClick={open('create')} \n /> \n\n }\n onClick={open('leave')} \n />\n \n }\n\n{/* }\n onClick={handleHistoryClick}\n />*/}\n \n \n\n\n \n {Boolean(nearbyPerformances.length) &&\n
\n

Near You

\n\n
\n \n
\n
\n }\n\n \n
\n {Boolean(performances.length) && \n <>\n

All Events

\n\n {isExtraSmallScreen &&\n \n }\n\n\n {!isExtraSmallScreen &&\n \n }\n \n }\n\n \n {!Boolean(performances.length) && isFetched &&\n \n {isOwner \n ? 'To create a performance, click the plus icon above.'\n : 'This artist hasn\\'t published any upcoming performances yet.'\n }\n \n }\n\n\n {isFetching && \n
\n \n
\n }\n
\n\n\n\n {isOwner && \n <>\n \n \n \n\n\n \n \n \n \n }\n
\n )\n}\n\n\n\nconst makeMapStateToProps = () => {\n const getArtistPerformances = makeGetArtistPerformances()\n const getNearbyArtistPerformances = makeGetNearbyArtistPerformances()\n\n\n const mapStateToProps = (state, props) => {\n \n const id = props.artistId\n\n const links = selectArtistLinks(state, id, 'performances')\n \n const performances = getArtistPerformances(state, id)\n \n const nearbyPerformances = getNearbyArtistPerformances(state, id)\n \n const role = get(state, ['user', 'attributes', 'role'])\n \n const isOwner = ['admin', 'editor'].includes(role) || state.user.account.id === id\n\n\n\n return {\n lng: state.user.location.lng,\n lat: state.user.location.lat,\n isOwner: isOwner,\n stateLinks: links,\n performances: performances,\n nearbyPerformances: nearbyPerformances,\n isLoaded: selectArtistFetchedAssociations(state, id).includes('performances'),\n isFetching: state.performances.isFetching && performances.length === 0\n }\n }\n\n return mapStateToProps\n}\n\n\n\nconst actions = {\n index,\n saveLinks, \n showAlert,\n setFetchedAssociations,\n addPerformancesToArtist,\n addNearbyPerformancesToArtist\n}\n\n\n\nexport default connect(makeMapStateToProps, actions)(ArtistPerformances)\n\n\n\n\n","import React, {useState, useEffect} from 'react'\n/** @jsxImportSource @emotion/react */\nimport {css} from '@emotion/react'\n\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nimport {connect} from 'react-redux'\n\nimport {get} from 'lodash'\n\nimport {index} from '../../../actions'\n\nimport {makeGetArtistById} from '../../../selectors'\n\nimport {useIsMounted} from '../../../hooks'\n\nimport Dialog from '@mui/material/Dialog'\nimport AddIcon from '@mui/icons-material/Add'\n\n\nimport { \n Images,\n ImageForm,\n GroupedButton,\n ThreeDotProgress, \n SlideTransition,\n FadeTransition,\n DetailPageTabMessage,\n DetailPageTabButtonContainer\n} from '../../generics'\n\n\n\n\nconst styles = {\n root: css`\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n flex-direction: column;\n `,\n imagesContainer: css`\n width: 100%;\n flex-grow: 1;\n position: relative;\n `,\n message: css`\n width: 100%;\n font-size: 1rem;\n text-align: left;\n padding-left: 15px;\n margin-bottom: 15px;\n `,\n progressContainer: css`\n height: 100%;\n width: 100%;\n margin-top: 20px;\n `,\n dialog: css`\n backdrop-filter: blur(10px);\n `\n}\n\n\n\n\nconst ArtistImages = props => {\n\n const isMounted = useIsMounted()\n \n const isExtraSmallScreen = useMediaQuery(theme => theme.breakpoints.only('xs'))\n \n const [open, setOpen] = useState(false)\n \n\n const { \n isOwner, \n isLoaded, \n images, \n artistId, \n index, \n isFetching \n } = props\n\n \n const [isFetched, setIsFetched] = useState(isLoaded)\n\n\n\n\n useEffect(() => {\n if (!isLoaded) {\n const url = '/artists/' + artistId + '/images'\n\n index(url, 'ARTIST_IMAGES').then(response => {\n if (isMounted.current) {\n setIsFetched(true)\n }\n })\n }\n }, [isLoaded, artistId, index, isMounted])\n\n\n\n function handleClick() {\n setOpen(true)\n }\n\n\n\n function close() {\n setOpen(false)\n }\n\n\n\n return (isLoaded &&\n
\n \n {isOwner && \n }\n onClick={handleClick} \n />\n }\n \n\n\n\n
\n {(() => {\n if (Boolean(images.length)) {\n return \n \n } else if (isFetched) {\n \n return (\n \n {isOwner \n ? 'To upload an image, click the plus icon above'\n : 'This artist hasn\\'t uploaded any images yet'\n }\n \n )\n }\n })()}\n \n\n {isFetching && \n
\n \n
\n }\n
\n\n\n\n\n \n \n \n
\n )\n}\n\n\n\n\nconst makeMapStateToProps = () => {\n const getArtistById = makeGetArtistById()\n\n\n const mapStateToProps = (state, props) => {\n \n const id = props.artistId\n \n const artist = getArtistById(state, id)\n \n const images = get(artist, ['attributes', 'images'], false)\n \n const role = get(state, ['user', 'attributes', 'role'])\n \n const isOwner = ['admin', 'editor'].includes(role) || state.user.account.id === id\n\n\n return {\n images: images,\n isOwner: isOwner,\n isLoaded: Boolean(images)\n }\n }\n\n return mapStateToProps\n}\n\n\nexport default connect(makeMapStateToProps, {index})(ArtistImages)\n\n\n\n","import React, {useState, useEffect, useCallback} from 'react'\n/** @jsxImportSource @emotion/react */\nimport {css} from '@emotion/react'\n\nimport useMediaQuery from '@mui/material/useMediaQuery'\n\nimport {connect} from 'react-redux'\n\nimport {useNavigate} from 'react-router-dom'\n\nimport {useIsMounted} from '../../../hooks'\n\nimport { \n index,\n addRelationToX,\n setFetchedAssociations \n} from '../../../actions'\n\nimport { \n makeGetArtistProducts,\n selectArtistFetchedAssociations \n} from '../../../selectors'\n\nimport AddIcon from '@mui/icons-material/Add'\nimport Dialog from '@mui/material/Dialog'\n\nimport {CardList, CardListMobileGrid} from '../../cards'\n\nimport {ProductForm} from '../../product'\n\nimport {\n GroupedButton,\n FadeTransition,\n SlideTransition,\n ThreeDotProgress,\n DetailPageTabMessage,\n DetailPageTabButtonContainer\n} from '../../generics'\n\n\n\nconst styles = {\n root: css`\n position: absolute;\n height: 100%;\n width: 100%;\n display: flex;\n align-items: center;\n align-content: center;\n justify-content: flex-start;\n flex-direction: column;\n z-index: 50;\n `,\n emptyContainer: css`\n width: 100%;\n height: 20px;\n `,\n cardsContainer: css`\n width: 100%;\n flex-grow: 1;\n `,\n card: css`\n width: 200px;\n height: 330px;\n display: flex;\n flex-wrap: nowrap;\n flex-direction: column;\n border-radius: 6px;\n overflow: hidden;\n cursor: pointer;\n transition: 0.3s;\n box-shadow: rgba(0, 0, 0, 0.3) 0px 1px 2px 0px, rgba(0, 0, 0, 0.15) 0px 1px 3px 1px;\n `,\n progressContainer: css`\n height: 100%;\n width: 100%;\n margin-top: 20px;\n `\n}\n\n\n\n\nconst ArtistProducts = props => {\n\n const navigate = useNavigate()\n\n const isMounted = useIsMounted()\n\n const isExtraSmallScreen = useMediaQuery(theme => theme.breakpoints.only('xs'))\n\n\n const [isOpen, setIsOpen] = useState(false)\n\n\n const {\n index,\n links,\n isOwner,\n setLinks,\n artistId,\n products,\n isLoaded,\n isFetching,\n addRelationToX,\n setFetchedAssociations\n } = props\n\n\n const [isFetched, setIsFetched] = useState(isLoaded)\n\n\n\n const fetchMoreProducts = useCallback(props => {\n if (links.pages !== links.page) {\n const url = links.next_url.slice(4)\n\n index(url, 'PRODUCTS').then(response => {\n const products = response.data\n\n addRelationToX(products, 'products', artistId, 'artist')\n\n if (isMounted.current) {\n if (props.isMounted && props.isMounted.current && props.setIsFetching) {\n props.setIsFetching(false)\n }\n\n if (response.links) setLinks(response.links)\n\n setIsFetched(true) \n }\n })\n }\n }, [\n addRelationToX,\n artistId,\n index,\n isMounted,\n links.next_url,\n links.page,\n links.pages,\n setLinks\n ])\n\n\n\n useEffect(() => {\n if (!isLoaded) {\n setFetchedAssociations('ARTIST', artistId, 'products')\n\n index('/merchants/artist/' + artistId + '/products', 'PRODUCTS').then(response => {\n const products = response.data\n\n addRelationToX(products, 'products', artistId, 'artist')\n\n if (isMounted.current) {\n if (response.links) setLinks(response.links)\n setIsFetched(true)\n }\n })\n }\n }, [\n isLoaded,\n artistId,\n index,\n addRelationToX,\n setFetchedAssociations,\n isMounted,\n setLinks\n ])\n\n\n\n function close() {\n setIsOpen(false)\n }\n\n\n function goToShop() {\n navigate('/shop?page=products')\n }\n\n\n\n\n return (\n
\n \n {isOwner && \n }\n onClick={goToShop} \n />\n }\n \n\n\n\n
\n {Boolean(products.length) && \n <>\n {isExtraSmallScreen &&\n \n }\n\n\n {!isExtraSmallScreen && \n \n }\n \n }\n\n\n {!Boolean(products.length) && isFetched && \n \n {isOwner \n ? 'To add a product, click the plus icon above' \n : 'This artist doesn\\'t have any merchandise listed yet'\n }\n \n }\n\n\n\n\n {isFetching && \n
\n \n
\n }\n
\n\n\n \n \n \n
\n )\n}\n\n\n\nconst makeMapStateToProps = () => {\n const getArtistProducts = makeGetArtistProducts()\n \n\n const mapStateToProps = (state, props) => {\n \n const id = props.artistId\n \n const products = getArtistProducts(state, id)\n\n\n return {\n products: products,\n isOwner: state.user.account.id === id,\n isLoaded: selectArtistFetchedAssociations(state, id).includes('products'),\n }\n }\n\n return mapStateToProps\n}\n\n\nconst actions = {index, addRelationToX, setFetchedAssociations}\n\n\n\nexport default connect(makeMapStateToProps, actions)(ArtistProducts)\n\n","import React, { useEffect, useState, useMemo } from 'react'\nimport withRouter from '../../hocs/withRouter'\nimport { connect } from 'react-redux'\nimport { get } from 'lodash'\nimport { useNavigate } from 'react-router-dom'\n\nimport { formatError } from '../../../utils'\nimport {\n makeGetArtistById,\n} from '../../../selectors'\nimport { \n show,\n incrementViewCount, \n addBandsToArtist, \n} from '../../../actions'\nimport useMediaQuery from '@mui/material/useMediaQuery'\nimport DetailPage from '../../pages/DetailPage'\n\n\nimport {\n SEO, \n Broadcast, \n MerchantAccountTab\n} from '../../generics'\n\n\n\nimport ArtistInfo from './ArtistInfo'\nimport ArtistTracks from './ArtistTracks'\nimport ArtistPerformances from './ArtistPerformances'\nimport ArtistImages from './ArtistImages'\nimport ArtistProducts from './ArtistProducts'\nimport AlbumIcon from '@mui/icons-material/Album'\nimport TicketIcon from '@mui/icons-material/ConfirmationNumberSharp'\nimport ImageIcon from '@mui/icons-material/Image'\nimport SellIcon from '@mui/icons-material/Sell'\n\n\n\n\nconst ArtistDetailPage = props => {\n\n const isExtraSmallScreen = useMediaQuery(theme => theme.breakpoints.only('xs'))\n const navigate = useNavigate()\n\n const {\n id,\n isArtist,\n isLoaded,\n isMerchant,\n stripeId,\n show,\n name,\n bio,\n imageURL,\n videoURL,\n originalImage,\n externalImageURL,\n incrementViewCount\n } = props\n\n\n const jsonLdData = {\n \"@context\": \"http://schema.org\",\n \"@type\": \"Person\",\n \"url\": \"https://www.ckord.com/artists/\" + id,\n \"name\": name,\n \"description\": bio,\n \"image\": [imageURL]\n }\n\n\n const [links, setLinks] = useState({})\n\n\n\n useEffect(() => {\n show('/artists/' + id, 'ARTIST').catch(error => {\n error = formatError(error)\n\n if (error.status === 404) {\n navigate('/page-not-found', { replace: true, state: { page: 'artist' }})\n }\n })\n }, [id, show, navigate])\n\n\n\n\n\n useEffect(() => {\n if (isLoaded) {\n incrementViewCount('/artists/' + id + '/views', 'ARTIST', id)\n }\n }, [isLoaded, incrementViewCount, id])\n\n\n\n\n const ProductsTab = useMemo(() => {\n if (!isMerchant && isArtist) {\n return \n } else if (isMerchant) {\n return (\n \n )\n } else {\n return null\n }\n }, [isMerchant, isArtist, id, links, name, stripeId])\n\n\n\n\n return (isLoaded &&\n
\n \n\n\n }\n information={}\n\n tab1={ }\n tab1Label={ isExtraSmallScreen ? : 'events' }\n\n tab2={ }\n tab2Label={ isExtraSmallScreen ? : 'music' }\n \n tab3={ }\n tab3Label={ isExtraSmallScreen ? : 'images' }\n \n tab4={ProductsTab}\n tab4Label={\n !Boolean(ProductsTab) ? false : \n isExtraSmallScreen ? : 'merch'\n }\n />\n
\n )\n}\n\n\n\nconst makeMapStateToProps = () => {\n const getArtistById = makeGetArtistById()\n\n const mapStateToProps = (state, props) => {\n const id = props.id\n\n const artist = getArtistById(state, id)\n\n const attributes = artist?.attributes || {}\n\n const role = state?.user?.attributes?.role\n\n const imageURL = attributes.imageDerivatives?.large || attributes.image\n\n const externalImageURL = attributes.externalImageUrl\n\n const videoURL = attributes.video\n\n\n return {\n isArtist: ['admin', 'editor'].includes(role) || (state.user.account.id === id),\n isLoaded: Boolean(artist.id),\n isMerchant: get(artist, ['attributes', 'isMerchant'], ''),\n imageURL: imageURL,\n videoURL: videoURL,\n originalImage: attributes.image,\n externalImageURL: externalImageURL,\n name: attributes.name || '',\n bio: attributes.bio || '',\n stripeId: attributes.stripeId\n }\n }\n\n return mapStateToProps\n}\n\n\nconst actions = { show, incrementViewCount, addBandsToArtist }\n\n\nexport default withRouter(connect(makeMapStateToProps, actions)(ArtistDetailPage))\n\n\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2m0 14.5c-2.49 0-4.5-2.01-4.5-4.5S9.51 7.5 12 7.5s4.5 2.01 4.5 4.5-2.01 4.5-4.5 4.5m0-5.5c-.55 0-1 .45-1 1s.45 1 1 1 1-.45 1-1-.45-1-1-1\"\n}), 'Album');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M22 10V4H2.01v6c1.1 0 1.99.9 1.99 2s-.89 2-2 2v6h20v-6c-1.1 0-2-.9-2-2s.9-2 2-2m-9 7.5h-2v-2h2zm0-4.5h-2v-2h2zm0-4.5h-2v-2h2z\"\n}), 'ConfirmationNumberSharp');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2M8.5 13.5l2.5 3.01L14.5 12l4.5 6H5z\"\n}), 'Image');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m21.41 11.41-8.83-8.83c-.37-.37-.88-.58-1.41-.58H4c-1.1 0-2 .9-2 2v7.17c0 .53.21 1.04.59 1.41l8.83 8.83c.78.78 2.05.78 2.83 0l7.17-7.17c.78-.78.78-2.04-.01-2.83M6.5 8C5.67 8 5 7.33 5 6.5S5.67 5 6.5 5 8 5.67 8 6.5 7.33 8 6.5 8\"\n}), 'Sell');"],"names":["useStyles","makeStyles","theme","root","width","padding","title","fontSize","marginBottom","marginTop","bold","fontWeight","avatar","spacing","height","marginRight","item","minWidth","transition","backgroundColor","button","marginLeft","connect","showAlert","removeBandmate","props","classes","bands","artistId","handleClose","leaveBand","band","destroy","id","then","response","attributes","name","catch","error","message","getErrorMessage","_jsxs","className","children","_jsx","CloseButton","onClick","Typography","List","Object","values","map","image","imageDerivatives","imageURL","small","ListItem","ListItemAvatar","Avatar","alt","src","variant","ListItemText","primary","primaryTypographyProps","noWrap","FormDeleteButton","styles","css","_templateObject","_taggedTemplateLiteral","header","_templateObject2","section","_templateObject3","mainContainer","_templateObject4","truncatedText","_templateObject5","expandedLineup","_templateObject6","footer","_templateObject7","expandMoreContainer","_templateObject8","showMoreContainer","_templateObject9","showMoreButton","_templateObject10","dialog","_templateObject11","actions","index","addBandsToArtist","setFetchedAssociations","makeMapStateToProps","getArtistBands","makeGetArtistBands","mapStateToProps","state","role","get","isLoaded","selectArtistFetchedAssociations","includes","isOwner","user","account","isMounted","useIsMounted","isExtraSmallScreen","useMediaQuery","breakpoints","only","links","setLinks","alwaysExpanded","length","isFetched","setIsFetched","useState","isFetching","setIsFetching","isExpanded","setIsExpanded","modal","setModal","hasNextPage","pages","page","useEffect","data","current","fetchMoreBands","useCallback","url","next_url","slice","useFetchFavoritesOfType","open","content","close","toggleExpand","prev","Skeleton","IconButton","AddIcon","color","RemoveIcon","_objectSpread","BandRow","_Fragment","AvatarGroup","max","sx","border","background","_attributes$imageDeri","externalImageUrl","join","_templateObject12","ExpandMoreIcon","Button","Dialog","scroll","maxWidth","onClose","fullScreen","TransitionComponent","SlideTransition","FadeTransition","BandForm","creatorType","creatorId","disableScrollLock","LeaveBand","buttonRow","deleteAccount","getArtistById","makeGetArtistById","_artist$imageDerivati","artist","isEditor","claimed","isMerchant","videoURL","video","originalImage","navigate","useNavigate","setOpen","useFetchLFFForTypeAndId","deleteArtist","Buttons","GradientPlayButton","EditIconButton","ArtistForm","TipButton","type","ShareIconButton","StatsIconButton","QRCodeIconButton","Flier","DeleteIconButton","text","primaryAction","FavoriteIconButton","MessageIconButton","ButtonGroupRound","titleContainer","innerTitleContainer","mainButtonContainer","buttonContainer","broadcastContainer","body","bio","tags","views","email","address","website","phoneNumber","externalLinks","isLargeScreen","hasExternalLinks","filter","value","document","getElementById","imageContainer","contains","style","bottom","right","top","appendChild","DetailPageTitle","caption","subtitle","formatInfoPageAddress","VideoIconButton","VideoForm","FollowButton","ArtistButtons","Broadcast","InfoExpandingText","ArtistBands","DetailPageSection","icon","GlobeIcon","Content","WebsiteLink","MailIcon","isMailLink","PhoneIcon","LinksList","Tags","margin","cardsContainer","progressContainer","saveLinks","addTracksToArtist","removeSpotifyTracksFromArtist","getArtistTracks","makeGetArtistTracks","_artist$attributes","_artist$attributes$li","selectArtistLinks","tracks","stateLinks","appleMusicLink","apple","dispatch","useDispatch","fetchMoreTracks","appleMusicArtistID","split","reverse","show","ckordTracks","convertAppleMusicTracksToCkordFormat","payload","console","log","useFetchLikesOfType","DetailPageTabButtonContainer","GroupedButton","tip","Boolean","CardListMobile","cards","fetchMoreItems","CardList","DetailPageTabMessage","ThreeDotProgress","position","fullWidth","TrackForm","addPerformancesToArtist","addNearbyPerformancesToArtist","getArtistPerformances","makeGetArtistPerformances","getNearbyArtistPerformances","makeGetNearbyArtistPerformances","performances","nearbyPerformances","lng","location","lat","isLessThanMediumScreen","down","isLessThanLargeScreen","fetchMorePerformances","time","dateToUTC","startOfToday","nearby","NearbyContent","performance","PerformanceCard","PerformanceItemContainer","PerformanceForm","LeavePerformance","performer","imagesContainer","images","Images","canDelete","ImageForm","emptyContainer","card","addRelationToX","getArtistProducts","makeGetArtistProducts","products","isOpen","setIsOpen","fetchMoreProducts","CardListMobileGrid","ProductForm","merchantId","merchantType","incrementViewCount","withRouter","_state$user","_state$user$attribute","large","externalImageURL","isArtist","stripeId","jsonLdData","formatError","status","replace","ProductsTab","useMemo","MerchantAccountTab","ArtistProducts","SEO","process","description","concat","DetailPage","information","ArtistInfo","tab1","ArtistPerformances","tab1Label","TicketIcon","tab2","ArtistTracks","tab2Label","AlbumIcon","tab3","ArtistImages","tab3Label","ImageIcon","tab4","tab4Label","SellIcon","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","default","jsx","d"],"sourceRoot":""}