1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[545],{9728:(e,t,a)=>{"use strict";function r(e="generic"){window.dispatchEvent(new CustomEvent("test-auth-required",{detail:{reason:e}}))}a.d(t,{h:()=>r})},15310:(e,t,a)=>{"use strict";a.d(t,{AA:()=>x,AB:()=>g,An:()=>H,Bx:()=>S,Ee:()=>E,F1:()=>h,Ht:()=>p,J9:()=>b,KZ:()=>z,L$:()=>m,MP:()=>j,Mv:()=>C,Nm:()=>P,SE:()=>_,Wl:()=>c,Xs:()=>$,Ym:()=>A,c4:()=>d,hY:()=>o,lH:()=>f,nN:()=>q,nY:()=>B,uj:()=>T});var r=a(91040),n=a(97685),s=a(52673),i=a(9728),l=a(65364);function o(){if("true"===l.env.NEXT_PUBLIC_BACKEND_TESTS_PROXY)return"/api-tests-proxy";let e=void 0!==l&&1?"https://backend.infoedu.uz".replace(/\/$/,""):"https://backend.infoedu.uz";return`${e}/api`}function d(){return(0,s._p)()}let u=r.A.create({baseURL:o(),timeout:12e4,headers:{"Content-Type":"application/json"}});function c(e,t){if(e.response?.status===401)return;let a=function(e){let t=e.response?.data;if(t&&"object"==typeof t){if("string"==typeof t.error)return t.error;if("string"==typeof t.message)return t.message}return e.message?e.message:"So'rov bajarilmadi"}(e);n.Ay.error(t?`${t}: ${a}`:a)}async function m(){let{data:e}=await u.get("/tests/majors");return e}async function x(){let{data:e}=await u.get("/tests/contests");return e}async function h(){let{data:e}=await u.get("/tests/all-contests");return e}async function g(e){let{data:t}=await u.get(`/tests/contests/${e}/subjects`);return t}async function b(e){let{data:t}=await u.post("/tests/start",e);return t}async function f(){let{data:e}=await u.get("/tests/active-session");return e}async function p(e){let{data:t}=await u.get(`/tests/session/${e}`);return t}async function y(e){let{data:t}=await u.post("/tests/save-answer",e);return t}u.interceptors.request.use(e=>{let t=d();return t&&(e.headers.Authorization=`Bearer ${t}`),e}),u.interceptors.response.use(e=>e,e=>{let t=e.response?.status;return 401===t?((0,s.Qt)(),(0,i.h)("session_expired")):t&&t>=500&&n.Ay.error("Server vaqtincha ishlamayapti. Keyinroq urinib koâring."),Promise.reject(e)});let k=e=>new Promise(t=>setTimeout(t,e));async function j(e,t=3){let a;for(let r=0;r<t;r++)try{return await y(e)}catch(e){a=e,r<t-1&&await k(1e3*2**r)}throw a}let v="test_offline_save_queue";function w(){try{let e=localStorage.getItem(v);if(!e)return[];let t=JSON.parse(e);return Array.isArray(t)?t:[]}catch{return[]}}function N(e){localStorage.setItem(v,JSON.stringify(e))}function q(e){let t=w();t.push({...e,queuedAt:Date.now()}),N(t)}async function _(){let e=w();if(0===e.length)return;let t=[];for(let a of e){let{queuedAt:e,...r}=a;try{await j(r,3)}catch{t.push(a)}}N(t)}async function z(e){let{data:t}=await u.post("/tests/finish",e);return t}async function T(e){let{data:t}=await u.get(`/tests/result/${e}`);return t}async function A(e){let{data:t}=await u.get(`/tests/result/${e}/review`);return t}async function S(e){let{data:t}=await u.post(`/tests/${e}/analyze`);return t}async function E(e,t){let{data:a}=await u.get(`/tests/contests/${e}/leaderboard`,{params:t?{major_code:t}:void 0});return a}async function B(){let{data:e}=await u.get("/tests/leaderboard");return e}async function C(e){let{data:t}=await u.get(`/tests/contests/${e}/stats`);return t}async function $(){let{data:e}=await u.get("/users/certificates");return e}async function H(e){let{data:t}=await u.post("/users/certificates",e);return t}async function P(e){let{data:t}=await u.delete(`/users/certificates/${e}`);return t}},61e3:(e,t,a)=>{"use strict";a.r(t),a.d(t,{default:()=>p});var r=a(37876),n=a(77328),s=a.n(n),i=a(14232),l=a(31777),o=a(89099),d=a(97685),u=a(46290),c=a(73529),m=a(71669),x=a(4694);function h({className:e="h-5 w-5"}){return(0,r.jsx)("svg",{className:e,viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":!0,children:(0,r.jsx)("path",{d:"M11.944 0A12 12 0 0 0 0 12a12 12 0 0 0 12 12 12 12 0 0 0 12-12A12 12 0 0 0 12 0a12 12 0 0 0-.056 0zm4.962 7.224c.1-.002.321.023.465.14a.506.506 0 0 1 .171.325c.016.093.036.306.02.472-.18 1.898-.962 6.502-1.36 8.627-.168.9-.499 1.201-.82 1.23-.696.065-1.225-.46-1.9-.902-1.056-.693-1.653-1.124-2.678-1.8-1.185-.78-.417-1.21.258-1.91.177-.184 3.247-2.977 3.307-3.23.007-.032.014-.15-.056-.212s-.174-.041-.249-.024c-.106.024-1.793 1.14-5.061 3.345-.48.33-.913.49-1.302.48-.428-.008-1.252-.241-1.865-.44-.752-.245-1.349-.374-1.297-.789.027-.216.325-.437.893-.663 3.498-1.524 5.83-2.529 6.998-3.014 3.332-1.386 4.025-1.627 4.476-1.635z"})})}function g(){var e;let[t,a]=(0,i.useState)(null),[n,s]=(0,i.useState)(!0),[l,o]=(0,i.useState)(!1),[u,g]=(0,i.useState)(null),[b,f]=(0,i.useState)(!1),[p,y]=(0,i.useState)(!1),[k,j]=(0,i.useState)(!1),[v,w]=(0,i.useState)(!1),[N,q]=(0,i.useState)(!1),[_,z]=(0,i.useState)(null),T=(0,i.useRef)(null),A=(0,i.useCallback)(async(e={})=>{e.silent||s(!0);try{let e=await (0,c.gK)();a(e),z(null),!1===T.current&&e.linked&&(g(null),d.Ay.success("Telegram akkauntingiz bog'landi!",{position:"bottom-center"}),window.dispatchEvent(new Event("auth-update"))),T.current=e.linked}
1catch(t){e.silent||z((0,c.Hr)(t))}finally{e.silent||s(!1)}},[]);(0,i.useEffect)(()=>{A()},[A]),(0,i.useEffect)(()=>{if(!u)return void f(!1);let e=new Date(u.expiresAt).getTime()-Date.now();if(e<=0)return void f(!0);let t=setTimeout(()=>f(!0),e);return()=>clearTimeout(t)},[u]);let S=!!(t&&t.linked);(0,i.useEffect)(()=>{if(!u||b||S)return;let e=setInterval(()=>void A({silent:!0}),5e3);return()=>clearInterval(e)},[u,b,S,A]);let E=async()=>{y(!0),z(null);try{let e=await (0,c.jS)();g(e)}catch(e){z((0,c.Hr)(e))}finally{y(!1)}},B=async()=>{if(u)try{await navigator.clipboard.writeText(u.deepLink),d.Ay.success("Havola nusxalandi.",{position:"bottom-center"})}catch{d.Ay.error("Nusxalab bo'lmadi â havolani qo'lda ko'chiring.",{position:"bottom-center"})}},C=async()=>{y(!0),z(null);try{let{ticket:e}=await (0,c.Nf)(),t="/dashboard/notifications";(0,m.hL)(t);let a=new URLSearchParams({ticket:e,return_to:t});window.location.href=`https://backend.infoedu.uz/api/auth/telegram/oidc?${a.toString()}`,y(!1)}catch(e){z((0,c.Hr)(e)),y(!1)}},$=async e=>{j(!0),z(null);try{await (0,c.vT)(e),a(t=>t?{...t,notificationsEnabled:e}:t),d.Ay.success(e?"Bildirishnomalar yoqildi.":"Bildirishnomalar o'chirildi.",{position:"bottom-center"})}catch(e){z((0,c.Hr)(e))}finally{j(!1)}},H=async()=>{q(!0),z(null);try{await (0,c.VW)(),w(!1),g(null),T.current=!1,await A(),d.Ay.success("Telegram uzildi.",{position:"bottom-center"}),window.dispatchEvent(new Event("auth-update"))}catch(e){z((0,c.Hr)(e))}finally{q(!1)}};return(0,r.jsx)("div",{className:"rounded-2xl border border-neutral-200 bg-white p-6 dark:border-neutral-700 dark:bg-neutral-800",children:(0,r.jsxs)("div",{className:"flex items-start gap-4",children:[(0,r.jsx)("div",{className:"flex h-11 w-11 shrink-0 items-center justify-center rounded-full bg-[#0088cc]/10 text-[#0088cc]",children:(0,r.jsx)(h,{})}),(0,r.jsxs)("div",{className:"flex-grow",children:[(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,r.jsx)("h3",{className:"text-base font-semibold",children:"Telegram"}),n?(0,r.jsx)("span",{className:"text-xs text-neutral-400",children:"yuklanmoqdaâ¦"}):t?.linked?(0,r.jsx)("span",{className:"inline-flex items-center gap-1 rounded-full bg-green-50 px-2 py-0.5 text-xs font-medium text-green-700 dark:bg-green-900/30 dark:text-green-300",children:"Bog'langan"}):(0,r.jsx)("span",{className:"rounded-full bg-neutral-100 px-2 py-0.5 text-xs font-medium text-neutral-600 dar
1k:bg-neutral-700 dark:text-neutral-300",children:"Bog'lanmagan"})]}),(0,r.jsx)("p",{className:"mt-1 text-sm text-neutral-500 dark:text-neutral-400",children:"Telegram'ni bog'lasangiz, hisobingizga tegishli bildirishnomalar (test natijalari, sertifikatlar, yangiliklar) bevosita bot orqali keladi."}),!n&&t?.linked&&(0,r.jsxs)("div",{className:"mt-4 space-y-3",children:[(0,r.jsxs)("div",{className:"text-sm",children:[t.username?(0,r.jsxs)("span",{className:"font-medium",children:["@",t.username]}):(0,r.jsx)("span",{className:"text-neutral-500",children:"Telegram akkaunt"}),t.linkedAt&&(0,r.jsxs)("span",{className:"text-neutral-400",children:[" \xb7 ",(e=t.linkedAt,(0,x.pr)(e))]})]}),t.dmBlocked&&(0,r.jsxs)("div",{className:"rounded-lg bg-amber-50 p-3 text-xs text-amber-800 dark:bg-amber-900/20 dark:text-amber-200",children:["Bot sizga xabar yubora olmadi. Telegram'da botni qayta ochib"," ",(0,r.jsx)("strong",{children:"/start"})," ni bosing."]}),(0,r.jsxs)("label",{className:"flex cursor-pointer items-center gap-3",children:[(0,r.jsx)("input",{type:"checkbox",className:"h-4 w-4 rounded border-neutral-300 text-primary-600 focus:ring-primary-500 dark:border-neutral-600 dar
1k:bg-neutral-700",checked:t.notificationsEnabled,disabled:k,onChange:e=>void $(e.target.checked)}),(0,r.jsx)("span",{className:"text-sm",children:"Telegram orqali bildirishnomalar"})]}),t.canUnlink?v?(0,r.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-sm",children:[(0,r.jsx)("span",{className:"text-neutral-600 dark:text-neutral-300",children:"Akkountni uzasizmi?"}),(0,r.jsx)("button",{type:"button",onClick:()=>void H(),disabled:N,className:"rounded-lg bg-red-600 px-3 py-1.5 text-xs font-medium text-white hover:bg-red-700 disabled:opacity-60",children:N?"Uzilmoqdaâ¦":"Ha, uzish"}),(0,r.jsx)("button",{type:"button",onClick:()=>w(!1),className:"rounded-lg px-3 py-1.5 text-xs font-medium text-neutral-500 hover:bg-neutral-100 dark:hover:bg-neutral-700",children:"Bekor qilish"})]}):(0,r.jsx)("button",{type:"button",onClick:()=>w(!0),className:"text-sm text-neutral-500 underline underline-offset-2 hover:text-red-600 dark:text-neutral-400",children:"Telegram'ni uzish"}):(0,r.jsxs)("p",{className:"text-xs text-neutral-500 dark:text-neutral-400",children:["Telegram â hisobingizga kirishning yagona usuli. Uni uzsangiz bu hisobga boshqa kira olmaysiz, shuning uchun uzish bloklangan. Yordam kerak bo'lsa:"," ",(0,r.jsx)("a",{href:"https://t.me/infoedu_admin",target:"_blank",rel:"noopener noreferrer",className:"underline underline-offset-2",children:"@infoedu_admin"})]})]}),!n&&t&&!t.linked&&(0,r.jsx)("div",{className:"mt-4 space-y-3",children:u&&!b?(0,r.jsxs)("div",{className:"rounded-xl border border-neutral-200 bg-neutral-50 p-4 dark:border-neutral-700 dark:bg-neutral-900",children:[(0,r.jsxs)("p",{className:"text-sm text-neutral-600 dar
1k:text-neutral-300",children:["1. Quyidagi tugma orqali botni oching",(0,r.jsx)("br",{}),"2. Botda ",(0,r.jsx)("strong",{children:"Start"})," ni bosing"]}),(0,r.jsx)("div",{className:"mt-3 rounded-lg bg-white px-3 py-2 text-center font-mono text-xl font-bold tracking-[0.2em] dark:bg-neutral-800",children:u.code}),(0,r.jsxs)("div",{className:"mt-3 flex flex-wrap items-center gap-2",children:[(0,r.jsxs)("a",{href:u.deepLink,target:"_blank",rel:"noopener noreferrer",className:"inline-flex items-center gap-2 rounded-xl bg-[#0088cc] px-4 py-2 text-sm font-medium text-white hover:opacity-90",children:[(0,r.jsx)(h,{className:"h-4 w-4"}),"Botni ochish"]}),(0,r.jsx)("button",{type:"button",onClick:()=>void B(),className:"rounded-xl border border-neutral-300 px-4 py-2 text-sm font-medium hover:bg-neutral-100 dark:border-neutral-600 dark:hover:bg-neutral-700",children:"Havolani nusxalash"})]}),(0,r.jsxs)("div",{className:"mt-3 flex items-center gap-2 text-xs text-neutral-500 dark:text-neutral-400",children:[(0,r.jsxs)("span",{children:["Kod ",u.ttlMinutes," daqiqa amal qiladi. Bog'langach bu sahifa avtomatik yangilanadi."]}),(0,r.jsx)("button",{type:"button",onClick:()=>{o(!0),A({silent:!0}).finally(()=>o(!1))},disabled:l,className:"font-medium text-primary-600 hover:underline disabled:opacity-60 dark:text-primary-400",children:l?"Tekshirilmoqdaâ¦":"Tekshirish"})]})]}):(0,r.jsxs)(r.Fragment,{children:[b&&(0,r.jsx)("p",{className:"rounded-lg bg-amber-50 p-3 text-xs text-amber-800 dark:bg-amber-900/20 dark:text-amber-200",children:"Kod muddati tugadi. Yangi kod oling â eski kod endi ishlamaydi."}),(0,r.jsxs)("button",{type:"button",onClick:()=>void E(),disabled:p,className:"inline-flex items-center gap-2 rounded-xl bg-[#0088cc] px-4 py-2.5 text-sm font-medium text-white hover:opacity-90 disabled:opacity-60",children:[(0,r.jsx)(h,{className:"h-4 w-4"}),p?"Tayyorlanmoqdaâ¦":b?"Yangi kod olish":"Telegram'ni bog'lash"]}),(0,r.jsx)("div",{children:(0,r.jsx)("button",{type:"button",onClick:()=>void C(),disabled:p,className:"text-sm text-neutral-500 underline underline-offset-2 hover:text-neutral-800 disabled:opacity-60 dark:text-neutral-400 dark:hover:text-neutral-200",children:"yoki Telegram orqali bir tugmada bog'lash"})})]})}),_&&(0,r.jsx)("p",{className:"mt-3 rounded-lg bg-red-50 p-3 text-sm text-red-700 dark:bg-red-900/20 dark:text-red-300",children:_})]})]})})}var b=a(95710);let f={telegram_denied:"Bog'lashni bekor qildingiz.",telegram_link_conflict:"Bu Telegram akkaunt boshqa hisobga bog'langan.",telegram_link_ticket_invalid:"Havola muddati tugagan. Qaytadan urinib ko'ring.",telegram_state_missing:"Seans muddati tugagan. Qaytadan urinib ko'ring.",telegram_state_invalid:"Xavfsizlik tekshiruvi o'tmadi. Qaytadan urinib ko'ring.",telegram_code_missing:"Telegram kod qaytarmadi. Qaytadan urinib ko'ring.",telegram_config:"Telegram bog'lash vaqtincha ishlamayapti. Keyinroq qayta urinib ko'ring."};function p(){let{isReady:e,isAuthenticated:t}=(0,l.d4)(e=>e.viewer.authorizedUser),a=(0,o.useRouter)();return(0,i.useEffect)(()=>{e&&!1===t&&a.push("/login")},[t,e,a]),(0,i.useEffect)(()=>{let e=a.query.error;e&&(d.Ay.error(f[e]||"Telegram'ni bog'lashda xatolik yuz berdi. Qaytadan urinib ko'ring.",{position:"bottom-center",duration:5e3}),a.replace("/dashboard/notifications",void 0,{shallow:!0}))},[a.query.error,a]),(0,r.jsxs)(u.A,{children:[(0,r.jsxs)(s(),{children:[(0,r.jsx)("title",{children:"Bildirishnomalar | Infoedu.uz"}),(0,r.jsx)("meta",{name:"robots",content:"noindex"})]}),(0,r.jsxs)("div",{className:"mx-auto max-w-2xl space-y-6 px-4 sm:px-6 lg:px-8",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Bildirishnomalar"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-neutral-500 dark:text-neutral-400",children:"Hisobingizga tegishli xabarlarni qaysi kanal orqali olishni tanlang."})]}),(0,r.jsx)(g,{}),(0,r.jsxs)("div",{className:"rounded-2xl border border-neutral-200 bg-white p-6 dark:border-neutral-700 dark:bg-neutral-800",children:[(0,r.jsx)("h3",{className:"text-base font-semibold",children:"Brauzer bildirishnomalari"}),(0,r.jsx)("p",{className:"mt-1 text-sm text-neutral-500 dark:text-neutral-400",children:"Sayt yopiq bo'lganda ham brauzer orqali xabar keladi. Har bir qurilma uchun alohida yoqiladi."}),(0,r.jsx)("div",{className:"mt-4 flex justify-start",children:(0,r.jsx)(b.A,{})})]}),(0,r.jsxs)("div",{className:"rounded-2xl border border-neutral-200 bg-neutral-50 p-6 text-sm text-neutral-600 dar
1k:border-neutral-700 dark:bg-neutral-900 dark:text-neutral-300",children:[(0,r.jsx)("p",{className:"font-medium",children:"Qanday xabarlar keladi?"}),(0,r.jsxs)("ul",{className:"mt-2 list-inside list-disc space-y-1",children:[(0,r.jsx)("li",{children:"Test natijangiz tayyor bo'lganda"}),(0,r.jsx)("li",{children:"Yangi sertifikat yoki yutuq haqida"}),(0,r.jsx)("li",{children:"Saytda muhim yangiliklar chiqqanda"})]}),(0,r.jsx)("p",{className:"mt-3 text-xs text-neutral-500 dark:text-neutral-400",children:"Xabarlar faqat sizga tegishli bo'ladi â ommaviy e'lonlar Telegram kanalida yuboriladi."})]})]})]})}},63544:(e,t,a)=>{(window.__NEXT_P=window.__NEXT_P||[]).push(["/dashboard/notifications",function(){return a(61e3)}])},73529:(e,t,a)=>{"use strict";a.d(t,{F4:()=>d,Hr:()=>i,Nf:()=>g,PY:()=>u,VW:()=>f,XP:()=>m,gK:()=>x,jK:()=>c,jS:()=>h,jp:()=>l,r7:()=>o,vT:()=>b});var r=a(91040),n=a(15310);let s=r.A.create({baseURL:(0,n.hY)(),timeout:15e3});function i(e){let t=e.response?.data;if(t&&"object"==typeof t){if("string"==typeof t.error&&t.error)return t.error;if("string"==typeof t.message&&t.message)return t.message}return e.message||"So'rov bajarilmadi"}async function l(){let{data:e}=await s.get("/auth/me");return e}async function o(e){let{data:t}=await s.patch("/users/me",e);return t}async function d(e){let t=new FormData;t.append("avatar",e);let{data:a}=await s.post("/users/me/avatar",t);return a.profile}async function u(e){let t=new FormData;t.append("cover",e);let{data:a}=await s.post("/users/me/cover",t);return a.profile}async function c(){let{data:e}=await s.get("/users/me/stats");return e}async function m(e=5,t=0){let{data:a}=await s.get("/tests/history",{params:{limit:e,offset:t}});return a}async function x(){let{data:e}=await s.get("/users/me/telegram");return e}async function h(){let{data:e}=await s.post("/users/me/telegram/link-code");return e}async function g(){let{data:e}=await s.post("/users/me/telegram/oidc-ticket");return e}async function b(e){let{data:t}=await s.patch("/users/me/telegram/settings",{notificationsEnabled:e});return t}async function f(){let{data:e}=await s.delete("/users/me/telegram");return e}s.interceptors.request.use(e=>{let t=(0,n.c4)();return t&&(e.headers.Authorization=`Bearer ${t}`),e})}},e=>{e.O(0,[1040,6290,636,6593,8792],()=>e(e.s=63544)),_N_E=e.O()}]);
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.