gecko-package
Version:
2 lines (1 loc) • 3.53 kB
JavaScript
import e,{useState as n,useEffect as t}from"react";import r from"next/link";import o from"next/image";function a(e,n,t,r){return new(t||(t=Promise))((function(o,a){function c(e){try{i(r.next(e))}catch(e){a(e)}}function l(e){try{i(r.throw(e))}catch(e){a(e)}}function i(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(c,l)}i((r=r.apply(e,n||[])).next())}))}function c(e,n){var t,r,o,a,c={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return a={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function l(l){return function(i){return function(l){if(t)throw new TypeError("Generator is already executing.");for(;a&&(a=0,l[0]&&(c=0)),c;)try{if(t=1,r&&(o=2&l[0]?r.return:l[0]?r.throw||((o=r.return)&&o.call(r),0):r.next)&&!(o=o.call(r,l[1])).done)return o;switch(r=0,o&&(l=[2&l[0],o.value]),l[0]){case 0:case 1:o=l;break;case 4:return c.label++,{value:l[1],done:!1};case 5:c.label++,r=l[1],l=[0];continue;case 7:l=c.ops.pop(),c.trys.pop();continue;default:if(!(o=c.trys,(o=o.length>0&&o[o.length-1])||6!==l[0]&&2!==l[0])){c=0;continue}if(3===l[0]&&(!o||l[1]>o[0]&&l[1]<o[3])){c.label=l[1];break}if(6===l[0]&&c.label<o[1]){c.label=o[1],o=l;break}if(o&&c.label<o[2]){c.label=o[2],c.ops.push(l);break}o[2]&&c.ops.pop(),c.trys.pop();continue}l=n.call(e,c)}catch(e){l=[6,e],r=0}finally{t=o=0}if(5&l[0])throw l[1];return{value:l[0]?l[1]:void 0,done:!0}}([l,i])}}}"function"==typeof SuppressedError&&SuppressedError;var l=function(){return e.createElement("div",{className:"loader"})},i=function(t){var r=t.children,o=t.onClick,i=t.disabled,s=void 0!==i&&i,u=t.className,m=void 0===u?"":u,f=t.style,p=t.hasBorder,d=void 0!==p&&p;!function(n){try{e.Children.only(n)}catch(e){throw new Error("ButtonWrapper expects only one child element. If you intend to use multiple elements, please enclose them in a parent element, as shown below:\n\n<ButtonWrapper>\n <>\n <span>First component</span>\n <span>Second component</span>\n </>\n</ButtonWrapper>")}}(r);var h=n(!1),v=h[0],b=h[1];return e.createElement("div",{className:"container ".concat(d&&"border"),onClick:function(){return a(void 0,void 0,void 0,(function(){return c(this,(function(e){switch(e.label){case 0:return e.trys.push([0,,2,3]),b(!0),[4,o()];case 1:return e.sent(),[3,3];case 2:return b(!1),[7];case 3:return[2]}}))}))}},v?e.createElement("div",{className:"loaderContainer"},e.createElement(l,null)):e.createElement("button",{disabled:s||v,className:"".concat(m),style:f},r))},s=function(){var r=n(!1),o=r[0],a=r[1];t((function(){var e=window.matchMedia("(prefers-color-scheme: dark)").matches;a(e)}),[]);return t((function(){document.body.classList.toggle("dark-mode",o)}),[o]),e.createElement(i,{onClick:function(){a((function(e){return!e}))}},e.createElement("span",null,o?"🌙":"☀️"))},u=function(){return e.createElement(e.Fragment,null,e.createElement("div",{className:"topBar"},e.createElement(r,{href:"/"},e.createElement("div",{className:"logo"},e.createElement(o,{src:"/logo.svg",alt:"Logo",width:50,height:50}),e.createElement("span",{className:"font-bold"},"Bence Kovács's Website"))),e.createElement("nav",{className:"nav"},e.createElement(r,{href:"/"},e.createElement(i,{onClick:function(){}},e.createElement("span",null,"Home"))),e.createElement(r,{href:"/about"},e.createElement(i,{onClick:function(){}},e.createElement("span",null,"About"))),e.createElement(s,null))))};export{i as ButtonWrapper,l as Loader,u as TopBar};