PageSourceSearch

https://seekertracker.com/_next/static/chunks/59795125d667193b.js

js seekertracker.com collected 2026-10-02 00:56:00 UTC 16,807 bytes, 1 lines download raw bytes

1(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,30187,e=>{e.v({backButton:"shared-module__omp0ma__backButton"})},78579,e=>{"use strict";var a=e.i(43476),t=e.i(22016),l=e.i(30187);e.s(["default",0,()=>(0,a.jsx)("div",{className:l.default.backButton,children:(0,a.jsx)(t.default,{href:"/",children:"← Home"})})])},65397,e=>{e.v({active:"page-module__uyC1xW__active",appCard:"page-module__uyC1xW__appCard",appCardRemoved:"page-module__uyC1xW__appCardRemoved",appCount:"page-module__uyC1xW__appCount",appGrid:"page-module__uyC1xW__appGrid",appIcon:"page-module__uyC1xW__appIcon",appInfo:"page-module__uyC1xW__appInfo",appMeta:"page-module__uyC1xW__appMeta",appName:"page-module__uyC1xW__appName",catalog:"page-module__uyC1xW__catalog",categoryBtn:"page-module__uyC1xW__categoryBtn",categoryFilter:"page-module__uyC1xW__categoryFilter",categorySection:"page-module__uyC1xW__categorySection",description:"page-module__uyC1xW__description",descriptionText:"page-module__uyC1xW__descriptionText",detailLabel:"page-module__uyC1xW__detailLabel",detailLink:"page-module__uyC1xW__detailLink",detailValue:"page-module__uyC1xW__detailValue",error:"page-module__uyC1xW__error",errorIcon:"page-module__uyC1xW__errorIcon",favoriteBtn:"page-module__uyC1xW__favoriteBtn",favorited:"page-module__uyC1xW__favorited",favoritesBtn:"page-module__uyC1xW__favoritesBtn",header:"page-module__uyC1xW__header",headerActions:"page-module__uyC1xW__headerActions",loading:"page-module__uyC1xW__loading",main:"page-module__uyC1xW__main",maintainBtn:"page-module__uyC1xW__maintainBtn",maintainBtnModal:"page-module__uyC1xW__maintainBtnModal",maintainSub:"page-module__uyC1xW__maintainSub",modal:"page-module__uyC1xW__modal",modalClose:"page-module__uyC1xW__modalClose",modalDescription:"page-module__uyC1xW__modalDescription",modalDetail:"page-module__uyC1xW__modalDetail",modalDetails:"page-module__uyC1xW__modalDetails",modalHeader:"page-module__uyC1xW__modalHeader",modalIcon:"page-module__uyC1xW__modalIcon",modalOverlay:"page-module__uyC1xW__modalOverlay",modalPublisher:"page-module__uyC1xW__modalPublisher",modalRating:"page-module__uyC1xW__modalRating",modalSectionTitle:"page-module__uyC1xW__modalSectionTitle",modalSubtitle:"page-module__uyC1xW__modalSubtitle",modalTitle:"page-module__uyC1xW__modalTitle",modalTitleArea:"page-module__uyC1xW__modalTitleArea",modalWhatsNew:"page-module__uyC1xW__modalWhatsNew",noResults:"page-module__uyC1xW__noResults",ownerBlurb:"page-module__uyC1xW__ownerBlurb",ownerLink:"page-module__uyC1xW__ownerLink",ownerLinks:"page-module__uyC1xW__ownerLinks",placeholderIcon:"page-module__uyC1xW__placeholderIcon",publisher:"page-module__uyC1xW__publisher",rating:"page-module__uyC1xW__rating",ratingValue:"page-module__uyC1xW__ratingValue",removedBadge:"page-module__uyC1xW__removedBadge",retryBtn:"page-module__uyC1xW__retryBtn",searchAndSort:"page-module__uyC1xW__searchAndSort",searchBar:"page-module__uyC1xW__searchBar",searchInput:"page-module__uyC1xW__searchInput",searchResults:"page-module__uyC1xW__searchResults",sectionTitle:"page-module__uyC1xW__sectionTitle",shareBtn:"page-module__uyC1xW__shareBtn",shareBtnCopied:"page-module__uyC1xW__shareBtnCopied",shareButtons:"page-module__uyC1xW__shareButtons",shareSection:"page-module__uyC1xW__shareSection",sheetHandle:"page-module__uyC1xW__sheetHandle",sheetUp:"page-module__uyC1xW__sheetUp",shimmer:"page-module__uyC1xW__shimmer",showMoreBtn:"page-module__uyC1xW__showMoreBtn",skeletonCard:"page-module__uyC1xW__skeletonCard",skeletonGrid:"page-module__uyC1xW__skeletonGrid",skeletonIcon:"page-module__uyC1xW__skeletonIcon",skeletonLine:"page-module__uyC1xW__skeletonLine",skeletonLineShort:"page-module__uyC1xW__skeletonLineShort",skeletonLines:"page-module__uyC1xW__skeletonLines",sortControl:"page-module__uyC1xW__sortControl",sortLabel:"page-module__uyC1xW__sortLabel",sortSelect:"page-module__uyC1xW__sortSelect",spin:"page-module__uyC1xW__spin",spinner:"page-module__uyC1xW__spinner",star:"page-module__uyC1xW__star",starEmpty:"page-module__uyC1xW__starEmpty",starHalf:"page-module__uyC1xW__starHalf",subtitle:"page-module__uyC1xW__subtitle",title:"page-module__uyC1xW__title",totalCount:"page-module__uyC1xW__totalCount",totalLabel:"page-module__uyC1xW__totalLabel",totalNumber:"page-module__uyC1xW__totalNumber",updatedBadge:"page-module__uyC1xW__updatedBadge",whatsNewText:"page-module__uyC1xW__whatsNewText"})},65045,e=>{"use strict";var a=e.i(43476),t=e.i(71645),l=e.i(18566),s=e.i(22016),d=e.i(65397),o=e.i(57688),r=e.i(78579);let u=[{value:"updated-desc",label:"Recently Updated"},{value:"rating-desc",label:"Highest Rated"},{value:"name-asc",label:"Name (A-Z)"},{value:"updated-asc",label:"Oldest Updated"},{value:"category",label:"By Category"}],n=()=>{let e=(0,l.useRouter)(),n=(0,l.useSearchParams)(),[i,c]=(0,t.useState)([]),[p,_]=(0,t.useState)(!0),[m,g]=(0,t.useState)(null),[h,x]=(0,t.useState)(n.get("category")),[f,y]=(0,t.useState)(new Set),[C,v]=(0,t.useState)(""),[N,j]=(0,t.useState)(new Set),[W,S]=(0,t.useState)("favorites"===n.get("view")),[b,k]=(0,t.useState)("updated-desc"),w=n.get("status")||"active",[B,R]=(0,t.useState)("removed"===w||"all"===w?w:"active"),[L,A]=(0,t.useState)(null),[$,I]=(0,t.useState)(null),T=(0,t.useCallback)(e=>{let a=(e.data?.explore?.units?.edges||[]).filter(e=>"DAppsByCategoryUnit"===e.node.__typename).map(e=>e.node);
1if(0===a.length||(e.totalApps??0)===0)throw Error("dApp catalog returned empty — try again in a moment");c(a),g(null),"number"==typeof e.activeCount&&A(e.activeCount),"number"==typeof e.removedCount&&I(e.removedCount);try{"active"===(e.statusFilter||"active")&&sessionStorage.setItem("dappstore-catalog-v1",JSON.stringify({ts:Date.now(),totalApps:e.totalApps,activeCount:e.activeCount,removedCount:e.removedCount,data:e.data}))}catch{}},[]),M=(0,t.useCallback)(async e=>{let a=e?.status??B;try{e?.soft||(_(!0),g(null));let t=new URLSearchParams;a&&"active"!==a&&t.set("status",a);let l=`/api/dappstore${t.toString()?`?${t}`:""}`,s=await fetch(l,{cache:e?.soft?"no-cache":"default"}),d=await s.json();if(!s.ok||d.error)throw Error(d.detail||d.error||`Catalog failed (${s.status})`);T({...d,statusFilter:a})}catch(a){e?.soft||g(a instanceof Error?a.message:"Failed to fetch apps")}finally{_(!1)}},[T,B]);(0,t.useEffect)(()=>{if("active"!==B)return void M({status:B});try{let e=sessionStorage.getItem("dappstore-catalog-v1");if(e){let a=JSON.parse(e);if(a?.ts&&Date.now()-a.ts<216e5&&a.data){T({...a,statusFilter:"active"}),_(!1),M({soft:!0,status:"active"});return}}}catch{}M({status:"active"})},[B]),(0,t.useEffect)(()=>{let e=localStorage.getItem("dappstore-favorites");e&&j(new Set(JSON.parse(e)))},[]);let P=(0,t.useCallback)(a=>{x(a),S(!1),a?e.push(`/dapps?category=${encodeURIComponent(a)}`,{scroll:!1}):e.push("/dapps",{scroll:!1})},[e]),O=(0,t.useMemo)(()=>{let e=new Set;return i.forEach(a=>
1{a.dApps.edges.forEach(a=>{e.add(a.node.androidPackage)})}),e.size},[i]),D=(0,t.useCallback)((e,a)=>"category"===a?e:[...e].sort((e,t)=>{switch(a){case"updated-desc":{let a=e.lastRelease?.updatedOn?new Date(e.lastRelease.updatedOn).getTime():0;return(t.lastRelease?.updatedOn?new Date(t.lastRelease.updatedOn).getTime():0)-a}case"updated-asc":return(e.lastRelease?.updatedOn?new Date(e.lastRelease.updatedOn).getTime():0)-(t.lastRelease?.updatedOn?new Date(t.lastRelease.updatedOn).getTime():0);case"rating-desc":{let a=e.rating?.rating??0;return(t.rating?.rating??0)-a}case"name-asc":{let a=e.lastRelease?.displayName?.toLowerCase()??"",l=t.lastRelease?.displayName?.toLowerCase()??"";return a.localeCompare(l)}default:return 0}}),[]),E=(0,t.useMemo)(()=>{let e=new Map;return i.forEach(a=>{a.dApps.edges.forEach(a=>{e.has(a.node.androidPackage)||e.set(a.node.androidPackage,a.node)})}),Array.from(e.values())},[i]),F=(0,t.useMemo)(()=>D(E,b),[E,b,D]),U=(0,t.useMemo)(()=>{if(!C.trim())return[];let e=C.toLowerCase();return F.filter(a=>{let t=a.lastRelease?.displayName?.toLowerCase()||"",l=a.lastRelease?.publisherDetails?.name?.toLowerCase()||"",s=a.lastRelease?.subtitle?.toLowerCase()||"",d=a.androidPackage.toLowerCase();return t.includes(e)||l.includes(e)||s.includes(e)||d.includes(e)})},[F,C]),G=({app:e})=>{let t,l,r=e.lastRelease;if(!r)return null;let u=N.has(e.androidPackage),n="removed"===e.status,i=`/dapps/${encodeURIComponent(e.androidPackage)}`;return(0,a.jsxs)(s.default,{href:i,className:`${d.default.appCard} ${n?d.default.appCardRemoved:""}`,children:[(0,a.jsx)("button",{type:"button",className:`${d.default.favoriteBtn} ${u?d.default.favorited:""}`,onClick:a=>{var t;return t=e.androidPackage,void(a.preventDefault(),a.stopPropagation(),j(e=>{let a=new Set(e);return a.has(t)?a.delete(t):a.add(t),localStorage.setItem("dappstore-favorites",JSON.stringify([...a])),a}))},title:u?"Remove from favorites":"Add to favorites",children:u?"★":"☆"}),(0,a.jsx)("div",{className:d.default.appIcon,children:r.icon?.uri?(0,a.jsx)(o.default,{src:r.icon.uri,alt:r.displayName,width:64,height:64,unoptimized:!0}):(0,a.jsx)("div",{className:d.default.placeholderIcon,children:r.displayName.charAt(0).toUpperCase()})}),(0,a.jsxs)("div",{className:d.default.appInfo,children:[(0,a.jsxs)("h3",{className:d.default.appName,children:[r.displayName,n&&(0,a.jsx)("span",{className:d.default.removedBadge,children:"Removed"})]}),r.subtitle&&(0,a.jsx)("span",{className:d.default.subtitle,children:r.subtitle}),(0,a.jsxs)("div",{className:d.default.appMeta,children:[e.rating?.rating&&(0,a.jsxs)("div",{className:d.default.rating,children:[(e=>{let t=Math.floor(e),l=[];for(let e=0;e<t;e++)l.push((0,a.jsx)("span",{className:d.default.star,children:"★"},`full-${e}`));e-t>=.5&&l.push((0,a.jsx)("span",{className:d.default.starHalf,children:"★"},"half"));for(let e=l.length;e<5;e++)l.push((0,a.jsx)("span",{className:d.default.starEmpty,children:"★"},`empty-${e}`));return l})(e.rating.rating),(0,a.jsx)("span",{className:d.default.ratingValue,children:e.rating.rating.toFixed(1)})]}),r.updatedOn&&(0,a.jsx)("span",{className:d.default.updatedBadge,children:(t=new Date(r.updatedOn),0===(l=Math.floor((new Date().getTime()-t.getTime())/864e5))?"Today":1===l?"Yesterday":l<7?`${l}d ago`:l<30?`${Math.floor(l/7)}w ago`:l<365?`${Math.floor(l/30)}mo ago`:`${Math.floor(l/365)}y ago`)})]})]})]})},H=(0,t.useMemo)(()=>W?F.filter(e=>N.has(e.androidPackage)):[],[F,N,W]),V=h?i.filter(e=>e.category.name===h):i;return m&&!i.length?(0,a.jsxs)("div",{className:d.default.main,children:[(0,a.jsx)(r.default,{}),(0,a.jsxs)("div",{className:d.default.error,children:[(0,a.jsx)("span",{className:d.default.errorIcon,children:"!"}),(0,a.jsx)("span",{children:m}),(0,a.jsx)("button",{onClick:()=>void M(),className:d.default.retryBtn,children:"Retry"})]})]}):(0,a.jsxs)("div",{className:d.default.main,children:[(0,a.jsx)(r.default,{}),(0,a.jsxs)("div",{className:d.default.header,children:[(0,a.jsx)("h1",{className:d.default.title,children:"Seeker dApp Store"}),(0,a.jsx)("p",{className:d.default.description,children:"Apps for Solana Seeker — browse, favorite, and open each dApp page."}),(0,a.jsxs)("div",{className:d.default.headerActions,children:[(0,a.jsx)("a",{href:"/dapps/manage",className:d.default.maintainBtn,children:"Maintain your listing"}),(0,a.jsx)("span",{className:d.default.maintainSub,children:"Publishers: claim with your store support email"})]}),(0,a.jsxs)("div",{className:d.default.totalCount,children:[(0,a.jsx)("span",{className:d.default.totalNumber,children:p&&!O?"—":O}),(0,a.jsx)("span",{className:d.default.totalLabel,children:"removed"===B?"Removed apps":"all"===B?"All apps":"Active apps"})]})]}),p&&0===i.length?(0,a.jsx)("div",{className:d.default.skeletonGrid,"aria-busy":"true","aria-label":"Loading apps",children:Array.from({length:12}).map((e,t)=>(0,a.jsxs)("div",{className:d.default.skeletonCard,children:[(0,a.jsx)("div",{className:d.default.skeletonIcon}),(0,a.jsxs)("div",{className:d.default.skeletonLines,children:[(0,a.jsx)("div",{className:d.default.skeletonLine}),(0,a.jsx)("div",{className:`${d.default.skeletonLine} ${d.default.skeletonLineShort}`})]})]},t))}):(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("div",{className:d.default.searchAndSort,children:[(0,a.jsx)("div",{className:d.default.searchBar,children:(0,a.jsx)("input",{type:"text",placeholder:"Filter apps...",value:C,onChange:e=>v(e.target.value),className:d.default.searchInput})}),(0,a.jsxs)("div",{className:d.default.sortControl,children:[(0,a.jsx)("label",{className:d.default.sortLabel,children:"Status:"}),(0,a.jsxs)("select",{value:B,onChange:a=>{var t;let l;return R(t=a.target.value),S(!1),x(null),l=new URLSearchParams,void("active"!==t&&l.set("status",t),e.push(l.toString()?`/dapps?${l}`:"/dapps",{scroll:!1}))},className:d.default.sortSelect,"aria-label":"App status filter",children:[(0,a.jsxs)("option",{value:"active",children:["Active",null!=L?` (${L})`:""]}),(0,a.jsxs)("option",{value:"removed",children:["Removed",null!=$?` (${$})`:""]}),(0,a.jsx)("option",{value:"all",children:"All"})]})]}),(0,a.jsxs)("div",{className:d.default.sortControl,children:[(0,a.jsx)("label",{className:d.default.sortLabel,children:"Sort:"}),(0,a.jsx)("select",{value:b,onChange:e=>k(e.target.value),className:d.default.sortSelect,children:u.map(e=>(0,a.jsx)("option",{value:e.value,children:e.label},e.value))})]})]}),(0,a.jsxs)("div",{className:d.default.categoryFilter,children:[(0,a.jsx)("button",{className:`${d.default.categoryBtn}
1 ${!h&&!W?d.default.active:""}`,onClick:()=>P(null),children:"All"}),(0,a.jsxs)("button",{className:`${d.default.categoryBtn} ${d.default.favoritesBtn} ${W?d.default.active:""}`,onClick:()=>{S(!W),x(null),e.push(W?"/dapps":"/dapps?view=favorites",{scroll:!1})},children:["★"," Favorites (",N.size,")"]}),i.map(e=>(0,a.jsxs)("button",{className:`${d.default.categoryBtn} ${h===e.category.name?d.default.active:""}`,onClick:()=>P(e.category.name),children:[e.category.name," (",e.dApps.edges.length,")"]},e.category.id))]}),W?(0,a.jsxs)("div",{className:d.default.searchResults,children:[(0,a.jsxs)("h2",{className:d.default.sectionTitle,children:["Your Favorites",(0,a.jsxs)("span",{className:d.default.appCount,children:["(",H.length," apps)"]})]}),H.length>0?(0,a.jsx)("div",{className:d.default.appGrid,children:H.map(e=>(0,a.jsx)(G,{app:e},e.androidPackage))}):(0,a.jsx)("div",{className:d.default.noResults,children:"No favorites yet. Click the star on any app to add it!"})]}):C.trim()?(0,a.jsxs)("div",{className:d.default.searchResults,children:[(0,a.jsxs)("h2",{className:d.default.sectionTitle,children:['Results for "',C,'"',(0,a.jsxs)("span",{className:d.default.appCount,children:["(",U.length," apps)"]})]}),U.length>0?(0,a.jsx)("div",{className:d.default.appGrid,children:U.map(e=>(0,a.jsx)(G,{app:e},e.androidPackage))}):(0,a.jsx)("div",{className:d.default.noResults,children:"No apps found"})]}):"category"!==b?(0,a.jsxs)("div",{className:d.default.searchResults,children:[(0,a.jsxs)("h2",{className:d.default.sectionTitle,children:["All Apps",(0,a.jsxs)("span",{className:d.default.appCount,children:["(",F.length," apps, sorted by ",u.find(e=>e.value===b)?.label,")"]})]}),(0,a.jsx)("div",{className:d.default.appGrid,children:F.map(e=>(0,a.jsx)(G,{app:e},e.androidPackage))})]}):(0,a.jsx)("div",{className:d.default.catalog,children:V.map(e=>{let t=f.has(e.category.id),l=e.dApps.edges,s=t?l:l.slice(0,6),o=l.length>6;return(0,a.jsxs)("div",{className:d.default.categorySection,children:[(0,a.jsxs)("h2",{className:d.default.sectionTitle,children:[e.category.name,(0,a.jsxs)("span",{className:d.default.appCount,children:["(",l.length," apps)"]})]}),(0,a.jsx)("div",{className:d.default.appGrid,children:s.map(e=>(0,a.jsx)(G,{app:e.node},e.node.androidPackage))}),o&&(0,a.jsx)("button",{className:d.default.showMoreBtn,onClick:()=>{var a;return a=e.category.id,void y(e=>{let t=new Set(e);return t.has(a)?t.delete(a):t.add(a),t})},children:t?"Show Less":`Show ${l.length-6} More`})]},e.category.id)})})]})]})};e.s(["default",0,()=>(0,a.jsx)(t.Suspense,{fallback:(0,a.jsxs)("div",{className:d.default.main,children:[(0,a.jsx)(r.default,{}),(0,a.jsxs)("div",{className:d.default.header,children:[(0,a.jsx)("h1",{className:d.default.title,children:"Seeker dApp Store"}),(0,a.jsx)("p",{className:d.default.description,children:"Apps for Solana Seeker"})]}),(0,a.jsx)("div",{className:d.default.skeletonGrid,"aria-busy":"true",children:Array.from({length:8}).map((e,t)=>(0,a.jsxs)("div",{className:d.default.skeletonCard,children:[(0,a.jsx)("div",{className:d.default.skeletonIcon}),(0,a.jsxs)("div",{className:d.default.skeletonLines,children:[(0,a.jsx)("div",{className:d.default.skeletonLine}),(0,a.jsx)("div",{className:`${d.default.skeletonLine} ${d.default.skeletonLineShort}`})]})]},t))})]}),children:(0,a.jsx)(n,{})})])}]);

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.