{"version":3,"sources":["containers/BrowseAllPage/Breadcrumb.js","containers/BrowseAllPage/index.js"],"names":["Breadcrumb","breadText","className","style","paddingRight","BrowseAllPage","props","componentId","requestManager","generateComponentId","loadData","bind","window","addEventListener","onSetAppliedFilters","location","query","onSetNotFiltered","this","onCancelRequestsByComponent","onUnregisterComponent","onReleaseTracksOwnership","prevProps","search","onClaimTracksOwnership","energy","vocal","sort","duration","styleFilters","page","onClearTracksState","shouldFetchTopTracks","onFetchTracks","onFetchAllTracks","onFetchAllCollections","Object","keys","length","includes","breadcrumb","id","rel","href","name","content","Browse","url","hero","React","Component","contextTypes","router","PropTypes","object","mapStateToProps","createStructuredSelector","connect","dispatch","fetchTracks","fetchAllTracks","fetchAllCollections","locationQuery","setAppliedFilters","onSetFiltered","setFiltered","setNotFiltered","onUnSetAppliedFilters","unSetAppliedFilters","cancelRequestsByComponent","clearTracksState","unregisterComponent","ownerId","ownerType","claimTracksOwnership","releaseTracksOwnership"],"mappings":"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","file":"static/js/23.chunk.js?hash=62f7ee9a","sourcesContent":["import React from 'react';\nimport { Link } from 'react-router';\n\nconst Breadcrumb = ({ breadText }) => (\n \n Browse Music\n \n \n);\n\nexport default Breadcrumb;\n","import React from \"react\";\nimport { connect } from \"react-redux\";\nimport Helmet from \"react-helmet\";\nimport { createStructuredSelector } from \"reselect\";\nimport {\n fetchTracks,\n fetchAllTracks,\n shouldFetchTopTracks,\n cancelRequestsByComponent,\n clearTracksState,\n unregisterComponent,\n claimTracksOwnership,\n releaseTracksOwnership,\n} from \"actions/trackAction\";\nimport requestManager from \"../../utils/requestManager\";\nimport { fetchAllCollections } from \"actions/collectionAction\";\nimport {\n setAppliedFilters,\n setNotFiltered,\n setFiltered,\n unSetAppliedFilters,\n} from \"actions/browseAction\";\nimport Browse from \"containers/Browse\";\nimport Breadcrumb from \"./Breadcrumb\";\nimport PropTypes from \"prop-types\";\n\nclass BrowseAllPage extends React.Component {\n constructor(props) {\n super(props);\n this.componentId = requestManager.generateComponentId();\n this.loadData = this.loadData.bind(this);\n }\n componentDidMount() {\n window.addEventListener(\n \"popstate\",\n () => {\n this.props.onSetAppliedFilters(this.props.location.query);\n this.props.onSetNotFiltered();\n },\n false\n );\n }\n componentWillUnmount() {\n const { onSetAppliedFilters } = this.props;\n onSetAppliedFilters();\n this.props.onCancelRequestsByComponent(this.componentId);\n this.props.onUnregisterComponent(this.componentId);\n this.props.onReleaseTracksOwnership(this.componentId);\n }\n componentDidUpdate(prevProps) {\n if (\n this.props.location.search !== prevProps.location.search &&\n this.props.location.search === \"\"\n ) {\n this.loadData(0, 0, \"Relevance\", 0, [], 1);\n }\n }\n\n componentWillMount() {\n this.props.onSetAppliedFilters(this.props.location.query);\n this.props.onClaimTracksOwnership(this.componentId, \"browse-page\");\n }\n loadData(energy, vocal, sort, duration, styleFilters, page) {\n // Cancel any in-flight browse requests before starting new ones (handles rapid filter changes)\n this.props.onCancelRequestsByComponent(this.componentId);\n\n // Clear tracks state to show loading indicator and prevent race conditions\n // This ensures old filtered results don't remain visible while new ones load\n this.props.onClearTracksState();\n\n if (\n shouldFetchTopTracks(energy, vocal, sort, duration, styleFilters, page)\n ) {\n this.props.onFetchTracks(\n energy,\n vocal,\n sort,\n duration,\n styleFilters,\n page,\n this.componentId\n );\n } else {\n this.props.onFetchAllTracks(\n energy,\n vocal,\n sort,\n duration,\n styleFilters,\n page,\n this.componentId\n );\n }\n this.props.onFetchAllCollections(energy, vocal, sort, styleFilters, page);\n }\n\n render() {\n const hero = null;\n let breadText = \"No filters applied\";\n if (Object.keys(this.props.location.query).length > 1) {\n breadText = null;\n } else if (\n Object.keys(this.props.location.query).length == 1 &&\n !Object.keys(this.props.location.query).includes(\"page\")\n ) {\n breadText = null;\n }\n\n const breadcrumb = ;\n return (\n \n \n \n \n Browse All Music • Music Licensing For Video & Film • Music Vine\n \n \n \n Browse and License Music for Film, TV & Video
\n \n \n );\n }\n}\n\nBrowseAllPage.contextTypes = {\n router: PropTypes.object,\n};\n\nBrowseAllPage.propTypes = {\n params: PropTypes.object,\n};\n\nconst mapDispatchToProps = (dispatch) => ({\n onFetchTracks: (\n energy,\n vocal,\n sort,\n duration,\n styleFilters,\n page,\n componentId\n ) => {\n dispatch(\n fetchTracks(\n \"all\",\n 0,\n energy,\n vocal,\n sort,\n duration,\n styleFilters,\n page,\n -1,\n componentId\n )\n );\n },\n onFetchAllTracks: (\n energy,\n vocal,\n sort,\n duration,\n styleFilters,\n page,\n componentId\n ) => {\n dispatch(\n fetchAllTracks(\n \"all\",\n 0,\n energy,\n vocal,\n sort,\n duration,\n styleFilters,\n page,\n [],\n -1,\n true,\n componentId\n )\n );\n },\n onFetchAllCollections: (energy, vocal, sort, styleFilters, page) => {\n dispatch(fetchAllCollections(energy, vocal, sort, styleFilters, page));\n },\n onSetAppliedFilters: (locationQuery) => {\n dispatch(setAppliedFilters(locationQuery));\n },\n onSetFiltered: () => {\n dispatch(setFiltered());\n },\n onSetNotFiltered: () => {\n dispatch(setNotFiltered());\n },\n onUnSetAppliedFilters: () => {\n dispatch(unSetAppliedFilters());\n },\n onCancelRequestsByComponent: (componentId) => {\n dispatch(cancelRequestsByComponent(componentId));\n },\n onClearTracksState: () => {\n dispatch(clearTracksState());\n },\n onUnregisterComponent: (componentId) => {\n dispatch(unregisterComponent(componentId));\n },\n onClaimTracksOwnership: (ownerId, ownerType) => {\n dispatch(claimTracksOwnership(ownerId, ownerType));\n },\n onReleaseTracksOwnership: (ownerId) => {\n dispatch(releaseTracksOwnership(ownerId));\n },\n});\n\nconst mapStateToProps = createStructuredSelector({});\n\n// Wrap the component to inject dispatch and state into it\nexport default connect(mapStateToProps, mapDispatchToProps)(BrowseAllPage);\n"],"sourceRoot":""}