zigbee2mqtt-windfront
Version:
[](https://npmjs.org/package/zigbee2mqtt-windfront) [](https://github.com/Nerivec/zigbee2mqtt-windf
2 lines (1 loc) • 3.66 kB
JavaScript
import{r as c,b as f,b5 as C,a as y,k,av as N,c as u,j as s,C as x,T as j}from"./index-C9teBVht.js";import{D as g}from"./DashboardFeatureWrapper-CC4xEX29.js";import{F}from"./Feature-NdqklTM_.js";import{g as w}from"./index-Dm1jDR4v.js";import{I as _}from"./InputField-CoouO8KX.js";import{S as $}from"./SelectField-Cjwi2kGD.js";const L=c.memo(({sourceIdx:i,target:l,deviceState:t})=>{const{t:o}=f("scene"),[e,m]=c.useState(0),[r,d]=c.useState(""),b=c.useMemo(()=>C(l),[l]),p=y(k(n=>N(l)?n.deviceScenesFeatures[i][l.ieee_address]??[]:[])),v=c.useCallback(async n=>{await u(i,`${l.friendly_name}/set`,n)},[i,l]),h=c.useCallback(async()=>{const n={ID:e,name:r||`Scene ${e}`};await u(i,`${l.friendly_name}/set`,{scene_store:n})},[i,l,e,r]),a=c.useMemo(()=>e>=0&&e<=255&&!b.find(n=>n.id===e),[e,b]);return s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"text-lg font-semibold",children:o(n=>n.add_update_header)}),s.jsxs("div",{className:"mb-3",children:[s.jsx(_,{name:"scene_id",label:o(n=>n.scene_id),type:"number",value:e,onChange:n=>!!n.target.value&&m(n.target.valueAsNumber),min:0,max:255,required:!0}),s.jsx(_,{name:"scene_name",label:o(n=>n.scene_name),type:"text",value:r,placeholder:`Scene ${e}`,onChange:n=>d(n.target.value),required:!0}),p.length>0&&s.jsx("div",{className:"card card-border bg-base-100 shadow my-2",children:s.jsx("div",{className:"card-body p-4",children:p.map(n=>s.jsx(F,{feature:n,device:l,deviceState:t,onChange:v,featureWrapperClass:g,minimal:!0,parentFeatures:[]},w(n)))})})]}),s.jsx(x,{disabled:!a,onClick:h,className:"btn btn-primary",children:o(n=>n.store)})]})}),R=c.memo(({onSceneSelected:i,scenes:l=[],value:t})=>{const{t:o}=f("scene");return l.length>0?s.jsxs($,{name:"scene_picker",label:o(e=>e.scene_name),value:t?.id??"",onChange:e=>!e.target.validationMessage&&!!e.target.value&&i(Number.parseInt(e.target.value,10)),children:[s.jsx("option",{value:"",disabled:!0,children:o(e=>e.select_scene)}),l.map(e=>s.jsxs("option",{value:e.id,children:[e.id,": ",e.name]},e.id))]}):s.jsx(_,{name:"scene_picker",label:o(e=>e.scene_id),type:"number",value:t?.id??"",onChange:e=>!e.target.validationMessage&&!!e.target.value&&i(e.target.valueAsNumber),min:0,max:255})}),T=c.memo(({sourceIdx:i,target:l})=>{const{t}=f(["scene","common"]),[o,e]=c.useState({id:0,name:"Scene 0"}),[m,r]=c.useState(!0),d=c.useMemo(()=>C(l),[l]),b=c.useCallback(a=>{r(!1);const n=d.find(S=>S.id===a);e(n!==void 0?n:{id:a,name:`Scene ${a}`})},[d]),p=c.useCallback(async()=>await u(i,`${l.friendly_name}/set`,{scene_recall:o.id}),[i,l.friendly_name,o.id]),v=c.useCallback(async()=>await u(i,`${l.friendly_name}/set`,{scene_remove:o.id}),[i,l.friendly_name,o.id]),h=c.useCallback(async()=>await u(i,`${l.friendly_name}/set`,{scene_remove_all:""}),[i,l.friendly_name]);return s.jsxs(s.Fragment,{children:[s.jsx("h2",{className:"text-lg font-semibold",children:t(a=>a.manage_scenes_header)}),s.jsx("div",{className:"mb-3",children:s.jsx(R,{onSceneSelected:b,value:m?void 0:o,scenes:d})}),s.jsxs("div",{className:"join join-horizontal w-full",children:[s.jsx(x,{disabled:m,onClick:p,className:"btn btn-success join-item flex-1",children:t(a=>a.recall)}),s.jsx(j,{disabled:m,onClick:v,className:"btn btn-error join-item flex-1",title:t(a=>a.remove),modalDescription:t(a=>a.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:t(a=>a.cancel,{ns:"common"}),children:t(a=>a.remove)}),s.jsx(j,{onClick:h,className:"btn btn-error btn-outline join-item flex-1",title:t(a=>a.remove_all),modalDescription:t(a=>a.dialog_confirmation_prompt,{ns:"common"}),modalCancelLabel:t(a=>a.cancel,{ns:"common"}),children:t(a=>a.remove_all)})]})]})});export{L as A,T as R};