PageSourceSearch

https://tuforums.com/assets/SongDetailPage.rLP5s_tw.js

js tuforums.com collected 2026-09-24 14:19:46 UTC 7,771 bytes, 3 lines download raw bytes

1import{e as w,i as I,p as S,a as D,r as M,j as s,M as _,aA as v,ay as C,aC as L}from"./index.CHvzgvcl.js";import{l as P,f as T,d as A,r,L as j}from"./reactRouter.DIJDf_PU.js";import{e as U}from"./entityMeta.CMEoNSP9.js";import{E as $}from"./EditIcon.BSB6r8jE.js";import{G as F}from"./GalleryInspectPopup.DMfqFH-r.js";import{E as G}from"./EntityActionPopup.C0JZJfXq.js";/* empty css                    */import{L as R}from"./PackItem.DXk_6fjw.js";import"./packcard.T_3NoqAj.js";/* empty css                        *//* empty css                    */import{u as z}from"./i18n.CnDgzqyN.js";/* empty css                 */import"./VirtualList.DCRXcazd.js";import"./recharts.CxMvZdXo.js";import"./levelHelpers.BYSbvMPA.js";import"./passJudgementHitCount.6lv25sxp.js";/* empty css                            */import"./uploadErrors.DIApk8pO.js";import"./Select.BJwzSgTp.js";import"./verificationStates.BiHmABLJ.js";import"./dnd.esm.Do-29_X5.js";import"./raf-schd.esm.CDvC0Jt5.js";import"./DownloadIcon.xl02_ydg.js";import"./InfoIcon.BH7HNQoM.js";import"./DragHandleIcon.BzAgO2qs.js";import"./FolderIcon.BTWCrcOi.js";import"./SongSelectorPopup.B1W3JSsA.js";import"./WebAdofaiViewerButton.YS21dELn.js";import"./CreatorStatusBadge.BgCAPgPM.js";import"./MarkdownText.DEhTvKth.js";import"./ExternalLink.BFwDtqu2.js";import"./EditLevelPopup.BiZmxbWZ.js";import"./RefreshIcon.YrEax_qg.js";import"./GraphIcon.BXTh2Dp4.js";import"./ChartIcon.CqQQ2N87.js";import"./RatingInput.BHVPPBtm.js";import"./LevelUploadManagementPopup.YBqZ3Xgd.js";import"./levelselectionpopup.Ry92x97V.js";import"./LevelSelectionPopup.C0xgVe63.js";import"./communityTags.DGxF9Q0r.js";import"./ItemPickManager.yV7ESWm4.js";import"./TrashIcon.9QWXOPX8.js";import"./useUnsavedClose.DUjXRpwG.js";import"./useVideoLinkResolver.BxMIYacm.js";import"./resolveVideoUrl.BuIxAj10.js";/* empty css                          */import"./AdminLevelXaccCurvePopup.D8_ooAmJ.js";import"./XaccPassPickerJudgementStrip.Cvx7rgBH.js";import"./statFormatters.C7Ka2WWu.js";import"./AdminReasonPrompt.BNqVHkCc.js";/* empty css                          */import"./SearchHelpPopup.BauwkRI-.js";import"./PackIcon.4YDk4Dkf.js";import"./TimeIcon.Bxih_t9U.js";import"./LikeButton.D4JQgOKI.js";import"./LikeIcon.DcRXV9U0.js";import"./curationTypeUtils.Ipx0dvi2.js";import"./PlusIcon.MNK_yHzP.js";import"./SearchIcon.CkokJg3w.js";import"./ImageIcon.D0QVS0Zg.js";import"./ImageSelectorPopup.CFUINp4m.js";/* empty css                            */import"./TagConfidenceBar.DZnG3Jn_.js";import"./MarqueeText.BXTnF5Nc.js";import"./EyeIcon.BzOWTy_B.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};a.SENTRY_RELEASE={id:"9285efe8a8dce1f690960d89b06301901087e606"},a._sentryModuleMetadata=a._sentryModuleMetadata||{},a._sentryModuleMetadata[new a.Error().stack]=function(o){for(var n=1;n<arguments.length;n++){var e=arguments[n];if(e!=null)for(var c in e)e.hasOwnProperty(c)&&(o[c]=e[c])}return o}({},a._sentryModuleMetadata[new a.Error().stack],{"_sentryBundlerPluginAppKey:tuf-website":!0});var l=new a.Error().stack;l&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[l]="26fd0392-40cd-45b0-9141-eeb2680a5022",a._sentryDebugIdIdentifier="sentry-dbid-26fd0392-40cd-45b0-9141-eeb2680a5022")}catch{}})();const se=()=>{const{t:a}=z("pages"),{id:l}=P();T();const o=A(),{user:n}=w(),[e,c]=r.useState(null),[N,h]=r.useState(!0),[u,g]=r.useState(null),[k,m]=r.useState(!1),[y,p]=r.useState(!1),b=n&&I(n,S.SUPER_ADMIN);r.useEffect(()=>{x()},[l]);const f=r.useMemo(()=>e?U(e,a,{pathname:o.pathname}):null,[e,a,o.pathname]),x=async()=>{var i;try{h(!0);const t=await D.get(M.database.songs.byId(l));c(t.data)}catch(t){console.error("Error fetching song:",t),((i=t.response)==null?void 0:i.status)===404?g("notFound"):g("loadFailed")}finally{h(!1)}};return N?s.jsx("div",{className:"song-detail-page",children:s.jsx("div",{className:"loader-shell loader-shell--fill",children:s.jsx("div",{className:"loader loader-relative"})})}):u||!e?s.jsx("div",{className:"song-detail-page",children:s.jsxs("div",{className:"error-container",children:[s.jsx("h2",{children:a(`songDetail.errors.${u||"notFound"}`)}),s.jsx(j,{to:"/songs",className:"back-button",children:a("songDetail.backToList")})]})}):s.jsxs("div",{className:"song-detail-page",children:[f?s.jsx(_,{...f}):null,s.jsxs("div",{className:"song-detail-container page-content-1000",children:[s.jsx("div",{className:"song-header",children:s.jsxs("div",{className:"song-header-content",children:[s.jsxs("div",{className:"song-name-wrapper",children:[s.jsx("h1",{children:e.name}),b&&s.jsx($,{className:"edit-icon",size:32,onClick:()=>p(!0)})]}),s.jsxs("div",{className:"song-verification",children:[s.jsx("span",{className:v(e.verificationState),children:a(`verification.${e.verificationState}`,{ns:"common"})}),e.tufVerified&&s.jsx("span",{className:v("tuf_verified"),children:a("verification.tuf_verified",{ns:"common"})})]})]})}),s.jsxs("div",{className:"song-content",children:[e.aliases&&e.aliases.length>0&&s.jsxs("div",{className:"song-section",children:[s.jsx("h2",{children:a("songDetail.sections.aliases")}),s.jsx("div",{className:"aliases-list",children:e.aliases.map(i=>s.jsx("span",{className:"alias-tag",children:i.alias},i.id))})]}),e.links&&e.links.length>0&&s.jsxs("div",{className:"song-section",children:[s.jsx("h2",{children:a("songDetail.sections.links")}),s.jsx("div",{className:"links-list",children:e.links.map(i=>s.jsxs("a",{href:i.link,target:"_blank",rel:"noopener noreferrer",className:"link-item",children:[s.jsx("span",{className:"link-url",children:i.link}),s.jsx(C,{size:14,className:"link-icon"})]},i.id))})]}),e.credits&&e.credits.length>0&&s.jsxs("div",{className:"song-section",children:[s.jsx("h2",{children:a("songDetail.sections.artists")}),s.jsx("div",{className:"artists-list",children:e.credits.map(i=>{var t,d;return s.jsxs(j,{className:"artist-item",to:i.artist?`/artists/${i.artist.id}`:"#",onClick:E=>{i.artist||E.preventDefault()},children:[((t=i.artist)==null?void 0:t.avatarUrl)&&s.jsx("img",{src:i.artist.avatarUrl,alt:i.artist.name,className:"artist-avatar"}),s.jsxs("div",{className:"artist-info",children:[s.jsx("span",{className:"artist-name",children:((d=i.artist)==null?void 0:d.name)||"Unknown"}),i.role&&s.jsx("span",{className:"artist-role",children:i.role})]})]},i.id)})})]}),e.extraInfo&&s.jsxs("div",{className:"song-section",children:[s.jsx("h2",{children:a("songDetail.sections.extraInfo")}),s.jsx("div",{className:"extra-info-content",children:e.extraInfo})]}
1),e.evidences&&e.evidences.length>0&&s.jsxs("div",{className:"song-section",children:[s.jsx("h2",{children:a("songDetail.sections.evidence")}),s.jsxs("div",{className:"evidence-preview",children:[e.evidences.slice(0,4).map(i=>{const t=L(i.link),d=i.extraInfo?`${i.link}
2
3${i.extraInfo}`:i.link;return t?s.jsx("img",{src:i.link,alt:`Evidence ${i.id}`,className:"evidence-thumbnail",onClick:()=>m(!0),title:d},i.id):s.jsx("div",{className:"evidence-thumbnail evidence-link-thumbnail",onClick:()=>m(!0),title:d,children:s.jsx("span",{className:"evidence-link-icon",children:"🔗"})},i.id)}),e.evidences.length>4&&s.jsxs("div",{className:"evidence-more",onClick:()=>m(!0),children:["+",e.evidences.length-4]})]})]}),e.levels&&e.levels.length>0&&s.jsxs("div",{className:"song-section",children:[s.jsx("h2",{children:a("songDetail.sections.levels")}),s.jsx("div",{className:"levels-list",children:e.levels.map(i=>s.jsx(R,{level:i,user:n,displayMode:"normal",size:"medium",showTags:!0},i.id||i._id))})]})]})]}),k&&e.evidences&&s.jsx(F,{evidence:e.evidences,onClose:()=>m(!1),showTitleHeader:!0}),y&&e&&s.jsx(G,{song:e,onClose:()=>p(!1),onUpdate:()=>{p(!1),x()},type:"song"})]})};export{se as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.