PageSourceSearch

https://salesskill.io/assets/RealtimePracticePage-Ckb0LOLI.js

js salesskill.io collected 2026-10-09 03:12:57 UTC 2,777 bytes, 1 lines download raw bytes

1import{b6 as b,G as x,aq as h,u as y,a7 as A,d as c,j as e,N as j,B as v,s as k}from"./index-I_q_YQ5e.js";import{R as w}from"./RealTimePractice-DXttns8r.js";import{u as N}from"./useAssignmentContext-BkCOknme.js";import{b as _,s as C}from"./scoreFromCoachingV3-C-8voXYx.js";import{A as Q}from"./arrow-left-BhQDzpju.js";import"./textarea-DhnoTKxL.js";import"./scroll-area-B504htGp.js";import"./index-BdQq_4o_.js";import"./alert-dialog-ByWDQLS6.js";import"./AudioPracticeView-D3jM9frB.js";import"./volume-2-CG8_zZUX.js";import"./mic-CCDbCjYM.js";import"./mic-off-Cjex7_6f.js";import"./phone-Bv67IWQn.js";import"./lightbulb-FbvN9iQg.js";import"./message-square-CDnBGRFD.js";import"./circle-alert-uw3w_Cx-.js";import"./rotate-ccw-DFVmUhwr.js";import"./SafetyTerminationBanner-C_o14wBZ.js";import"./alert-dCrrsC06.js";import"./info-IJ5o0zAR.js";import"./octagon-alert-qNFKqVcW.js";import"./shield-alert-Bm1O7GZQ.js";import"./circle-check-BByJj4gv.js";import"./thumbs-up-CPxIon75.js";import"./thumbs-down-CxmMyfJV.js";import"./send-CpCn_fLI.js";import"./circle-check-big-CF0KCsFC.js";import"./coachingPayload-jrANmIb-.js";function rs(){const t=N(),{data:m,isLoading:p}=b(),r=x(),d=h(),{t:a,language:g}=y(),{toast:l}=A(),o=c.useMemo(()=>m?.find(s=>s.id===t.assignmentId)??null,[m,t.assignmentId]);c.useEffect(()=>{!t.isAssigned&&!p&&r("/library/assignments",{replace:!0})},[t.isAssigned,p,r]);const u=c.useMemo(()=>o?{..._(o),type:"audio-call"}:null,[o]),f=async s=>{if(!t.practiceSessionId){r("/library/assignments");return}try{let i=null;o&&(i=await C({assignment:o,language:g==="en"?"en":"de",format:"audio-call",transcript:s?.transcript??[],impactQuestionsAsked:s?.impactQuestionsAsked}));const{error:n}=await k.rpc("complete_practice_session",{p_session_id:t.practiceSessionId,p_transcript:s?.transcript??[],p_metrics:{impactQuestionsAsked:s?.impactQuestionsAsked??0},p_score:i??void 0});if(n)throw n;await d.invalidateQueries({queryKey:["practice-assignments"]}),l({title:a("practice.complete.title","Übung abgeschlossen"),description:a("practice.complete.desc","Dein Ergebnis wurde gespeichert.")})}catch(i){const n=i instanceof Error?i.message:String(i);l({variant:"destructive",title:a("practice.complete.error","Speichern fehlgeschlagen"),description:n})}finally{r("/library/assignments")}};return e.jsxs("div",{className:"min-h-screen bg-background",children:[e.jsx(j,{}),e.jsxs("main",{className:"container max-w-5xl py-6 space-y-4",children:[e.jsxs(v,{variant:"ghost",size:"sm",onClick:()=>r("/library/assignments"),className:"-ml-2",children:[e.jsx(Q,{className:"h-4 w-4 mr-1"}),a("common.back","Zurück")]}),u?e.jsx(w,{scenario:u,onComplete:f}):e.jsx("p",{className:"text-sm text-muted-foreground",children:a("common.loading","Lädt…")})]})]})}export{rs 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.