Update script.js
This commit is contained in:
parent
7d5d2bf30b
commit
fd071eb4a3
1 changed files with 37 additions and 20 deletions
|
|
@ -6577,18 +6577,23 @@ function handleAlbumSearch(event) {
|
||||||
async function performArtistSearch(query) {
|
async function performArtistSearch(query) {
|
||||||
try {
|
try {
|
||||||
showLoadingCards('artist-manual-results', 'Searching artists...');
|
showLoadingCards('artist-manual-results', 'Searching artists...');
|
||||||
|
|
||||||
|
const requestBody = {
|
||||||
|
query: query,
|
||||||
|
context: 'artist'
|
||||||
|
};
|
||||||
|
console.log('Manual search request:', requestBody);
|
||||||
|
|
||||||
const response = await fetch('/api/match/search', {
|
const response = await fetch('/api/match/search', {
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: { 'Content-Type': 'application/json' },
|
headers: { 'Content-Type': 'application/json' },
|
||||||
body: JSON.stringify({
|
body: JSON.stringify(requestBody)
|
||||||
query: query,
|
|
||||||
context: 'artist'
|
|
||||||
})
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const data = await response.json();
|
const data = await response.json();
|
||||||
|
console.log('Manual search response:', data);
|
||||||
if (data.results) {
|
if (data.results) {
|
||||||
|
console.log('Results array:', data.results);
|
||||||
renderArtistSearchResults(data.results);
|
renderArtistSearchResults(data.results);
|
||||||
} else {
|
} else {
|
||||||
showNoResultsMessage('artist-manual-results', 'No artists found');
|
showNoResultsMessage('artist-manual-results', 'No artists found');
|
||||||
|
|
@ -6631,9 +6636,21 @@ function renderArtistSearchResults(results) {
|
||||||
const container = document.getElementById('artist-manual-results');
|
const container = document.getElementById('artist-manual-results');
|
||||||
container.innerHTML = '';
|
container.innerHTML = '';
|
||||||
|
|
||||||
results.forEach(result => {
|
results.forEach((result, index) => {
|
||||||
const card = createArtistCard(result.artist, result.confidence);
|
console.log(`Manual search result ${index}:`, result);
|
||||||
container.appendChild(card);
|
console.log(` result.artist:`, result.artist);
|
||||||
|
console.log(` result.confidence:`, result.confidence);
|
||||||
|
try {
|
||||||
|
const card = createArtistCard(result.artist, result.confidence);
|
||||||
|
console.log(`createArtistCard returned:`, card, typeof card, card instanceof Element);
|
||||||
|
if (card && card instanceof Element) {
|
||||||
|
container.appendChild(card);
|
||||||
|
} else {
|
||||||
|
console.error(`Invalid card returned for result ${index}:`, card);
|
||||||
|
}
|
||||||
|
} catch (error) {
|
||||||
|
console.error(`Error calling createArtistCard for result ${index}:`, error);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -10085,11 +10102,11 @@ function displayArtistsResults(query, results) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create artist cards
|
// Create artist cards
|
||||||
container.innerHTML = results.map(result => createArtistCard(result)).join('');
|
container.innerHTML = results.map(result => createArtistCardHTML(result)).join('');
|
||||||
|
|
||||||
// Add event listeners to cards
|
// Add event listeners to cards
|
||||||
container.querySelectorAll('.artist-card').forEach((card, index) => {
|
container.querySelectorAll('.artist-card').forEach((card, index) => {
|
||||||
card.addEventListener('click', () => selectArtist(results[index]));
|
card.addEventListener('click', () => selectArtistForDetail(results[index]));
|
||||||
|
|
||||||
// Extract colors from artist image for dynamic glow
|
// Extract colors from artist image for dynamic glow
|
||||||
const artist = results[index];
|
const artist = results[index];
|
||||||
|
|
@ -10115,7 +10132,7 @@ function displayArtistsResults(query, results) {
|
||||||
/**
|
/**
|
||||||
* Create HTML for an artist card
|
* Create HTML for an artist card
|
||||||
*/
|
*/
|
||||||
function createArtistCard(artist) {
|
function createArtistCardHTML(artist) {
|
||||||
const imageUrl = artist.image_url || '';
|
const imageUrl = artist.image_url || '';
|
||||||
const genres = artist.genres && artist.genres.length > 0 ?
|
const genres = artist.genres && artist.genres.length > 0 ?
|
||||||
artist.genres.slice(0, 3).join(', ') : 'Various genres';
|
artist.genres.slice(0, 3).join(', ') : 'Various genres';
|
||||||
|
|
@ -10154,19 +10171,19 @@ function createArtistCard(artist) {
|
||||||
/**
|
/**
|
||||||
* Select an artist and show their discography
|
* Select an artist and show their discography
|
||||||
*/
|
*/
|
||||||
async function selectArtist(artist) {
|
async function selectArtistForDetail(artist) {
|
||||||
console.log(`🎤 Selected artist: ${artist.name}`);
|
console.log(`🎤 Selected artist: ${artist.name}`);
|
||||||
|
|
||||||
// Update state
|
// Update state
|
||||||
artistsPageState.selectedArtist = artist;
|
artistsPageState.selectedArtist = artist;
|
||||||
artistsPageState.currentView = 'detail';
|
artistsPageState.currentView = 'detail';
|
||||||
|
|
||||||
// Show detail state
|
// Show detail state
|
||||||
showArtistDetailState();
|
showArtistDetailState();
|
||||||
|
|
||||||
// Update artist info in header
|
// Update artist info in header
|
||||||
updateArtistDetailHeader(artist);
|
updateArtistDetailHeader(artist);
|
||||||
|
|
||||||
// Load discography
|
// Load discography
|
||||||
await loadArtistDiscography(artist.id);
|
await loadArtistDiscography(artist.id);
|
||||||
}
|
}
|
||||||
|
|
@ -10240,7 +10257,7 @@ function displayArtistDiscography(discography) {
|
||||||
const albumsContainer = document.getElementById('album-cards-container');
|
const albumsContainer = document.getElementById('album-cards-container');
|
||||||
if (albumsContainer) {
|
if (albumsContainer) {
|
||||||
if (discography.albums?.length > 0) {
|
if (discography.albums?.length > 0) {
|
||||||
albumsContainer.innerHTML = discography.albums.map(album => createAlbumCard(album)).join('');
|
albumsContainer.innerHTML = discography.albums.map(album => createAlbumCardHTML(album)).join('');
|
||||||
|
|
||||||
// Add dynamic glow effects and click handlers to album cards
|
// Add dynamic glow effects and click handlers to album cards
|
||||||
albumsContainer.querySelectorAll('.album-card').forEach((card, index) => {
|
albumsContainer.querySelectorAll('.album-card').forEach((card, index) => {
|
||||||
|
|
@ -10269,7 +10286,7 @@ function displayArtistDiscography(discography) {
|
||||||
const singlesContainer = document.getElementById('singles-cards-container');
|
const singlesContainer = document.getElementById('singles-cards-container');
|
||||||
if (singlesContainer) {
|
if (singlesContainer) {
|
||||||
if (discography.singles?.length > 0) {
|
if (discography.singles?.length > 0) {
|
||||||
singlesContainer.innerHTML = discography.singles.map(single => createAlbumCard(single)).join('');
|
singlesContainer.innerHTML = discography.singles.map(single => createAlbumCardHTML(single)).join('');
|
||||||
|
|
||||||
// Add dynamic glow effects and click handlers to singles cards
|
// Add dynamic glow effects and click handlers to singles cards
|
||||||
singlesContainer.querySelectorAll('.album-card').forEach((card, index) => {
|
singlesContainer.querySelectorAll('.album-card').forEach((card, index) => {
|
||||||
|
|
@ -10537,7 +10554,7 @@ function showCompletionError() {
|
||||||
/**
|
/**
|
||||||
* Create HTML for an album/single card
|
* Create HTML for an album/single card
|
||||||
*/
|
*/
|
||||||
function createAlbumCard(album) {
|
function createAlbumCardHTML(album) {
|
||||||
const imageUrl = album.image_url || '';
|
const imageUrl = album.image_url || '';
|
||||||
const year = album.release_date ? new Date(album.release_date).getFullYear() : '';
|
const year = album.release_date ? new Date(album.release_date).getFullYear() : '';
|
||||||
const type = album.album_type === 'album' ? 'Album' :
|
const type = album.album_type === 'album' ? 'Album' :
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue