PageSourceSearch

https://productiononline.com/assets/JobPage-x-ZGevXO.js

js productiononline.com collected 2026-09-29 13:48:57 UTC 11,959 bytes, 20 lines download raw bytes

1import{d as N,s as b,B as v,b2 as q,ai as P,m as B,b3 as C,r as F,j as e,N as L,ao as M,ap as f,b4 as j,O as o,b5 as y,Y as c,b6 as T,b7 as A,aR as D,b8 as E,b9 as z,L as R,S as l}from"./index-D4tGXnjJ.js";import{S as m}from"./separator-VYdMs2fY.js";import{B as u}from"./building-2-C40yyANG.js";import{C as J}from"./calendar-obemC26q.js";import{B as O}from"./bookmark-DVAsLyRT.js";import{S as U}from"./share-2-DPBmcPid.js";const w=`
2  id,
3  public_id,
4  title,
5  description,
6  location,
7  job_type,
8  remote,
9  category,
10  salary_min,
11  salary_max,
12  salary_currency,
13  requirements,
14  created_at,
15  companies(id, name, logo, verified)
16`;function k(a){var i,r,t,d;return{id:a.id,public_id:a.public_id,title:a.title,description:a.description,location:a.location,type:a.job_type,remote:a.remote??!1,category:a.category,salary:{min:a.salary_min||0,max:a.salary_max||0,currency:a.salary_currency||"USD"},posted:q(new Date(a.created_at),{addSuffix:!0}),postedDate:new Date(a.created_at),requirements:a.requirements||[],company:{id:((i=a.companies)==null?void 0:i.id)||"",name:((r=a.companies)==null?void 0:r.name)||"Unknown",logo:((t=a.companies)==null?void 0:t.logo)||null,verified:((d=a.companies)==null?void 0:d.verified)??!1}}}function Y(a){return N({queryKey:["job",a],queryFn:async()=>{if(!a)return null;const{data:i,error:r}=await b.from("jobs").select(w).eq("id",a).maybeSingle();if(r)throw r;return i?k(i):null},enabled:!!a})}function H(a){return N({queryKey:["job-by-public-id",a],queryFn:async()=>{if(!a)return null;const{data:i,error:r}=await b.from("jobs").select(w).eq("public_id",a).maybeSingle();if(r)throw r;return i?k(i):null},enabled:!!a&&!v(a)})}const I=()=>{const{id:a}=P(),i=B(),r=v(a||""),{data:t}=Y(r?a:void 0),{data:d,isLoading:S,error:_}=H(r?void 0:a),s=r?t:d,$=r?!t&&!!a:S,{data:x}=C(s==null?void 0:s.category);if(F.useEffect(()=>{},[s==null?void 0:s.id]),r&&(t!=null&&t.public_id))return e.jsx(L,{to:`/job/${t.public_id}`,replace:!0});if($)return e.jsx(M,{activeSection:"find-work",children:e.jsx(K,{})});if(_||!s)return e.jsx(f,{activeSection:"find-work",fallbackPath:"/find-work",children:e.jsx("div",{className:"flex items-center justify-center min-h-[60vh]",children:e.jsxs("div",{className:"text-center",children:[e.jsx(j,{className:"h-16 w-16 mx-auto text-muted-foreground mb-4"}),e.jsx("h1",{className:"text-2xl font-bold text-foreground mb-2",children:"Job not found"}),e.jsx("p",{className:"text-muted-foreground mb-6",children:"This job posting may have been removed or is no longer available."}),e.jsx(o,{onClick:()=>i("/find-work"),children:"Browse all jobs"})]})})});const p=s.type==="Freelance"||s.type==="Contract",h=(x==null?void 0:x.filter(n=>n.id!==s.id).slice(0,4))||[],g=()=>s.salary.min===0&&s.salary.max===0?"Competitive":p?`$${s.salary.min} - $${s.salary.max}/hr`:`$${s.salary.min.toLocaleString()} - $${s.salary.max.toLocaleString()}/yr`;return e.jsx(f,{activeSection:"find-work",fallbackPath:"/find-work",className:"pt-6",children:e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 items-start",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4 animate-fade-up",style:{animationFillMode:"forwards"},children:[e.jsxs("div",{className:"flex items-start gap-4",children:[s.company.logo?e.jsx("img",{src:s.company.logo,alt:s.company.name,className:"h-16 w-16 rounded-xl object-cover bg-muted"}):e.jsx("div",{className:"h-16 w-16 rounded-xl bg-primary/10 flex items-center justify-center",children:e.jsx(u,{className:"h-8 w-8 text-primary"})}),e.jsxs("div",{className:"flex-1",children:[e.jsxs("div",{className:"flex items-center gap-2 mb-1",children:[e.jsx("span",{className:"text-muted-foreground",children:s.company.name}),s.company.verified&&e.jsx(y,{className:"h-4 w-4 text-primary fill-primary/20"})]}),e.jsx("h1",{className:"text-2xl md:text-3xl font-bold text-foreground leading-tight",children:s.title})]})]}),e.jsxs("div",{className:"flex flex-wrap items-center gap-2",children:[e.jsxs(c,{variant:"secondary",className:"gap-1.5 py-1.5",children:[e.jsx(T,{className:"h-3.5 w-3.5"}),s.remote?"Remote":s.location||"On-site"]}),e.jsxs(c,{variant:"secondary",className:"gap-1.5 py-1.5",children:[e.jsx(j,{className:"h-3.5 w-3.5"}),s.type]}),e.jsxs(c,{variant:"secondary",className:"gap-1.5 py-1.5",children:[e.jsx(J,{className:"h-3.5 w-3.5"}),"Posted ",s.posted]}),e.jsx(c,{className:"bg-primary/10 text-primary border-primary/20 capitalize",children:s.category})]})]}),e.jsx(m,{}),e.jsxs("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3 animate-fade-up stagger-1",style:{animationFillMode:"forwards"},children:[e.jsxs("div",{className:"bg-card border border-border rounded-xl p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[e.jsx(A,{className:"h-4 w-4"}),e.jsx("span",{className:"text-sm",children:"Salary"})]}),e.jsx("p",{className:"font-semibold text-foreground",children:g()})]}),e.jsxs("div",{className:"bg-card border border-border rounded-xl p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[e.jsx(D,{className:"h-4 w-4"}),e.jsx("span",{className:"text-sm",children:"Type"})]}),e.jsx("p",{className:"font-semibold text-foreground",children:p?"Hourly":"Fixed"})]}),e.jsxs("div",{className:"bg-card border border-border rounded-xl p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[e.jsx(E,{className:"h-4 w-4"}),e.jsx("span",{className:"text-sm",children:"Experience"})]}),e.jsx("p",{className:"font-semibold text-foreground",children:"Intermediate"})]}),e.jsxs("div",{className:"bg-card border border-border rounded-xl p-4",children:[e.jsxs("div",{className:"flex items-center gap-2 text-muted-foreground mb-1",children:[e.jsx(z,{className:"h-4 w-4"}),e.jsx("span",{className:"text-sm",children:"Applicants"})]}),e.jsx("p",{className:"font-semibold text-foreground",children:"10-20"})]})]}),e.jsx(m,{}),e.jsxs("div",{className:"space-y-4 animate-fade-up stagger-2",style:{animationFillMode:"forwards"},children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground",children:"About this role"}),e.jsx("div",{className:"prose prose-sm dark:prose-invert max-w-none",children:e.jsx("p",{className:"text-muted-foreground leading-relaxed whitespace-pre-wrap",children:s.description||`We are looking for a talented ${s.title} to join our team at ${s.company.name}. This is an exciting opportunity to work on creative projects in the ${s.category} space.
17
18This role offers a unique chance to contribute to high-quality productions while collaborating with industry professionals. You'll be working on a variety of projects that challenge and expand your skills.
19
20The ideal candidate will have a passion for ${s.category} production and a proven track record of delivering exceptional work. You should be comfortable working both independently and as part of a team, with excellent communication skills and attention to detail.`})})]}),e.jsx(m,{}),e.jsxs("div",{className:"space-y-4 animate-fade-up stagger-3",style:{animationFillMode:"forwards"},children:[e.jsx("h2",{className:"text-xl font-semibold text-foreground",children:"Skills & Requirements"}),e.jsx("div",{className:"flex flex-wrap gap-2",children:(s.requirements.length>0?s.requirements:["Audio Production","Sound Design","Pro Tools","Logic Pro","Mixing","Mastering"]).map(n=>e.jsx(c,{variant:"secondary",className:"rounded-full px-4 py-1.5 text-sm",children:n},n))})]}),e.jsx(m,{}),e.jsxs("div",{className:"space-y-4 animate-fade-up stagger-4",style:{animationFillMode:"forwards"},children:[e.jsxs("h2",{className:"text-xl font-semibold text-foreground",children:["About ",s.company.name]}),e.jsxs("div",{className:"bg-card border border-border rounded-xl p-6",children:[e.jsxs("div",{className:"flex items-start gap-4 mb-4",children:[s.company.logo?e.jsx("img",{src:s.company.logo,alt:s.company.name,className:"h-12 w-12 rounded-lg object-cover bg-muted"}):e.jsx("div",{className:"h-12 w-12 rounded-lg bg-primary/10 flex items-center justify-center",children:e.jsx(u,{className:"h-6 w-6 text-primary"})}),e.jsx("div",{children:e.jsxs("div",{className:"flex items-center gap-2",children:[e.jsx("h3",{className:"font-semibold text-foreground",children:s.company.name}),s.company.verified&&e.jsx(y,{className:"h-4 w-4 text-primary fill-primary/20"})]})})]}),e.jsx("p",{className:"text-muted-foreground text-sm leading-relaxed",children:`${s.company.name} is a leading company in the creative industry, known for delivering high-quality ${s.category} productions. We work with talented professionals to create exceptional content for our clients.`})]})]})]}),e.jsxs("div",{className:"lg:sticky lg:top-24 space-y-6 lg:pl-4",children:[e.jsx("div",{className:"bg-card border border-border rounded-xl p-6 animate-fade-up",style:{animationFillMode:"forwards"},children:e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"text-center",children:[e.jsx("p",{className:"text-2xl font-bold text-foreground",children:g()}),e.jsx("p",{className:"text-sm text-muted-foreground",children:p?"per hour":"per year"})]}),e.jsx(o,{className:"w-full",size:"lg",children:"Apply Now"}),e.jsxs(o,{variant:"outline",className:"w-full",size:"lg",children:[e.jsx(O,{className:"h-4 w-4 mr-2"}),"Save Job"]}),e.jsx("div",{className:"flex gap-2",children:e.jsxs(o,{variant:"secondary",className:"flex-1",size:"sm",children:[e.jsx(U,{className:"h-4 w-4 mr-2"}),"Share"]})}),e.jsx("p",{className:"text-xs text-center text-muted-foreground",children:"By applying, you agree to our Terms of Service"})]})}),h.length>0&&e.jsxs("div",{className:"bg-card border border-border rounded-xl p-6 animate-fade-up stagger-1",style:{animationFillMode:"forwards"},children:[e.jsx("h3",{className:"font-semibold text-foreground mb-4",children:"Similar Jobs"}),e.jsx("div",{className:"space-y-4",children:h.map(n=>e.jsx(R,{to:`/job/${n.public_id||n.id}`,className:"block group",children:e.jsxs("div",{className:"flex items-start gap-3",children:[n.company.logo?e.jsx("img",{src:n.company.logo,alt:n.company.name,className:"h-10 w-10 rounded-lg object-cover bg-muted"}):e.jsx("div",{className:"h-10 w-10 rounded-lg bg-primary/10 flex items-center justify-center",children:e.jsx(u,{className:"h-5 w-5 text-primary"})}),e.jsxs("div",{className:"flex-1 min-w-0",children:[e.jsx("p",{className:"font-medium text-foreground group-hover:text-primary transition-colors line-clamp-1",children:n.title}),e.jsx("p",{className:"text-sm text-muted-foreground line-clamp-1",children:n.company.name})]})]})},n.id))}),e.jsx(o,{variant:"ghost",className:"w-full mt-4",onClick:()=>i("/find-work"),children:"View all jobs"})]})]})]})})},K=()=>e.jsxs("div",{className:"grid grid-cols-1 lg:grid-cols-2 gap-6 items-start",children:[e.jsxs("div",{className:"space-y-6",children:[e.jsxs("div",{className:"space-y-4",children:[e.jsxs("div",{className:"flex items-start gap-4",children:[e.jsx(l,{className:"h-16 w-16 rounded-xl"}),e.jsxs("div",{className:"flex-1 space-y-2",children:[e.jsx(l,{className:"h-4 w-32"}),e.jsx(l,{className:"h-8 w-3/4"})]})]}),e.jsxs("div",{className:"flex gap-2",children:[e.jsx(l,{className:"h-7 w-24 rounded-full"}),e.jsx(l,{className:"h-7 w-24 rounded-full"}),e.jsx(l,{className:"h-7 w-32 rounded-full"})]})]}),e.jsx(l,{className:"h-px w-full"}),e.jsx("div",{className:"grid grid-cols-2 md:grid-cols-4 gap-3",children:Array.from({length:4}).map((a,i)=>e.jsx(l,{className:"h-20 rounded-xl"},i))}),e.jsx(l,{className:"h-px w-full"}),e.jsxs("div",{className:"space-y-4",children:[e.jsx(l,{className:"h-6 w-40"}),e.jsx(l,{className:"h-32 w-full"})]})]}),e.jsx("div",{className:"lg:pl-4 space-y-6",children:e.jsxs("div",{className:"bg-card border border-border rounded-xl p-6 space-y-4",children:[e.jsx(l,{className:"h-8 w-full"}),e.jsx(l,{className:"h-12 w-full rounded-lg"}),e.jsx(l,{className:"h-12 w-full rounded-lg"})]})})]});
20export{I 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.