PageSourceSearch

https://ethbelgrade.rs/_next/static/chunks/pages/im-going-c0db08f1779b3679.js

js ethbelgrade.rs collected 2026-10-03 23:43:42 UTC 10,515 bytes, 1 lines download raw bytes

1(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[591],{6560:function(e,t,n){(window.__NEXT_P=window.__NEXT_P||[]).push(["/im-going",function(){return n(2026)}])},2026:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return b}});var r=n(5893),o=n(9008),a=n.n(o),i=n(3437),c=n(7294),s=n(5678),l=n(4184),d=n.n(l),h=n(4926),u=n(9677),g=n.n(u);let m={x:933,y:85,width:591,height:730},w="im-going-to-eth-belgrade.jpg",p="ebg_pending",x=()=>!!(window.matchMedia&&window.matchMedia("(pointer: coarse)").matches),_=e=>new Promise((t,n)=>{let r=new Image;r.onload=()=>t(r),r.onerror=()=>n(Error("Failed to load image: ".concat(e))),r.src=e}),f=()=>(0,r.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"})}),y=()=>(0,r.jsx)("svg",{width:"18",height:"18",viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:(0,r.jsx)("path",{d:"M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455zM5.337 7.433a2.062 2.062 0 1 1 0-4.124 2.062 2.062 0 0 1 0 4.124zM7.119 20.452H3.555V9h3.564zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0z"})}),j=()=>{let[e,t]=(0,c.useState)(!1),[n,o]=(0,c.useState)(!1),[a,i]=(0,c.useState)(1),l=(0,c.useRef)(null),u=(0,c.useRef)(null),j=(0,c.useRef)(null),v=(0,c.useRef)({zoom:1,x:0,y:0}),b=(0,c.useRef)(null),C=(0,c.useRef)(null),k=(0,c.useRef)(null),N=(0,c.useRef)(!1),R=(e,t)=>{let n=Math.max(m.width/e.width,m.height/e.height),r=e.width*n*t.zoom,o=e.height*n*t.zoom;return{width:r,height:o,x:m.x+(m.width-r)/2+t.x,y:m.y+(m.height-o)/2+t.y}},z=e=>{let t=j.current;if(!t)return e;let n=Math.max(m.width/t.width,m.height/t.height),r=(t.width*n*e.zoom-m.width)/2,o=(t.height*n*e.zoom-m.height)/2;return{zoom:e.zoom,x:Math.min(r,Math.max(-r,e.x)),y:Math.min(o,Math.max(-o,e.y))}},B=()=>{let e=l.current;if(!e)return;let t=e.getContext("2d");t.imageSmoothingEnabled=!0,t.imageSmoothingQuality="high",t.fillStyle="#ffffff",t.fillRect(0,0,1600,900);let n=j.current;if(n){let e=R(n,v.current);t.save(),t.beginPath(),t.rect(m.x,m.y,m.width,m.height),t.clip(),t.drawImage(n,e.x,e.y,e.width,e.height),t.restore()}u.current&&t.drawImage(u.current,0,0,1600,900)},G=e=>{j.current=e,v.current={zoom:1,x:0,y:0},i(1),t(!!e),B()},I=async e=>{G(await _(e))},E=()=>{clearInterval(k.current),k.current=null,o(!1)},L=async e=>{if(e&&!N.current&&("connected"===e.type||"connect-error"===e.type)){N.current=!0;try{localStorage.removeItem(p)}catch(e){}if(E(),"connect-error"===e.type){s.Am.error("X connect failed: ".concat(e.message||"unknown error"));return}try{await I(e.avatar)}catch(e){s.Am.error("Couldn't load the profile picture — try Add photo instead")}}};(0,c.useEffect)(()=>{_("/images/im-going-template.png").then(e=>{u.current=e,B()}).catch(()=>s.Am.error("Failed to load the card template"));let e=e=>{e.origin===window.location.origin&&L(e.data||{})},t=()=>{let e;try{e=JSON.parse(localStorage.getItem(p))}catch(e){return}if(e&&e.data){if(e.ts&&Date.now()-e.ts>12e4){try{localStorage.removeItem(p)}catch(e){}return}L(e.data)}},n=e=>{e.key===p&&e.newValue&&t()};return window.addEventListener("message",e),window.addEventListener("storage",n),t(),()=>{window.removeEventListener("message",e),window.removeEventListener("storage",n),clearInterval(k.current)}},[]);let S=e=>{let t=l.current.getBoundingClientRect();return{x:(e.clientX-t.left)/t.width*1600,y:(e.clientY-t.top)/t.height*900}},D=e=>{if(!j.current)return;let t=S(e),n=t.x>=m.x&&t.x<=m.x+m.width&&t.y>=m.y&&t.y<=m.y+m.height;n&&(e.currentTarget.setPointerCapture(e.pointerId),b.current={startX:e.clientX,startY:e.clientY,x:v.current.x,y:v.current.y})},M=e=>{let t=b.current;if(!t)return;let n=l.current.getBoundingClientRect(),r=1600/n.width;v.current=z({zoom:v.current.zoom,x:t.x+(e.clientX-t.startX)*r,y:t.y+(e.clientY-t.startY)*r}),B()},T=()=>{b.current=null},H=e=>{let t=Number(e.target.value);v.current=z({...v.current,zoom:t}),i(t),B()},P=async e=>{var t;let n=null===(t=e.target.files)||void 0===t?void 0:t[0];if(e.target.value="",!n)return;let r=URL.createObjectURL(n);try{await I(r)}
1catch(e){s.Am.error("Couldn't read that image — try a different one")}finally{URL.revokeObjectURL(r)}},X=()=>{N.current=!1;let e="/api/x/login";if(x()){window.location.href=e;return}let t=Math.max(0,(window.screen.width-600)/2),n=Math.max(0,(window.screen.height-760)/2),r=window.open(e,"oauth","width=".concat(600,",height=").concat(760,",left=").concat(t,",top=").concat(n));if(!r){window.location.href=e;return}o(!0),k.current=setInterval(()=>{r.closed&&E()},500)},F=()=>new Promise(e=>l.current.toBlob(e,"image/jpeg",.92)),U=e=>{let t=URL.createObjectURL(e),n=document.createElement("a");n.href=t,n.download=w,n.click(),setTimeout(()=>URL.revokeObjectURL(t),1e3)},A=async()=>{U(await F())},Z=async e=>{let t="x"===e?"I'm going to @ethbelgrade \uD83C\uDDF7\uD83C\uDDF8\n\nTwo days of talks around Ethereum with industry-leading professionals, institutions, and projects. Part of Belgrade Blockchain Week — 2,000+ attendees, 30+ side events.\n\n26–27 August, Sava Centar.\n\nFree tickets: ethbelgrade.rs":"I'm going to ETH Belgrade \uD83C\uDDF7\uD83C\uDDF8\n\nTwo days of talks, networking, practical insights, and conversations around Ethereum with industry-leading professionals, institutions, companies, and projects. Part of Belgrade Blockchain Week with over 2,000 attendees, 30+ side events, and a full week of happenings.\n\n26-27 August, Sava Centar, Belgrade.\n\nFree tickets: ethbelgrade.rs",n=await F();if("x"===e&&n&&x()){let e=new File([n],w,{type:"image/jpeg"});if(navigator.canShare&&navigator.canShare({files:[e]}))try{await navigator.share({files:[e],text:t});return}catch(e){if(e&&"AbortError"===e.name)return}}U(n),"x"===e?window.open("https://x.com/intent/tweet?text=".concat(encodeURIComponent(t)),"_blank","noopener"):window.open("https://www.linkedin.com/feed/?shareActive=true&text=".concat(encodeURIComponent(t)),"_blank","noopener")},O=()=>{G(null)};return(0,r.jsx)("div",{className:g().imGoing,children:(0,r.jsxs)("div",{className:"container",children:[(0,r.jsxs)("div",{className:g().intro,children:[(0,r.jsx)("h1",{className:g().title,children:"See you in Belgrade?"}),(0,r.jsx)("p",{className:g().subtitle,children:"Create your card and let everyone know you're going to ETH Belgrade."})]}),(0,r.jsx)("div",{className:g().cardWrapper,children:(0,r.jsx)("canvas",{ref:l,width:1600,height:900,className:d()(g().card,{[g().cardDraggable]:e}),"aria-label":"I'm going to ETH Belgrade card",onPointerDown:D,onPointerMove:M,onPointerUp:T,onPointerCancel:T})}),(0,r.jsx)("input",{ref:C,type:"file",accept:"image/*",className:g().fileInput,onChange:P}),e?(0,r.jsxs)("div",{className:g().controls,children:[(0,r.jsxs)("div",{className:g().zoomRow,children:[(0,r.jsx)("span",{className:g().zoomLabel,children:"Zoom"}),(0,r.jsx)("input",{type:"range",min:"1",max:3,step:"0.01",value:a,onChange:H,className:g().zoomSlider,"aria-label":"Zoom photo"})]}),(0,r.jsx)("p",{className:g().dragHint,children:"Drag the photo to reposition it"}),(0,r.jsxs)("div",{className:g().shareRow,children:[(0,r.jsxs)(h.Z,{styleType:"red",className:g().shareButton,onClick:()=>Z("x"),children:[(0,r.jsx)(f,{})," Share on X"]}),(0,r.jsxs)(h.Z,{styleType:"red",className:g().shareButton,onClick:()=>Z("linkedin"),children:[(0,r.jsx)(y,{})," Share on LinkedIn"]})]}),(0,r.jsxs)("div",{className:g().secondaryRow,children:[(0,r.jsx)("button",{type:"button",className:g().textButton,onClick:A,children:"↓ Download"}),(0,r.jsx)("span",{className:g().dot,children:"\xb7"}),(0,r.jsx)("button",{type:"button",className:g().textButton,onClick:O,children:"↺ Change photo"})]}),(0,r.jsx)("p",{className:g().hint,children:"Post text is ready. X attaches the card for you; for LinkedIn, add the downloaded card to your post."})]}):(0,r.jsxs)("div",{className:g().controls,children:[(0,r.jsx)(h.Z,{styleType:"red",onClick:()=>{var e;return null===(e=C.current)||void 0===e?void 0:e.click()},children:"+ Add photo"}),(0,r.jsx)("p",{className:g().orText,children:"or use your profile picture"}),(0,r.jsxs)(h.Z,{ghost:!0,styleType:"red",className:g().connectButton,disabled:n,onClick:X,children:[(0,r.jsx)(f,{})," ",n?"Connecting...":"Connect X"]})]})]})})};var v=n(4661);function b(){let e="I'm going to ETH Belgrade",t='Create your personalized "I\'m going to ETH Belgrade" card and share it on X and LinkedIn. '.concat(v.Hu," ").concat(v.oP,", Sava Centar — see you in Belgrade!");return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(a(),{children:[(0,r.jsx)("title",{children:e}),(0,r.jsx)("meta",{name:"description",content:t}),(0,r.jsx)("meta",{property:"og:title",content:e}),(0,r.jsx)("meta",{property:"og:description",content:t}),(0,r.jsx)("meta",{property:"og:type",content:"website"}),(0,r.jsx)("meta",{property:"og:image",content:"https://ethbelgrade.rs/eth-belgrade-og-2026.jpg"}),(0,r.jsx)("meta",{name:"twitter:card",content:"summary_large_image"}),(0,r.jsx)("meta",{name:"twitter:title",content:e}),(0,r.jsx)("meta",{name:"twitter:description",content:t}),(0,r.jsx)("meta",{name:"twitter:site",content:"@ethbelgrade"}),(0,r.jsx)("meta",{name:"twitter:image",content:"https://ethbelgrade.rs/eth-belgrade-og-2026.jpg"}),(0,r.jsx)("link",{rel:"icon",href:"/favicon.ico"})]}),(0,r.jsx)(j,{})]})}b.getLayout=i.Z},9677:function(e){e.exports={imGoing:"imGoing_imGoing__q69Mp",intro:"imGoing_intro__U42G_",title:"imGoing_title__Pvoak",subtitle:"imGoing_subtitle__nG_Iw",cardWrapper:"imGoing_c
1ardWrapper__GkZn0",card:"imGoing_card__dChAz",cardDraggable:"imGoing_cardDraggable__2h24m",zoomRow:"imGoing_zoomRow__XtaZ2",zoomLabel:"imGoing_zoomLabel__cclbw",zoomSlider:"imGoing_zoomSlider__UjDp2",dragHint:"imGoing_dragHint__qscho",fileInput:"imGoing_fileInput__n5dih",controls:"imGoing_controls__Y2kFK",orText:"imGoing_orText__C_w3t",connectButton:"imGoing_connectButton__AM_b7",shareRow:"imGoing_shareRow__EfX4O",shareButton:"imGoing_shareButton__INJN9",secondaryRow:"imGoing_secondaryRow__zE_FN",dot:"imGoing_dot__W6S3D",textButton:"imGoing_textButton__FPfds",hint:"imGoing_hint__5w_w_"}}},function(e){e.O(0,[938,437,774,888,179],function(){return e(e.s=6560)}),_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.