randmarcomps 1.401.0 → 1.402.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/randmarcomps.js
CHANGED
|
@@ -62324,7 +62324,8 @@ const fetchGeminiResponse = async (t, e, n, o, l = 3) => {
|
|
|
62324
62324
|
g(Ge.some((it) => it.unread > 0));
|
|
62325
62325
|
}, [Ge, g]);
|
|
62326
62326
|
const Ut = (it, Ht) => {
|
|
62327
|
-
|
|
62327
|
+
Ht = Ht.replace(/\n/g, `
|
|
62328
|
+
`), console.log("doSend", Ht), console.log("target", it);
|
|
62328
62329
|
const Xt = {
|
|
62329
62330
|
id: crypto.randomUUID(),
|
|
62330
62331
|
senderName: e,
|
|
@@ -1127,7 +1127,8 @@ Please report this to https://github.com/markedjs/marked.`,t){const o="<p>An err
|
|
|
1127
1127
|
- Do not include <html>, <head>, <body>, or markdown \`\`\` fences. Output only the content itself.`:"Provide a helpful, concise response in plain text. Do not use any HTML tags or markdown formatting."}
|
|
1128
1128
|
---
|
|
1129
1129
|
Prompt: "${e}"
|
|
1130
|
-
`;try{const g=new GoogleGenAI({apiKey:t}),b=n?"gemini-2.5-pro":"gemini-2.5-flash";return(await g.chats.create({model:b}).sendMessage({message:f})).text??"Sorry, I couldn't generate a response for this."}catch(g){if(console.error("Error fetching AI response:",g),l>0)return await new Promise(b=>setTimeout(b,(4-l)*500)),fetchGeminiResponse(t,e,n,o,l-1);throw new Error("An error occurred while generating the response.")}},useGemini=(t={})=>{const{useProModel:e=!1,outputFormat:n="html"}=t,[o,l]=React.useState(null),[d,f]=React.useState(!1),[g,b]=React.useState(null),{apiKey:S}=useGeminiApiKey(),_=React.useRef(null),R=React.useCallback(async C=>{if(!S){b("API Key is required.");return}_.current=C;const E=`${C}::${n}`;if(resultCache.has(E)){const I=resultCache.get(E);return _.current===C&&(l(I),f(!1),b(null)),I}if(requestCache.has(E)){f(!0);try{return await requestCache.get(E)}catch(I){_.current===C&&b(I instanceof Error?I.message:"An unknown error occurred.");return}finally{_.current===C&&f(!1)}}f(!0),b(null);const A=fetchGeminiResponse(S,C,e,n).then(I=>{const M=cleanResponseString(I,n);return resultCache.set(E,M),M}).finally(()=>{requestCache.delete(E)});requestCache.set(E,A);try{const I=await A;return _.current===C&&l(I),I}catch(I){_.current===C&&b(I instanceof Error?I.message:"An unknown error occurred.");return}finally{_.current===C&&f(!1)}},[S,e,n]);return{response:o,isLoading:d,error:g,sendPrompt:R}},STORAGE_KEY="appConfig",defaultConfig={assistantThinkHarder:!1,assistantCachedPreloading:!1,assistantDynamicPreloading:!1},useConfig=()=>{const[t,e]=React.useState(()=>{try{const n=window.localStorage.getItem(STORAGE_KEY);if(n){const o=JSON.parse(n);return{...defaultConfig,...o}}return defaultConfig}catch(n){return console.warn(`Error reading or parsing localStorage key "${STORAGE_KEY}":`,n),defaultConfig}});return React.useEffect(()=>{try{window.localStorage.setItem(STORAGE_KEY,JSON.stringify(t))}catch(n){console.warn(`Error setting localStorage key "${STORAGE_KEY}":`,n)}},[t]),[t,e]},ASSISTANT_ID="RandmarAIChatAssistant",sortChats=(t,e)=>t.unread>0&&e.unread===0?-1:e.unread>0&&t.unread===0?1:t.name.localeCompare(e.name),ChatLayout=React.forwardRef(({userId:t,userName:e,inputRef:n,assistantOnly:o,className:l,initialPrompt:d},f)=>{const{setHasUnreads:g}=useChat(),{data:b,refetch:S}=useGetV4PartnerByRouteApplicationIdBusinessDevelopmentConversationsQuery({routeApplicationId:t},{skip:o===!0}),[_,R]=React.useState(!1),[C]=usePostV4PartnerByApplicationIdAccountDebugFeedbackMutation(),[E,{isLoading:A}]=usePostV4PartnerByRouteApplicationIdBusinessDevelopmentConversationPartnerAndPartnerIdMutation(),[I,M]=useConfig(),V=React.useRef(null),O=React.useRef(!1),[z]=useLazyGetV4PartnerByApplicationIdAccountQuery(),{sendPrompt:Q}=useGemini({outputFormat:"text",useProModel:!0}),[j,F]=React.useState(!1),[te]=usePostV4PartnerByRouteApplicationIdBusinessDevelopmentConversationPartnerAndPartnerIdMutation(),[ne]=usePostV4PartnerByRouteApplicationIdBusinessDevelopmentConversationAndConversationIdReadMutation(),[ae]=useLazyGetV4PartnerByRouteApplicationIdBusinessDevelopmentConversationAndConversationIdMessagesQuery(),{handleSubmitToBot:je,botMessages:Ae,clearBotMessages:se,botReady:Ne,debugMessages:ge,botStatus:Ve,reset:Le}=useAIAssistant({userId:t,config:I});React.useEffect(()=>{const it={partner1:t,partner2:ASSISTANT_ID,name:"Randmar Assistant",unread:0,pending:!1,messages:[],conversationID:-1};if(o===!0){Qe([it]);return}if(!b)return;(async()=>{const Xt=b.map(async sn=>{var $n,Pn,Dn;const mn=await ae({routeApplicationId:t,conversationId:sn.ConversationId});return{partner1:sn.Participant1,partner2:sn.Participant2,name:(($n=sn.Participant)==null?void 0:$n.PublicName)??"missing public name",unread:((Pn=mn.data)==null?void 0:Pn.filter(bn=>!bn.Read&&bn.SenderId!=t).length)??0,pending:sn.Status!=="Approved",messages:((Dn=mn.data)==null?void 0:Dn.map(bn=>({id:"history"+bn.MessageId,fromPartnerID:bn.SenderId,toPartnerID:bn.SenderId==sn.Participant1?sn.Participant2:sn.Participant1,senderName:bn.SenderName??"missing name",timestamp:new Date(bn.SentDate+"Z").getTime(),content:bn.Content??"no content"})))??[],conversationID:sn.ConversationId}}),dn=await Promise.all(Xt);dn.sort(sortChats),Qe([it,...dn]),setTimeout(()=>{var sn;return(sn=Vt.current)==null?void 0:sn.focus()},50)})()},[b,o,t]);const[qe,Be]=React.useState("approved"),[$e,He]=React.useState([t,ASSISTANT_ID]),[We,Ue]=React.useState(""),[Ke,tt]=React.useState(null),[Ge,Qe]=React.useState([]),[Xe,ot]=React.useState(""),[Ze,at]=React.useState(null),lt=React.useRef(null),ze=React.useRef(null),[yt,et]=React.useState(null),[Rt,$t]=React.useState([]),[Ft,Wt]=React.useState([]),Vt=n||ze,Je=React.useRef(null),{toast:rt}=useToast(),st=()=>Ge.find(it=>it.partner1===($e==null?void 0:$e[0])&&it.partner2===($e==null?void 0:$e[1])),pt=()=>($e==null?void 0:$e[0])===ASSISTANT_ID||($e==null?void 0:$e[1])===ASSISTANT_ID;function ft(){const it=st();it&&(pt()||ne({routeApplicationId:t,conversationId:it.conversationID}))}React.useEffect(()=>{d&&Ne&&(O.current||pt()&&Zt&&(O.current=!0,Ut(Zt,d)))},[d,Ne,$e,O]);const dt=React.useMemo(()=>Ge.filter(it=>{if(it.partner1===ASSISTANT_ID||it.partner2===ASSISTANT_ID)return!0;const Xt=it.name.toLowerCase().includes(Xe.toLowerCase());return qe==="approved"?Xt&&!it.pending:qe==="pending"?Xt&&it.pending:Xt}),[Ge,Xe,qe]);React.useEffect(()=>{var it;yt!==null&&(rt({title:"File attached",description:"Add your instruction before sending.",variant:"success"}),(it=Vt.current)==null||it.focus())},[yt]),React.useEffect(()=>{Ae.length!==0&&(Ae.forEach(it=>{if(!it||it.isComponent)return;const Ht={id:it.timestamp.toString(),fromPartnerID:ASSISTANT_ID,toPartnerID:t,senderName:"Assistant",timestamp:it.timestamp.getTime(),content:it.content};mt(Ht)}),se())},[Ae]);const mt=it=>Wt(Ht=>[...Ht,it]);React.useEffect(()=>{if(Ft.length==0)return;console.log(Ft.length,"unprocessedMessages detected");const it=(Xt,dn)=>dn.partner1===Xt.toPartnerID&&dn.partner2===Xt.fromPartnerID||dn.partner2===Xt.toPartnerID&&dn.partner1===Xt.fromPartnerID;let Ht=!1;Ft.forEach(Xt=>{if(!Ge.some(dn=>it(Xt,dn))){console.log("message received for unknown convo ID - need to refetch!"),Ht=!0;return}Qe(dn=>dn.map(sn=>{if(!it(Xt,sn)||sn.messages.some(Pn=>Pn.id===Xt.id))return sn;let mn=1;const $n=document.activeElement&&document.activeElement===Vt.current;return($e==null?void 0:$e[0])==sn.partner1&&$e[1]==sn.partner2&&$n&&(mn=0,ft(),setTimeout(()=>{var Pn;return(Pn=lt.current)==null?void 0:Pn.scrollIntoView({behavior:"smooth"})},50),sn.pending&&Be("approved")),{...sn,pending:!1,unread:sn.unread+mn,messages:[...sn.messages,Xt]}}).sort(sortChats))}),console.log("need refetch:",Ht),Ht&&S(),Wt([])},[Ft,Wt,Qe,He,$e]),React.useEffect(()=>{if(o===!0)return;const it=new HubConnectionBuilder().withUrl("https://api.randmar.io/hub",{accessTokenFactory:()=>localStorage.getItem("access_token"),headers:{"X-Impersonated-Id":t}}).configureLogging(LogLevel.Information).withAutomaticReconnect().withHubProtocol(new JsonHubProtocol).build();return it.on("ReceiveMessage",mt),it.start().catch(Ht=>console.error("Error connecting to SignalR hub:",Ht)),at(it),()=>{it&&it.stop()}},[t,o]),React.useEffect(()=>{var Ht;!$e||!st()||(Ht=Vt.current)==null||Ht.focus()},[$e]),React.useEffect(()=>{if(!$e)return;const it=st();if(!it)return;const Ht=document.activeElement&&document.activeElement===Vt.current;it.unread>0&&Ht&&(ft(),Qe(Xt=>Xt.map(dn=>dn.partner1===$e[0]&&dn.partner2===$e[1]?{...dn,unread:0}:dn)))},[$e,Ge]),React.useEffect(()=>{g(Ge.some(it=>it.unread>0))},[Ge,g]);const Ut=(it,Ht)=>{console.log("doSend",Ht),console.log("target",it);const Xt={id:crypto.randomUUID(),senderName:e,fromPartnerID:t,toPartnerID:it.partner1===t?it.partner2:it.partner1,content:Ht+(yt?` (${yt==null?void 0:yt.name} attached)`:""),timestamp:Date.now()};mt(Xt),Xt.toPartnerID==ASSISTANT_ID?(je(Xt.content,yt??void 0),yt&&$t(dn=>[...dn,yt.name])):(console.log("signal R send!"),Ze.invoke("NewMessage",Xt).catch(dn=>console.error("Error sending message:",dn))),Ue(""),et(null),Je.current&&(Je.current.value="")},Jt=(it,Ht)=>tt([it,Ht]);React.useEffect(()=>{if(Ke===null)return;const it=Ge.find(Xt=>Xt.conversationID===Ke[0]);if(!it||(it.pending&&Be("pending"),He([it.partner1,it.partner2]),Ke[0]===-1&&!Ne)||Ke[0]!==-1&&!Ze)return;const Ht=Ke[1];tt(null),Ht&&Ut(it,Ht)},[Ke,Ge,Be,He,Ne,Ze]),React.useImperativeHandle(f,()=>({setActiveChatAndSendMessage:Jt}));const pn=it=>{var Xt;if(!pt())return;const Ht=(Xt=it.clipboardData)==null?void 0:Xt.items;if(Ht){for(let dn=0;dn<Ht.length;dn++)if(Ht[dn].type.indexOf("image")!==-1){const sn=Ht[dn].getAsFile();if(sn){et(sn);return}}}},vn=()=>{!Zt||!We.trim()||!$e||o!==!0&&!Ze||(Zt.unread>0&&(ft(),Qe(it=>it.map(Ht=>Ht.partner1===$e[0]&&Ht.partner2===$e[1]?{...Ht,unread:0}:Ht))),Ut(Zt,We))},qt=it=>{it.target.files&&it.target.files[0]?et(it.target.files[0]):et(null)},En=()=>{var it;(it=Je.current)==null||it.click()},Rn=()=>{var it;et(null),rt({title:"File removed",description:"No file will be sent to the assistant.",variant:"secondary"}),(it=Vt.current)==null||it.focus()},Sn=()=>{const Ht={messages:Ge.find(Xt=>Xt.partner1===ASSISTANT_ID||Xt.partner2===ASSISTANT_ID),debug:ge};R(!0),C({applicationId:t,emailAddress:e,body:Ht}).then(Xt=>{if(Xt.error){console.error(Xt.error),rt({title:"Error",description:"Could not send your feedback. Please try again later.",variant:"destructive"});return}rt({title:"Success",description:"Your feedback has been successfully sent. Thank you!",variant:"success"})}).catch(Xt=>{console.error(Xt),rt({title:"Error",description:"Could not send your feedback. Please try again later.",variant:"destructive"})}).finally(()=>{R(!1)})},Cn=async()=>{var it,Ht,Xt,dn,sn;V.current&&(V.current.disabled=!0),F(!0);try{const mn=await z({applicationId:t}),$n=((it=mn.data)==null?void 0:it.About)??"a new business venture",Pn=[];(Ht=mn.data)!=null&&Ht.IsManufacturer&&Pn.push("Manufacturer"),(Xt=mn.data)!=null&&Xt.IsReseller&&Pn.push("Reseller"),(dn=mn.data)!=null&&dn.IsSalesAgency&&Pn.push("Sales Agency");const bn=`
|
|
1130
|
+
`;try{const g=new GoogleGenAI({apiKey:t}),b=n?"gemini-2.5-pro":"gemini-2.5-flash";return(await g.chats.create({model:b}).sendMessage({message:f})).text??"Sorry, I couldn't generate a response for this."}catch(g){if(console.error("Error fetching AI response:",g),l>0)return await new Promise(b=>setTimeout(b,(4-l)*500)),fetchGeminiResponse(t,e,n,o,l-1);throw new Error("An error occurred while generating the response.")}},useGemini=(t={})=>{const{useProModel:e=!1,outputFormat:n="html"}=t,[o,l]=React.useState(null),[d,f]=React.useState(!1),[g,b]=React.useState(null),{apiKey:S}=useGeminiApiKey(),_=React.useRef(null),R=React.useCallback(async C=>{if(!S){b("API Key is required.");return}_.current=C;const E=`${C}::${n}`;if(resultCache.has(E)){const I=resultCache.get(E);return _.current===C&&(l(I),f(!1),b(null)),I}if(requestCache.has(E)){f(!0);try{return await requestCache.get(E)}catch(I){_.current===C&&b(I instanceof Error?I.message:"An unknown error occurred.");return}finally{_.current===C&&f(!1)}}f(!0),b(null);const A=fetchGeminiResponse(S,C,e,n).then(I=>{const M=cleanResponseString(I,n);return resultCache.set(E,M),M}).finally(()=>{requestCache.delete(E)});requestCache.set(E,A);try{const I=await A;return _.current===C&&l(I),I}catch(I){_.current===C&&b(I instanceof Error?I.message:"An unknown error occurred.");return}finally{_.current===C&&f(!1)}},[S,e,n]);return{response:o,isLoading:d,error:g,sendPrompt:R}},STORAGE_KEY="appConfig",defaultConfig={assistantThinkHarder:!1,assistantCachedPreloading:!1,assistantDynamicPreloading:!1},useConfig=()=>{const[t,e]=React.useState(()=>{try{const n=window.localStorage.getItem(STORAGE_KEY);if(n){const o=JSON.parse(n);return{...defaultConfig,...o}}return defaultConfig}catch(n){return console.warn(`Error reading or parsing localStorage key "${STORAGE_KEY}":`,n),defaultConfig}});return React.useEffect(()=>{try{window.localStorage.setItem(STORAGE_KEY,JSON.stringify(t))}catch(n){console.warn(`Error setting localStorage key "${STORAGE_KEY}":`,n)}},[t]),[t,e]},ASSISTANT_ID="RandmarAIChatAssistant",sortChats=(t,e)=>t.unread>0&&e.unread===0?-1:e.unread>0&&t.unread===0?1:t.name.localeCompare(e.name),ChatLayout=React.forwardRef(({userId:t,userName:e,inputRef:n,assistantOnly:o,className:l,initialPrompt:d},f)=>{const{setHasUnreads:g}=useChat(),{data:b,refetch:S}=useGetV4PartnerByRouteApplicationIdBusinessDevelopmentConversationsQuery({routeApplicationId:t},{skip:o===!0}),[_,R]=React.useState(!1),[C]=usePostV4PartnerByApplicationIdAccountDebugFeedbackMutation(),[E,{isLoading:A}]=usePostV4PartnerByRouteApplicationIdBusinessDevelopmentConversationPartnerAndPartnerIdMutation(),[I,M]=useConfig(),V=React.useRef(null),O=React.useRef(!1),[z]=useLazyGetV4PartnerByApplicationIdAccountQuery(),{sendPrompt:Q}=useGemini({outputFormat:"text",useProModel:!0}),[j,F]=React.useState(!1),[te]=usePostV4PartnerByRouteApplicationIdBusinessDevelopmentConversationPartnerAndPartnerIdMutation(),[ne]=usePostV4PartnerByRouteApplicationIdBusinessDevelopmentConversationAndConversationIdReadMutation(),[ae]=useLazyGetV4PartnerByRouteApplicationIdBusinessDevelopmentConversationAndConversationIdMessagesQuery(),{handleSubmitToBot:je,botMessages:Ae,clearBotMessages:se,botReady:Ne,debugMessages:ge,botStatus:Ve,reset:Le}=useAIAssistant({userId:t,config:I});React.useEffect(()=>{const it={partner1:t,partner2:ASSISTANT_ID,name:"Randmar Assistant",unread:0,pending:!1,messages:[],conversationID:-1};if(o===!0){Qe([it]);return}if(!b)return;(async()=>{const Xt=b.map(async sn=>{var $n,Pn,Dn;const mn=await ae({routeApplicationId:t,conversationId:sn.ConversationId});return{partner1:sn.Participant1,partner2:sn.Participant2,name:(($n=sn.Participant)==null?void 0:$n.PublicName)??"missing public name",unread:((Pn=mn.data)==null?void 0:Pn.filter(bn=>!bn.Read&&bn.SenderId!=t).length)??0,pending:sn.Status!=="Approved",messages:((Dn=mn.data)==null?void 0:Dn.map(bn=>({id:"history"+bn.MessageId,fromPartnerID:bn.SenderId,toPartnerID:bn.SenderId==sn.Participant1?sn.Participant2:sn.Participant1,senderName:bn.SenderName??"missing name",timestamp:new Date(bn.SentDate+"Z").getTime(),content:bn.Content??"no content"})))??[],conversationID:sn.ConversationId}}),dn=await Promise.all(Xt);dn.sort(sortChats),Qe([it,...dn]),setTimeout(()=>{var sn;return(sn=Vt.current)==null?void 0:sn.focus()},50)})()},[b,o,t]);const[qe,Be]=React.useState("approved"),[$e,He]=React.useState([t,ASSISTANT_ID]),[We,Ue]=React.useState(""),[Ke,tt]=React.useState(null),[Ge,Qe]=React.useState([]),[Xe,ot]=React.useState(""),[Ze,at]=React.useState(null),lt=React.useRef(null),ze=React.useRef(null),[yt,et]=React.useState(null),[Rt,$t]=React.useState([]),[Ft,Wt]=React.useState([]),Vt=n||ze,Je=React.useRef(null),{toast:rt}=useToast(),st=()=>Ge.find(it=>it.partner1===($e==null?void 0:$e[0])&&it.partner2===($e==null?void 0:$e[1])),pt=()=>($e==null?void 0:$e[0])===ASSISTANT_ID||($e==null?void 0:$e[1])===ASSISTANT_ID;function ft(){const it=st();it&&(pt()||ne({routeApplicationId:t,conversationId:it.conversationID}))}React.useEffect(()=>{d&&Ne&&(O.current||pt()&&Zt&&(O.current=!0,Ut(Zt,d)))},[d,Ne,$e,O]);const dt=React.useMemo(()=>Ge.filter(it=>{if(it.partner1===ASSISTANT_ID||it.partner2===ASSISTANT_ID)return!0;const Xt=it.name.toLowerCase().includes(Xe.toLowerCase());return qe==="approved"?Xt&&!it.pending:qe==="pending"?Xt&&it.pending:Xt}),[Ge,Xe,qe]);React.useEffect(()=>{var it;yt!==null&&(rt({title:"File attached",description:"Add your instruction before sending.",variant:"success"}),(it=Vt.current)==null||it.focus())},[yt]),React.useEffect(()=>{Ae.length!==0&&(Ae.forEach(it=>{if(!it||it.isComponent)return;const Ht={id:it.timestamp.toString(),fromPartnerID:ASSISTANT_ID,toPartnerID:t,senderName:"Assistant",timestamp:it.timestamp.getTime(),content:it.content};mt(Ht)}),se())},[Ae]);const mt=it=>Wt(Ht=>[...Ht,it]);React.useEffect(()=>{if(Ft.length==0)return;console.log(Ft.length,"unprocessedMessages detected");const it=(Xt,dn)=>dn.partner1===Xt.toPartnerID&&dn.partner2===Xt.fromPartnerID||dn.partner2===Xt.toPartnerID&&dn.partner1===Xt.fromPartnerID;let Ht=!1;Ft.forEach(Xt=>{if(!Ge.some(dn=>it(Xt,dn))){console.log("message received for unknown convo ID - need to refetch!"),Ht=!0;return}Qe(dn=>dn.map(sn=>{if(!it(Xt,sn)||sn.messages.some(Pn=>Pn.id===Xt.id))return sn;let mn=1;const $n=document.activeElement&&document.activeElement===Vt.current;return($e==null?void 0:$e[0])==sn.partner1&&$e[1]==sn.partner2&&$n&&(mn=0,ft(),setTimeout(()=>{var Pn;return(Pn=lt.current)==null?void 0:Pn.scrollIntoView({behavior:"smooth"})},50),sn.pending&&Be("approved")),{...sn,pending:!1,unread:sn.unread+mn,messages:[...sn.messages,Xt]}}).sort(sortChats))}),console.log("need refetch:",Ht),Ht&&S(),Wt([])},[Ft,Wt,Qe,He,$e]),React.useEffect(()=>{if(o===!0)return;const it=new HubConnectionBuilder().withUrl("https://api.randmar.io/hub",{accessTokenFactory:()=>localStorage.getItem("access_token"),headers:{"X-Impersonated-Id":t}}).configureLogging(LogLevel.Information).withAutomaticReconnect().withHubProtocol(new JsonHubProtocol).build();return it.on("ReceiveMessage",mt),it.start().catch(Ht=>console.error("Error connecting to SignalR hub:",Ht)),at(it),()=>{it&&it.stop()}},[t,o]),React.useEffect(()=>{var Ht;!$e||!st()||(Ht=Vt.current)==null||Ht.focus()},[$e]),React.useEffect(()=>{if(!$e)return;const it=st();if(!it)return;const Ht=document.activeElement&&document.activeElement===Vt.current;it.unread>0&&Ht&&(ft(),Qe(Xt=>Xt.map(dn=>dn.partner1===$e[0]&&dn.partner2===$e[1]?{...dn,unread:0}:dn)))},[$e,Ge]),React.useEffect(()=>{g(Ge.some(it=>it.unread>0))},[Ge,g]);const Ut=(it,Ht)=>{Ht=Ht.replace(/\n/g,`
|
|
1131
|
+
`),console.log("doSend",Ht),console.log("target",it);const Xt={id:crypto.randomUUID(),senderName:e,fromPartnerID:t,toPartnerID:it.partner1===t?it.partner2:it.partner1,content:Ht+(yt?` (${yt==null?void 0:yt.name} attached)`:""),timestamp:Date.now()};mt(Xt),Xt.toPartnerID==ASSISTANT_ID?(je(Xt.content,yt??void 0),yt&&$t(dn=>[...dn,yt.name])):(console.log("signal R send!"),Ze.invoke("NewMessage",Xt).catch(dn=>console.error("Error sending message:",dn))),Ue(""),et(null),Je.current&&(Je.current.value="")},Jt=(it,Ht)=>tt([it,Ht]);React.useEffect(()=>{if(Ke===null)return;const it=Ge.find(Xt=>Xt.conversationID===Ke[0]);if(!it||(it.pending&&Be("pending"),He([it.partner1,it.partner2]),Ke[0]===-1&&!Ne)||Ke[0]!==-1&&!Ze)return;const Ht=Ke[1];tt(null),Ht&&Ut(it,Ht)},[Ke,Ge,Be,He,Ne,Ze]),React.useImperativeHandle(f,()=>({setActiveChatAndSendMessage:Jt}));const pn=it=>{var Xt;if(!pt())return;const Ht=(Xt=it.clipboardData)==null?void 0:Xt.items;if(Ht){for(let dn=0;dn<Ht.length;dn++)if(Ht[dn].type.indexOf("image")!==-1){const sn=Ht[dn].getAsFile();if(sn){et(sn);return}}}},vn=()=>{!Zt||!We.trim()||!$e||o!==!0&&!Ze||(Zt.unread>0&&(ft(),Qe(it=>it.map(Ht=>Ht.partner1===$e[0]&&Ht.partner2===$e[1]?{...Ht,unread:0}:Ht))),Ut(Zt,We))},qt=it=>{it.target.files&&it.target.files[0]?et(it.target.files[0]):et(null)},En=()=>{var it;(it=Je.current)==null||it.click()},Rn=()=>{var it;et(null),rt({title:"File removed",description:"No file will be sent to the assistant.",variant:"secondary"}),(it=Vt.current)==null||it.focus()},Sn=()=>{const Ht={messages:Ge.find(Xt=>Xt.partner1===ASSISTANT_ID||Xt.partner2===ASSISTANT_ID),debug:ge};R(!0),C({applicationId:t,emailAddress:e,body:Ht}).then(Xt=>{if(Xt.error){console.error(Xt.error),rt({title:"Error",description:"Could not send your feedback. Please try again later.",variant:"destructive"});return}rt({title:"Success",description:"Your feedback has been successfully sent. Thank you!",variant:"success"})}).catch(Xt=>{console.error(Xt),rt({title:"Error",description:"Could not send your feedback. Please try again later.",variant:"destructive"})}).finally(()=>{R(!1)})},Cn=async()=>{var it,Ht,Xt,dn,sn;V.current&&(V.current.disabled=!0),F(!0);try{const mn=await z({applicationId:t}),$n=((it=mn.data)==null?void 0:it.About)??"a new business venture",Pn=[];(Ht=mn.data)!=null&&Ht.IsManufacturer&&Pn.push("Manufacturer"),(Xt=mn.data)!=null&&Xt.IsReseller&&Pn.push("Reseller"),(dn=mn.data)!=null&&dn.IsSalesAgency&&Pn.push("Sales Agency");const bn=`
|
|
1131
1132
|
Your task is to draft a ready-to-send opening message from a user to the Randmar team.
|
|
1132
1133
|
|
|
1133
1134
|
**Your Persona:** You are an entrepreneur and a ${Pn.length>0?Pn.join("/"):"Entrepreneur"}.
|