diff --git a/js/ui.js b/js/ui.js
index bd9db3f..9238ea9 100644
--- a/js/ui.js
+++ b/js/ui.js
@@ -13,7 +13,9 @@ import {
calculateTotalDuration,
formatDuration,
escapeHtml,
+ decodeHtml,
getShareUrl,
+ createModal,
} from './utils.js';
import { openLyricsPanel, renderLyricsInFullscreen, clearFullscreenLyricsSync } from './lyrics.js';
import {
@@ -3853,11 +3855,69 @@ export class UIRenderer {
);
const data = await response.json();
- rateCriticsEl.innerHTML = `Critic Score: ${data.critic.score}, Based on ${data.critic.count} reviews`;
+ const critviews = data.critic.reviews || [];
+
+ rateCriticsEl.innerHTML = `Critic Score: ${data.critic.score}, Based on ${data.critic.count} reviews`;
if (data.critic.score == 'NR') {
rateCriticsEl.innerHTML = `Critic Score Not Available Yet`;
+ } else {
+ rateCriticsEl.querySelector('a').onclick = () => {
+ const con = document.createElement('div');
+ con.style.display = 'flex';
+ con.style.flexDirection = 'column';
+ con.style.gap = '1.5rem';
+
+ critviews.forEach((review) => {
+ const reviewdiv = document.createElement('div');
+ reviewdiv.style.display = 'flex';
+ reviewdiv.style.gap = '1rem';
+ reviewdiv.style.paddingBottom = '1rem';
+ reviewdiv.style.borderBottom = '1px solid var(--border)';
+
+ const publication = decodeHtml(review.publication || review.source || 'Unknown Publication');
+ const author = decodeHtml(review.author || '');
+ const quote = decodeHtml(review.text || review.quote || 'No review text available.');
+
+ reviewdiv.innerHTML = `
+
+