UNPKG

ocearo-ui

Version:

Ocean Robot UI: Sailing made smarter

1 lines 4.92 kB
"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[12],{12012:function(e,t,n){n.r(t),n.d(t,{default:function(){return p}});var l=n(57437),r=n(2265),a=n(51268),i=n(35217),s=n(53082);let c={waterTemp:{key:"waterTemp",path:"environment.water.temperature",icon:i.L02,label:"Water Temperature",format:e=>"".concat(e,"\xb0C"),transform:s.G5},airTemp:{key:"airTemp",path:"environment.outside.temperature",icon:i.whq,label:"Air Temperature",format:e=>"".concat(e,"\xb0C"),transform:s.G5},exhaustTemp:{key:"exhaustTemp",path:"propulsion.main.exhaustTemperature",icon:i.Rpv,label:"Exhaust Temperature",format:e=>"".concat(e,"\xb0C"),transform:s.G5},fridgeTemp:{key:"fridgeTemp",path:"environment.inside.fridge.temperature",icon:i.jOV,label:"Fridge Temperature",format:e=>"".concat(e,"\xb0C"),transform:s.G5}},o=e=>{let{mode:t,value:n,icon:r,nightMode:i}=e;return n||0===n?(0,l.jsxs)("div",{className:"flex items-center text-2xl ".concat(i?"text-red-500":"text-white"),children:[(0,l.jsx)(a.G,{icon:r,className:"mr-2"}),(0,l.jsx)("span",{children:c[t].format(n)})]}):null};var u=()=>{let{nightMode:e,getSignalKValue:t}=(0,s.yC)(),[n,a]=(0,r.useState)([]),[i,u]=(0,r.useState)(null),m=(0,r.useMemo)(()=>Object.entries(c).reduce((e,n)=>{let[l,r]=n,a=t(r.path);return e[l]=null!==a?r.transform(a):null,e},{}),[t]);(0,r.useEffect)(()=>{let e=Object.entries(m).filter(e=>{let[t,n]=e;return null!==n}).map(e=>{let[t]=e;return t});a(e),e.length>0&&!e.includes(i)&&u(e[0])},[m,i]);let x=()=>{if(n.length<=1)return;let e=(n.indexOf(i)+1)%n.length;u(n[e])};return 0===n.length?(0,l.jsx)("div",{className:"text-2xl ".concat(e?"text-red-500":"text-white"),children:(0,l.jsx)("span",{children:"NA"})}):(0,l.jsx)("div",{className:"cursor-pointer flex items-center space-x-2",onClick:x,title:"Toggle Temperature Display (".concat(n.length," sensors available)"),role:"button",tabIndex:0,onKeyPress:e=>"Enter"===e.key&&x(),"aria-label":i?c[i].label:"No temperature data available",children:i&&(0,l.jsx)(o,{mode:i,value:m[i],icon:c[i].icon,nightMode:e})})};let m={pressure:{key:"pressure",path:"environment.outside.pressure",icon:i.uM9,format:e=>"".concat(e," hPa"),transform:s.NU},humidity:{key:"humidity",path:"environment.inside.relativeHumidity",icon:i.Zkk,format:e=>"".concat(e.toFixed(1),"%"),transform:e=>100*e},voc:{key:"voc",path:"environment.inside.voc",icon:i.DSs,format:e=>"".concat(e," ppm"),transform:e=>e}},x=e=>{let{mode:t,value:n,icon:r,nightMode:i}=e;return n||0===n?(0,l.jsxs)("div",{className:"flex items-center text-2xl ".concat(i?"text-red-500":"text-white"),children:[(0,l.jsx)(a.G,{icon:r,className:"mr-2"}),(0,l.jsx)("span",{children:m[t].format(n)})]}):null};var d=()=>{let{nightMode:e,getSignalKValue:t}=(0,s.yC)(),[n,a]=(0,r.useState)([]),[i,c]=(0,r.useState)(null),o=(0,r.useMemo)(()=>Object.entries(m).reduce((e,n)=>{let[l,r]=n,a=t(r.path);return e[l]=null!==a?r.transform(a):null,e},{}),[t]);(0,r.useEffect)(()=>{let e=Object.entries(o).filter(e=>{let[t,n]=e;return null!==n}).map(e=>{let[t]=e;return t});a(e),e.length>0&&!e.includes(i)&&c(e[0])},[o,i]);let u=()=>{if(n.length<=1)return;let e=(n.indexOf(i)+1)%n.length;c(n[e])};return 0===n.length?(0,l.jsx)("div",{className:"text-2xl ".concat(e?"text-red-500":"text-white"),children:(0,l.jsx)("span",{children:"NA"})}):(0,l.jsx)("div",{className:"cursor-pointer flex items-center space-x-2",onClick:u,title:"Toggle Environmental Display (".concat(n.length," modes available)"),role:"button",tabIndex:0,onKeyPress:e=>"Enter"===e.key&&u(),children:i&&(0,l.jsx)(x,{mode:i,value:o[i],icon:m[i].icon,nightMode:e})})};let h=e=>{let{icon:t,onClick:n,label:r,textColor:i}=e;return(0,l.jsx)("button",{onClick:n,className:"".concat(i," text-2xl flex items-center justify-center hover:text-gray-300 transition-colors duration-200"),"aria-label":r,children:(0,l.jsx)(a.G,{icon:t})})};var p=e=>{let{setRightView:t,toggleSettings:n,toggleAppMenu:r}=e,{nightMode:a}=(0,s.yC)(),c=a?"text-oNight":"text-white",o=[{section:"left",items:[{icon:i.lnS,onClick:()=>n(),label:"Settings"}]},{section:"center",items:[{icon:i.tLL,onClick:()=>t("navigation"),label:"Navigation"},{icon:i.S9Y,onClick:()=>t("weather"),label:"Weather"},{icon:i.szN,onClick:r,label:"App Menu"},{icon:i.iGi,onClick:()=>t("manual"),label:"Manual"},{icon:i.HLz,onClick:()=>t("instrument"),label:"Instrument"}]}],m=e=>{let t=o.find(t=>t.section===e);return t?t.items.map((t,n)=>(0,l.jsx)(h,{icon:t.icon,onClick:t.onClick,label:t.label,textColor:c},"".concat(e,"-").concat(n))):null};return(0,l.jsxs)("div",{className:"flex items-center w-full h-full bg-black px-4",children:[(0,l.jsxs)("div",{className:"flex-1 flex items-center space-x-10",children:[m("left"),(0,l.jsx)(u,{})]}),(0,l.jsx)("div",{className:"flex-1 flex items-center justify-center space-x-10",children:m("center")}),(0,l.jsx)("div",{className:"flex-1 flex items-center justify-end space-x-10",children:(0,l.jsx)(d,{})})]})}}}]);