@@ -10,33 +10,37 @@ import { sleep } from '../../utils/time.js';
1010import './DeviceActionButton.scss' ;
1111
1212const types = {
13- open : {
14- variant : 'success' ,
15- icon : 'fa-solid fa-right-to-bracket' ,
13+ door : {
14+ open : {
15+ variant : 'success' ,
16+ icon : 'fa-solid fa-right-to-bracket' ,
17+ } ,
18+ open_alternative : {
19+ variant : 'success' ,
20+ icon : 'fa-solid fa-right-to-bracket' ,
21+ } ,
22+ lock : {
23+ variant : 'danger' ,
24+ icon : 'fa-solid fa-lock' ,
25+ } ,
26+ unlock : {
27+ variant : 'info' ,
28+ icon : 'fa-solid fa-lock-open' ,
29+ } ,
1630 } ,
17- open_alternative : {
18- variant : 'success' ,
19- icon : 'fa-solid fa-right-to-bracket' ,
20- } ,
21- lock : {
22- variant : 'danger' ,
23- icon : 'fa-solid fa-lock' ,
24- } ,
25- unlock : {
26- variant : 'info' ,
27- icon : 'fa-solid fa-lock-open' ,
28- } ,
29- turn_on : {
30- variant : 'success' ,
31- icon : 'fa-solid fa-lightbulb' ,
32- } ,
33- turn_off : {
34- variant : 'danger' ,
35- icon : 'fa-regular fa-lightbulb' ,
31+ light : {
32+ turn_on : {
33+ variant : 'success' ,
34+ icon : 'fa-solid fa-lightbulb' ,
35+ } ,
36+ turn_off : {
37+ variant : 'danger' ,
38+ icon : 'fa-regular fa-lightbulb' ,
39+ } ,
3640 } ,
3741} ;
3842const DeviceActionButton = ( {
39- deviceId ,
43+ device ,
4044 action,
4145 isDoorOpen = false ,
4246} ) => {
@@ -45,10 +49,10 @@ const DeviceActionButton = ({
4549 const {
4650 execute,
4751 error,
48- } = useDeviceAction ( deviceId , action ) ;
52+ } = useDeviceAction ( device . id , action ) ;
4953
5054 const { t} = useTranslation ( ) ;
51- const type = types ?. [ action ] || {
55+ const type = types ?. [ device . type ] ?. [ action ] || {
5256 variant : '' ,
5357 icon : '' ,
5458 } ;
@@ -74,7 +78,10 @@ const DeviceActionButton = ({
7478} ;
7579
7680DeviceActionButton . propTypes = {
77- deviceId : PropTypes . string . isRequired ,
81+ device : PropTypes . shape ( {
82+ id : PropTypes . string . isRequired ,
83+ type : PropTypes . string . isRequired ,
84+ } ) . isRequired ,
7885 action : PropTypes . string . isRequired ,
7986 isDoorOpen : PropTypes . bool ,
8087} ;
0 commit comments