PageSourceSearch

https://career-launchpad-futureyes.replit.app/assets/FollowUpCoachPage-dHTIxfKH.js

js career-launchpad-futureyes.replit.app collected 2026-10-03 03:50:30 UTC 10,407 bytes, 6 lines download raw bytes

1import{f as P,h as M,r as p,c as I,j as e,C as i,i as r,k as n,q as C,g as o,L as E,e as R}from"./index-CmblPHEx.js";import{u as U,P as L}from"./seo-CWvEKupB.js";import{H as G}from"./Header-BpeNO_Xm.js";import{F as B}from"./Footer-C0oGYG8m.js";import{P as z}from"./Paywall-BJBEkwro.js";import{B as l}from"./button-Cuds4r5M.js";import{T as A}from"./textarea-CV3khEdv.js";import{I as Y}from"./input-CV3W26yd.js";import{S as H,a as O,b as V,c as _,d as j}from"./select-BUKgV4HC.js";import{B as q}from"./badge-BMhe7-z1.js";import{S as D}from"./separator-Boa-ZR4_.js";import{P as J}from"./progress-BKpByJ20.js";import{m as t}from"./proxy-BecgI9R_.js";import{S as k}from"./sparkles-BXi46Nbg.js";import{L as S}from"./lightbulb-CmgHhc9d.js";import{B as $}from"./briefcase-CvLPMLBw.js";import{U as K}from"./users-DUP-Iv3z.js";import{M as g}from"./mail-BeFJU52G.js";import{R as Q}from"./refresh-cw-CHgYNIP1.js";import{A as W}from"./index-DzE2VlPx.js";import{C as c}from"./circle-check-BGP72OHo.js";import{S as X}from"./send-CEHbNjjT.js";import"./MFJ Logo Transparent 500x500_1761174039806-GqdhoJga.js";import"./dialog-ARfEL6po.js";import"./index-BK6mZd2d.js";import"./links-DPaWIeah.js";import"./check-BBMEiR7p.js";import"./search-tKnOiw6J.js";import"./graduation-cap-Ceal_dkM.js";import"./trending-up-CVcTC8lf.js";import"./use-entitlements-CFu6EvR-.js";import"./heart-DF_Md2uc.js";import"./crown-DqfNpIsw.js";import"./lock-Bzd3vfzF.js";import"./arrow-right-C5sIVFx9.js";import"./index-BLwFO-gh.js";import"./index-DQ3r_pjq.js";import"./chevron-down-zXaRMH82.js";import"./chevron-up-BoKbVqrn.js";/**
2 * @license lucide-react v0.453.0 - ISC
3 *
4 * This source code is licensed under the ISC license.
5 * See the LICENSE file in the root directory of this source tree.
6 */const T=P("Copy",[["rect",{width:"14",height:"14",x:"8",y:"8",rx:"2",ry:"2",key:"17jyea"}],["path",{d:"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2",key:"zix9uf"}]]),Z=[{name:"Post-Interview Thank You",icon:$,recipient:"Ms. Johnson",context:"Thank you for the interview yesterday for the Retail Associate position at Target. I enjoyed learning about the team culture and customer service approach.",tone:"professional"},{name:"Networking Follow-Up",icon:K,recipient:"Mr. Thompson",context:"Following up after meeting at the career fair. I'm interested in learning more about internship opportunities at your company.",tone:"friendly"},{name:"Informational Interview",icon:g,recipient:"Sarah",context:"Thank you for taking time to discuss your career path in graphic design. Your insights about freelancing were very helpful.",tone:"professional"}];function Ae(){U(L.followUp);const{toast:m}=M(),[x,f]=p.useState(""),[h,y]=p.useState(""),[N,b]=p.useState("professional"),[a,u]=p.useState(null),F=s=>{f(s.recipient),y(s.context),b(s.tone),u(null),m({title:"Example loaded!",description:`Try generating a ${s.name.toLowerCase()} message.`})},d=I({mutationFn:async()=>await(await R("POST","/api/ai/follow-up",{recipientName:x,context:h,tone:N})).json(),onSuccess:s=>{u(s),m({title:"Follow-up generated!",description:"Your message is ready"})},onError:()=>{m({title:"Generation failed",description:"Please try again",variant:"destructive"})}}),w=s=>{navigator.clipboard.writeText(s),m({title:"Copied!",description:"Message copied to clipboard"})};return e.jsx(e.Fragment,{children:e.jsxs("div",{className:"min-h-screen flex flex-col bg-background",children:[e.jsx(G,{}),e.jsx(z,{product:"ai_pack_monthly",children:e.jsxs("main",{className:"flex-1 container mx-auto p-6 max-w-4xl",children:[e.jsxs(t.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},className:"mb-8 text-center",children:[e.jsxs("div",{className:"flex items-center justify-center gap-2 mb-3",children:[e.jsx(k,{className:"h-8 w-8 text-primary"}),e.jsx("h1",{className:"text-4xl font-bold","data-testid":"text-page-title",children:"Follow-Up Coach"})]}),e.jsx("p",{className:"text-muted-foreground text-lg","data-testid":"text-page-description",children:"Generate professional thank-you and follow-up messages that leave a lasting impression"})]}),!a&&e.jsxs(i,{className:"mb-6",children:[e.jsxs(r,{children:[e.jsxs(n,{className:"flex items-center gap-2",children:[e.jsx(S,{className:"h-5 w-5"}),"Try an Example"]}),e.jsx(C,{children:"Load a sample scenario to see how the coach works"})]}),e.jsx(o,{children:e.jsx("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-3",children:Z.map((s,v)=>e.jsxs(l,{variant:"outline",className:"h-auto py-4 flex flex-col items-center gap-2",onClick:()=>F(s),"data-testid":`button-example-${v}`,children:[e.jsx(s.icon,{className:"h-6 w-6 text-primary"}),e.jsx("span",{className:"font-medium text-center",children:s.name})]},v))})})]}),e.jsxs(i,{className:"mb-6",children:[e.jsxs(r,{children:[e.jsxs(n,{className:"flex items-center gap-2",children:[e.jsx(g,{className:"h-5 w-5"}),"Compose Your Follow-Up"]}),e.jsx(C,{children:"Fill in the details to generate a personalized message"})]}),e.jsxs(o,{className:"space-y-5",children:[e.jsxs("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-4",children:[e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Recipient Name *"}),e.jsx(Y,{placeholder:"e.g., Ms. Sarah Johnson",value:x,onChange:s=>
6f(s.target.value),"data-testid":"input-recipient"})]}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Message Tone *"}),e.jsxs(H,{value:N,onValueChange:s=>b(s),children:[e.jsx(O,{"data-testid":"select-tone",children:e.jsx(V,{})}),e.jsxs(_,{children:[e.jsx(j,{value:"formal","data-testid":"option-formal",children:"Formal"}),e.jsx(j,{value:"professional","data-testid":"option-professional",children:"Professional"}),e.jsx(j,{value:"friendly","data-testid":"option-friendly",children:"Friendly"})]})]})]})]}),e.jsx(D,{}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("label",{className:"text-sm font-medium",children:"Context & Details *"}),e.jsx(A,{placeholder:"e.g., Thank you for the interview yesterday for the Retail Associate position at Target. I appreciated learning about the team culture and your customer-first approach.",value:h,onChange:s=>y(s.target.value),className:"min-h-[120px]","data-testid":"textarea-context"}),e.jsx("p",{className:"text-xs text-muted-foreground",children:"Include the position, company, what you discussed, and why you're following up"})]}),d.isPending&&e.jsxs(t.div,{initial:{opacity:0,height:0},animate:{opacity:1,height:"auto"},className:"space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between text-sm",children:[e.jsx("span",{className:"text-muted-foreground",children:"Crafting your message..."}),e.jsx("span",{className:"font-medium",children:"Generating"})]}),e.jsx(J,{value:60,className:"h-2"})]}),e.jsxs("div",{className:"flex gap-3",children:[e.jsx(l,{onClick:()=>d.mutate(),disabled:!x||!h||d.isPending,className:"flex-1",size:"lg","data-testid":"button-generate",children:d.isPending?e.jsxs(e.Fragment,{children:[e.jsx(E,{className:"mr-2 h-4 w-4 animate-spin"}),"Generating..."]}):e.jsxs(e.Fragment,{children:[e.jsx(k,{className:"mr-2 h-4 w-4"}),"Generate Follow-Up"]})}),a&&e.jsxs(l,{variant:"outline",onClick:()=>u(null),"data-testid":"button-reset",children:[e.jsx(Q,{className:"h-4 w-4 mr-2"}),"New Message"]})]})]})]}),e.jsx(W,{mode:"wait",children:a&&e.jsxs(t.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},exit:{opacity:0,y:-20},transition:{duration:.4},className:"space-y-6",children:[e.jsx("div",{className:"flex items-center justify-center",children:e.jsxs(q,{variant:"default",className:"gap-2 px-4 py-2",children:[e.jsx(c,{className:"h-4 w-4"}),"Message Generated Successfully!"]})}),a.subject&&e.jsx(t.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.1},children:e.jsxs(i,{className:"bg-blue-50 dark:bg-blue-950/20 border-blue-200 dark:border-blue-900",children:[e.jsx(r,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(n,{className:"text-lg flex items-center gap-2",children:[e.jsx(g,{className:"h-5 w-5 text-blue-600 dark:text-blue-400"}),"Email Subject Line"]}),e.jsxs(l,{variant:"outline",size:"sm",onClick:()=>w(a.subject),"data-testid":"button-copy-subject",children:[e.jsx(T,{className:"h-4 w-4 mr-2"}),"Copy"]})]})}),e.jsx(o,{children:e.jsx("p",{className:"font-medium text-blue-900 dark:text-blue-100","data-testid":"text-subject",children:a.subject})})]})}),e.jsx(t.div,{initial:{opacity:0,x:-20},animate:{opacity:1,x:0},transition:{delay:.2},children:e.jsxs(i,{className:"bg-green-50 dark:bg-green-950/20 border-green-200 dark:border-green-900",children:[e.jsx(r,{children:e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs(n,{className:"text-lg flex items-center gap-2",children:[e.jsx(X,{className:"h-5 w-5 text-green-600 dark:text-green-400"}),"Your Follow-Up Message"]}),e.jsxs(l,{variant:"outline",size:"sm",onClick:()=>w(a.message),"data-testid":"button-copy-message",children:[e.jsx(T,{className:"h-4 w-4 mr-2"}),"Copy"]})]})}),e.jsx(o,{children:e.jsx("div",{className:"p-4 bg-background rounded-lg border",children:e.jsx("p",{className:"whitespace-pre-wrap","data-testid":"text-message",children:a.message})})})]})}),e.jsx(t.div,{initial:{opacity:0,y:20},animate:{opacity:1,y:0},transition:{delay:.3},children:e.jsxs(i,{className:"bg-primary/5 border-primary/20",children:[e.jsx(r,{children:e.jsxs(n,{className:"text-lg flex items-center gap-2",children:[e.jsx(S,{className:"h-5 w-5 text-primary"}),"Pro Tips for Follow-Ups"]})}),e.jsxs(o,{className:"space-y-2 text-sm",children:[e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(c,{className:"h-4 w-4 text-primary mt-0.5"}),e.jsx("span",{children:"Send within 24 hours while you're fresh in their mind"})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(c,{className:"h-4 w-4 text-primary mt-0.5"}),e.jsx("span",{children:"Reference something specific from your conversation"})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(c,{className:"h-4 w-4 text-primary mt-0.5"}),e.jsx("span",{children:"Keep it concise - 3-4 paragraphs maximum"})]}),e.jsxs("div",{className:"flex items-start gap-2",children:[e.jsx(c,{className:"h-4 w-4 text-primary mt-0.5"}),e.jsx("span",{children:"Proofread carefully before sending"})]})]})]})})]})})]})}),e.jsx(B,{})]})})}export{Ae 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.