1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[406],{30406:(e,t,n)=>{"use strict";n.d(t,{default:()=>v});var i=n(95155),s=n(65913),a=n.n(s),l=n(12115),r=n(34495),o=n(47291),c=n(11278),d=n(96962),u=n(5506);function h(e){let{isHome:t=!1,selectedCategory:n="",searchQuery:s="",jobType:a="",isWorldwide:h,pageKeyword:m="",location:v="",salaryOnly:p,homepageListings:x=null,initialJobs:g=null,currentPage:j=1}=e,f=x||g||[],y=f.length>0?j-1:0,[b,w]=(0,l.useState)(f),[C,N]=(0,l.useState)(y),[_,k]=(0,l.useState)(0===f.length),[S,E]=(0,l.useState)(null),[F,A]=(0,l.useState)(!1),D=(0,l.useRef)(!0),H=(0,l.useRef)(!1),I=(0,l.useRef)(!0),J=(0,l.useRef)(0);(0,l.useEffect)(()=>{!0===t&&x&&(w(x),k(!1))},[x]);let L=(0,d.U)(),R=async function(e){let{force:t=!1}=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},i=void 0!==e?e:C;if(H.current&&!t)return;let l=++J.current;H.current=!0,i>y&&A(!0);let r=20*i,o=L.from("jobs").select("*, companies(*)").eq("is_draft",!1).order("is_sticky",{ascending:!1}).order("live_at",{ascending:!1}).range(r,r+20-1);if(""!==m&&(o=o.ilike("title","%".concat(m,"%"))),""!==n){let e=n.split(",").map(e=>e.trim());if(e.length>1){let t=e.map(e=>"title.ilike.%".concat(e,"%"));o=o.or(t.join(","))}else o=o.ilike("title","%".concat(n,"%"))}""!==a&&(o=o.eq("type",a)),""!==v&&(o=o.ilike("location","%".concat(v,"%"))),!0===h&&(o=o.eq("is_worldwide",!0)),""!==s&&(o=o.ilike("title","%".concat(s,"%"))),!0===p&&(o=o.gt("salary_min",0));let{data:c,error:d}=await o;if(l!==J.current)return;if(H.current=!1,d){console.error("Error fetching jobs:",d.message),I.current=!1,E(d),k(!1),A(!1);return}let u=c||[];I.current=20===u.length,E(null),0===i?w(u):w(e=>[...e,...u]),k(!1),A(!1)},T=()=>{I.current=!0,E(null),0===b.length&&k(!0),R(void 0,{force:!0})};return((0,l.useEffect)(()=>{if(!t){let e=""!==n||""!==a||""!==s||""!==v||!0===h;I.current=!0,e?(w([]),N(0),R(0,{force:!0})):f.length>0?(J.current+=1,H.current=!1,w(f),N(y),E(null),A(!1),k(!1)):(w([]),N(0),R(0,{force:!0}))}},[n,a,h,s,v]),(0,l.useEffect)(()=>{if(t)return;let e=()=>{!H.current&&I.current&&window.innerHeight+document.documentElement.scrollTop>=document.documentElement.offsetHeight-900&&(H.current=!0,N(e=>e+1))};return window.addEventListener("scroll",e,{passive:!0}),()=>window.removeEventListener("scroll",e)},[t]),(0,l.useEffect)(()=>{if(D.current){D.current=!1;return}!t&&C>y&&R(void 0,{force:!0})},[C]),_)?(0,i.jsxs)("div",{style:{display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",gap:"12px",width:"100%"},children:["Fetching jobs",(0,i.jsx)(u.A,{})]}):S&&0===b.length?(0,i.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",gap:"12px",width:"100%"},children:[(0,i.jsx)("p",{className:"text-tertiary-white",children:"Couldn't load jobs right now."}),(0,i.jsx)("button",{className:"secondary-button btn-sm",onClick:T,children:"Try again"})]}):0===b.length?(0,i.jsx)("div",{style:{display:"flex",flexDirection:"row",justifyContent:"center",alignItems:"center",gap:"12px",width:"100%"},children:"No jobs found"}):(0,i.jsxs)("div",{children:[(()=>{let e=[];return b.forEach((n,s)=>{e.push((0,i.jsx)(r.A,{job:n,isHome:t},"job-".concat(s)));let a=(0,c.nn)(s);a&&e.push((0,i.jsx)(o.A,{sponsor:a},"ad-".concat(s)))}),e})(),F&&(0,i.jsx)(u.A,{fullWidth:!0}),S&&!F&&(0,i.jsxs)("div",{style:{display:"flex",flexDirection:"column",justifyContent:"center",alignItems:"center",gap:"12px",width:"100%",padding:"24px 0"},children:[(0,i.jsx)("p",{className:"text-tertiary-white",children:"Couldn't load more jobs."}),(0,i.jsx)("button",{className:"secondary-button btn-sm",onClick:T,children:"Try again"})]})]})}var m=n(59634);function v(e){let{hideCategoryFilter:t=!1,hideSearchBar:n=!1,h1:s,oneLiner:r,type:o="",category:c="",pageKeyword:d="",isRemoteOnly:u,location:v,salaryOnly:p=!1,initialJobs:x=null,currentPage:g=1}=e,[j,f]=(0,l.useState)(u),[y,b]=(0,l.useState)(c),[w,C]=(0,l.useState)(""),[N,_]=(0,l.useState)(o),k=e=>{y===e?b(""):b(e)};return(0,i.jsxs)("div",{children:[(0,i.jsx)("div",{className:a().outerContainer,children:(0,i.jsxs)("div",{className:a().innerContainer,children:[(0,i.jsxs)("div",{className:a().heading,children:[(0,i.jsx)("h1",{className:"smaller-h1",children:s}),(0,i.jsx)("p",{className:"text-tertiary-white",children:r})]}),(0,i.jsxs)("div",{className:a().searchAndFilterContainer,children:[!n&&(0,i.jsxs)("div",{className:a().searchContainer,children:[(0,i.jsx)("img",{src:"/assets/icons-white-tertiary/search.svg",alt:"Search",width:"16px",height:"16px",loading:"lazy"}),(0,i.jsx)("input",{className:"blankinput",type:"text",placeholder:"Search for jobs",value:w,onChange:e=>C(e.target.value)})]}),!t&&(0,i.jsx)("div",{className:a().filterContainer,children:["Frontend","Backend","Full Stack","Blockchain","Solidity","Rust","Defi","Engineer","Smart Contract","NFT","Design","Sales & Marketing","Product","Customer Support","InfoSec","Management & Finance","No-Code","DevOps","Crypto","Solana","Ethereum","Community Manager","Writer","Non-Tech"].map((e,t)=>(0,i.jsx)("button",{className:"filter-button ".concat(y===e?"active-filter-button":""),onClick:()=>k(e),children:e},t))})]})]})}),(0,i.jsxs)("div",{className:"job-listings",children:[(0,i.jsx)(m.A,{}),(0,i.jsx)(h,{isHome:!1,selectedCategory:y,searchQuery:w,jobType:N,isWorldwide:j,pageKeyword:d,location:v,salaryOnly:p,initialJobs:x,currentPage:g})]})]})}},34495:(e,t,n)=>{"use strict";n.d(t,{A:()=>u});var i=n(95155),s=n(12115),a=n(87875),l=n.n(a),r=n(6874),o=n.n(r),c=n(29344),d=n(40742);function u(e){var t,n,a,r,u;let{job:h,isHome:m}
1=e,[v,p]=(0,s.useState)(!1),x=(null==h?void 0:h.plan)===5?"var(--primary-main)":(null==h?void 0:h.plan)===3?null==h?void 0:h.brand_color:"",g=(0,d.fw)((null==h?void 0:h.live_at)||(null==h?void 0:h.created_at)),j=(0,d.fw)(null==h?void 0:h.live_at);return(0,i.jsxs)(o(),{href:"/remote-jobs/".concat(h.slug),prefetch:!1,className:l().jobListItem,onMouseEnter:()=>p(!0),onMouseLeave:()=>p(!1),target:"_blank",style:{backgroundColor:x},children:[(0,i.jsxs)("div",{className:l().leftContainer,children:[(0,i.jsx)("div",{className:l().logoContainer,children:(null==h?void 0:h.plan)===4?(0,i.jsx)("div",{className:l().textIcon,children:(0,i.jsx)("span",{children:(null==h?void 0:null===(n=h.companies)||void 0===n?void 0:null===(t=n.name)||void 0===t?void 0:t.charAt(0))||"?"})}):(0,i.jsx)("img",{className:l().logoIcon,width:40,height:40,alt:"web3 company - ".concat(null==h?void 0:null===(a=h.companies)||void 0===a?void 0:a.name," logo"),src:(null==h?void 0:null===(r=h.companies)||void 0===r?void 0:r.logo)||"https://ojpncdvueyetebptprsv.supabase.co/storage/v1/object/public/assets//company_placeholder.webp",loading:"lazy"})}),(0,i.jsxs)("div",{className:l().contentContainer,children:[(0,i.jsx)("p",{className:"body-small text-tertiary-white",children:null==h?void 0:null===(u=h.companies)||void 0===u?void 0:u.name}),(0,i.jsx)("h2",{className:l().jobTitle,children:null==h?void 0:h.title}),(0,i.jsxs)("div",{className:l().extraInfo,children:[(0,i.jsxs)("div",{className:l().infoContainer,children:[(0,i.jsx)("img",{className:l().iconsLight,width:12,height:12,alt:"jobtype",src:"/assets/icons-white/jobtype.svg",loading:"lazy"}),(0,i.jsx)("p",{children:null==h?void 0:h.type})]}),(0,i.jsxs)("div",{className:l().infoContainer,children:[(0,i.jsx)("img",{className:l().iconsLight,width:12,height:12,alt:"map",src:"/assets/icons-white/map.svg",loading:"lazy"}),(0,i.jsx)("p",{children:(null==h?void 0:h.location)||"Worldwide"})]}),(null==h?void 0:h.salary_min)&&(null==h?void 0:h.salary_min)>0?(0,i.jsxs)("div",{className:l().infoContainer,children:[(0,i.jsx)("img",{className:l().iconsLight,width:12,height:12,alt:"salary",src:"/assets/icons-white/salary.svg",loading:"lazy"}),(0,i.jsxs)("p",{children:["USD ",(null==h?void 0:h.salary_min)/1e3,"k ",(null==h?void 0:h.salary_max)&&"- ".concat((null==h?void 0:h.salary_max)/1e3,"k")," per year"]})]}):(0,i.jsx)(i.Fragment,{}),m&&(0,i.jsxs)("div",{className:l().infoContainer,children:[(0,i.jsx)("img",{className:l().iconsLight,width:12,height:12,alt:"avatar",src:"/assets/avatar.jpeg",style:{borderRadius:"50%"},loading:"lazy"}),(0,i.jsxs)("p",{children:[null==h?void 0:h.applicant_count," Applicants, ",null==h?void 0:h.page_views," Views"]})]})]})]})]}),(0,i.jsxs)("div",{className:l().rightContainer,children:[!v&&m&&(0,i.jsx)("p",{className:"text-tertiary-white",children:j&&j>=new Date(Date.now()-2592e6)?(0,c.m)(j,{addSuffix:!0}):"Featured"}),!v&&!m&&(0,i.jsx)("p",{className:"text-tertiary-white",children:g?(0,c.m)(g,{addSuffix:!0}):"Recently"}),v&&(0,i.jsx)("button",{className:"secondary-button btn-sm",children:"View Job â"})]})]})}},65913:e=>{e.exports={outerContainer:"JobsHero_outerContainer__BVpcG",innerContainer:"JobsHero_innerContainer__OS5p5",heading:"JobsHero_heading__mkLFO",searchAndFilterContainer:"JobsHero_searchAndFilterContainer__niFvr",searchContainer:"JobsHero_searchContainer__74vbE",filterContainer:"JobsHero_filterContainer__JPX20"}}}]);
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.