PageSourceSearch

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

js tuforums.com collected 2026-10-02 00:57:37 UTC 7,841 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 _,aF as v,aD as C,aH as L}from"./index.C_jEAofg.js";import{l as P,f as T,d as A,r,L as j}from"./reactRouter.C6cvQAHO.js";import{e as F}from"./entityMeta.DRNc0NpJ.js";import{E as U}from"./EditIcon.C3zEPxhx.js";import{G as $}from"./GalleryInspectPopup.DbimMzjd.js";import{E as G}from"./EntityActionPopup.CtWc03mT.js";/* empty css                    */import{L as R}from"./PackItem.D5eL2g8B.js";import"./packcard.CmgWfOZs.js";/* empty css                        *//* empty css                    */import{u as z}from"./i18n.BxWiIRpk.js";/* empty css                 */import"./VirtualList.CE9jB2m0.js";import"./recharts.DzmhKP_O.js";import"./levelHelpers.CkOxyFNP.js";import"./passJudgementHitCount.Ccm5-J09.js";/* empty css                            */import"./uploadErrors.BuoBavFt.js";import"./Select.BO5et_f4.js";import"./verificationStates.C-65KJT3.js";import"./dnd.esm.Cdkn9E5v.js";import"./raf-schd.esm.Do3U_zjQ.js";import"./DownloadIcon.DjUIGIn8.js";import"./InfoIcon.D6E0BSOK.js";import"./DragHandleIcon.DD8FtFny.js";import"./FolderIcon.C9FyMAKL.js";import"./SongSelectorPopup.DKzLh1D3.js";import"./WebAdofaiViewerButton.B_YDorpM.js";import"./CreatorStatusBadge.BebQkP3q.js";import"./MarkdownText.L8wnX1BN.js";import"./ExternalLink.Dqxd3OTW.js";import"./EditLevelPopup.DRNO7Nwl.js";import"./RefreshIcon.C6h3Vb3d.js";import"./GraphIcon.CYoVe_gk.js";import"./ChartIcon.D6Na6YlP.js";import"./RatingInput.DaDmVNeA.js";import"./LevelUploadManagementPopup.D_Jm9B8a.js";import"./toastMessage.BnceMJYi.js";import"./levelselectionpopup.XTKS7ydm.js";import"./LevelSelectionPopup.BM_HqWse.js";import"./communityTags.D2n_4RPi.js";import"./ItemPickManager.ByW3m6Qa.js";import"./TrashIcon.BeVW0keM.js";import"./useUnsavedClose.DBVfPN3-.js";import"./useVideoLinkResolver.CRdJO4N2.js";import"./resolveVideoUrl.CQLZGZ0c.js";/* empty css                          */import"./AdminLevelXaccCurvePopup.CEc05nAv.js";import"./XaccPassPickerJudgementStrip.RmYhi90o.js";import"./statFormatters.D_f0oQsy.js";import"./AdminReasonPrompt.DCSPFRYl.js";/* empty css                          */import"./SearchHelpPopup.BSQYCqH7.js";import"./PackIcon.BLDIeBiY.js";import"./TimeIcon.C24S6xSS.js";import"./LikeButton.JOd7Q3w3.js";import"./LikeIcon.DMlP2VPj.js";import"./curationTypeUtils.UzM-6L0y.js";import"./PlusIcon.CBMb1dFY.js";import"./SearchIcon.qDkSL_MV.js";import"./ImageIcon.CKUsHZmQ.js";import"./ImageSelectorPopup.sFab1OF6.js";import"./packRefUtils.Ch95Re_b.js";/* empty css                            */import"./TagConfidenceBar.kbpMl9x7.js";import"./MarqueeText.C_DzVbgp.js";import"./EyeIcon.B3GYw7db.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:"aec9389561908f1f1b5366362ca3b629220ab900"},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]="838ba3f1-7061-4657-b593-b4814119450d",a._sentryDebugIdIdentifier="sentry-dbid-838ba3f1-7061-4657-b593-b4814119450d")}catch{}})();const ie=()=>{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),[b,d]=r.useState(!1),[k,p]=r.useState(!1),y=n&&I(n,S.SUPER_ADMIN);r.useEffect(()=>{x()},[l]);const f=r.useMemo(()=>e?F(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}),y&&s.jsx(U,{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,m;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:((m=i.artist)==null?void 0:m.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),m=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:()=>d(!0),title:m},i.id):s.jsx("div",{className:"evidence-thumbnail evidence-link-thumbnail",onClick:()=>d(!0),title:m,children:s.jsx("span",{className:"evidence-link-icon",children:"🔗"})},i.id)}),e.evidences.length>4&&s.jsxs("div",{className:"evidence-more",onClick:()=>d(!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))})]})]})]}),b&&e.evidences&&s.jsx($,{evidence:e.evidences,onClose:()=>d(!1),showTitleHeader:!0}),k&&e&&s.jsx(G,{song:e,onClose:()=>p(!1),onUpdate:()=>{p(!1),x()},type:"song"})]})};export{ie 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.