NotificationsPage-Czoj_qEO.js 8.1 KB

1
  1. import{i as e}from"./chunk-aKtaBQYM.js";import{O as t,T as n,a as r,w as i}from"./client-D5sDHQfN.js";import{n as a}from"./QueryClientProvider-RTEea2Mk.js";import{t as o}from"./useQuery-CGtzNsic.js";import{t as s}from"./useMutation-Kl2cmi_r.js";import{n as c}from"./ToastContext-DKTQgyG5.js";import{t as l}from"./loader-circle-D_tGybHN.js";import{n as u}from"./AuthContext-F8QHEqr7.js";import{i as d,n as f,t as p}from"./Card-BehSIsEQ.js";import{t as m}from"./Button-D71ID444.js";import{G as h,Gn as g,Qt as _,Xn as v,pn as y,zn as b}from"./index-nsyp3RII.js";var x=e(t(),1),S=i();function C(){let{t:e}=n(),{user:t}=u(),{showToast:i}=c(),C=a(),w=v(),[T,E]=(0,x.useState)(!0),[D,O]=(0,x.useState)(!0),[k,A]=(0,x.useState)(!0),[j,M]=(0,x.useState)(!0),[N,P]=(0,x.useState)(!1),{data:F,isLoading:I}=o({queryKey:[`advancedAuthStatus`],queryFn:r.getAdvancedAuthStatus,staleTime:300*1e3}),{data:L,isLoading:R}=h({staleTime:300*1e3}),{data:z,isLoading:B}=o({queryKey:[`user-email-preferences`],queryFn:()=>r.getUserEmailPreferences()});(0,x.useEffect)(()=>{(F&&!F.advanced_auth_enabled||L&&!L.user_notifications_enabled)&&w(`/settings`,{replace:!0})},[F,L,w]),(0,x.useEffect)(()=>{z&&(E(z.notify_print_start),O(z.notify_print_complete),A(z.notify_print_failed),M(z.notify_print_stopped),P(!1))},[z]);let V=s({mutationFn:()=>r.updateUserEmailPreferences({notify_print_start:T,notify_print_complete:D,notify_print_failed:k,notify_print_stopped:j}),onSuccess:()=>{C.invalidateQueries({queryKey:[`user-email-preferences`]}),P(!1),i(e(`notifications.userEmail.saveSuccess`),`success`)},onError:t=>{i(t.message||e(`notifications.userEmail.saveError`),`error`)}}),H=(e,t)=>{e(!t),P(!0)};return B||I||R?(0,S.jsx)(`div`,{className:`flex items-center justify-center h-64`,children:(0,S.jsx)(l,{className:`w-8 h-8 animate-spin text-bambu-green`})}):(0,S.jsxs)(`div`,{className:`p-4 md:p-6 max-w-2xl mx-auto`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-3 mb-6`,children:[(0,S.jsx)(g,{className:`w-7 h-7 text-bambu-green`}),(0,S.jsx)(`h1`,{className:`text-2xl font-bold text-white`,children:e(`notifications.userEmail.title`)})]}),(0,S.jsx)(p,{className:`mb-6 border-blue-300 bg-blue-50 dark:border-blue-500/30 dark:bg-blue-500/5`,children:(0,S.jsx)(f,{className:`py-4`,children:(0,S.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,S.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center bg-blue-100 dark:bg-blue-500/20 flex-shrink-0`,children:(0,S.jsx)(y,{className:`w-5 h-5 text-blue-600 dark:text-blue-400`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`h3`,{className:`text-white font-medium`,children:e(`notifications.userEmail.emailNotifications`)}),(0,S.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`notifications.userEmail.emailNotificationsDesc`)}),t?.email?(0,S.jsxs)(`p`,{className:`text-sm text-blue-700 dark:text-blue-400 mt-2`,children:[e(`notifications.userEmail.sendingTo`),`: `,(0,S.jsx)(`strong`,{children:t.email})]}):(0,S.jsx)(`p`,{className:`text-sm text-yellow-700 dark:text-yellow-400 mt-2`,children:e(`notifications.userEmail.noEmailWarning`)})]})]})})}),(0,S.jsxs)(p,{className:`mb-6`,children:[(0,S.jsxs)(d,{children:[(0,S.jsx)(`h2`,{className:`text-lg font-semibold text-white`,children:e(`notifications.userEmail.printJobNotifications`)}),(0,S.jsx)(`p`,{className:`text-sm text-bambu-gray mt-1`,children:e(`notifications.userEmail.printJobNotificationsDesc`)})]}),(0,S.jsxs)(f,{className:`space-y-4`,children:[(0,S.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,S.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${T?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,S.jsx)(b,{className:`w-5 h-5 ${T?`text-bambu-green`:`text-bambu-gray`}`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobStarts`)}),(0,S.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobStartsDesc`)})]})]}),(0,S.jsx)(`button`,{onClick:()=>H(E,T),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${T?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":T,children:(0,S.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${T?`translate-x-6`:`translate-x-1`}`})})]}),(0,S.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,S.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${D?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,S.jsx)(b,{className:`w-5 h-5 ${D?`text-bambu-green`:`text-bambu-gray`}`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobFinishes`)}),(0,S.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobFinishesDesc`)})]})]}),(0,S.jsx)(`button`,{onClick:()=>H(O,D),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${D?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":D,children:(0,S.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${D?`translate-x-6`:`translate-x-1`}`})})]}),(0,S.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,S.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${k?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,S.jsx)(b,{className:`w-5 h-5 ${k?`text-bambu-green`:`text-bambu-gray`}`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printErrors`)}),(0,S.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printErrorsDesc`)})]})]}),(0,S.jsx)(`button`,{onClick:()=>H(A,k),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${k?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":k,children:(0,S.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${k?`translate-x-6`:`translate-x-1`}`})})]}),(0,S.jsxs)(`div`,{className:`flex items-center justify-between p-4 bg-bambu-dark rounded-lg`,children:[(0,S.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,S.jsx)(`div`,{className:`w-10 h-10 rounded-full flex items-center justify-center ${j?`bg-bambu-green/20`:`bg-bambu-dark-tertiary`}`,children:(0,S.jsx)(b,{className:`w-5 h-5 ${j?`text-bambu-green`:`text-bambu-gray`}`})}),(0,S.jsxs)(`div`,{children:[(0,S.jsx)(`p`,{className:`text-white font-medium`,children:e(`notifications.userEmail.printJobStops`)}),(0,S.jsx)(`p`,{className:`text-sm text-bambu-gray`,children:e(`notifications.userEmail.printJobStopsDesc`)})]})]}),(0,S.jsx)(`button`,{onClick:()=>H(M,j),className:`relative inline-flex h-6 w-11 items-center rounded-full transition-colors focus:outline-none focus:ring-2 focus:ring-bambu-green focus:ring-offset-2 focus:ring-offset-bambu-dark ${j?`bg-bambu-green`:`bg-bambu-dark-tertiary`}`,role:`switch`,"aria-checked":j,children:(0,S.jsx)(`span`,{className:`inline-block h-4 w-4 transform rounded-full bg-white transition-transform ${j?`translate-x-6`:`translate-x-1`}`})})]})]})]}),(0,S.jsx)(`div`,{className:`flex justify-end`,children:(0,S.jsx)(m,{onClick:()=>V.mutate(),disabled:!N||V.isPending||!t?.email,children:V.isPending?(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(l,{className:`w-4 h-4 animate-spin`}),e(`common.saving`)]}):(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(_,{className:`w-4 h-4`}),e(`common.save`)]})})})]})}export{C as NotificationsPage};