1+ import { useMemo } from 'react' ;
12import { Volume } from '../../../types' ;
23import { useWebsocketContext } from '../../../utils/useWebsocketContext' ;
34import { IBasicVolumeReturn , useIBasicVolume } from './useIBasicVolume' ;
@@ -15,25 +16,31 @@ export function useIBasicVolumeWithFeedback(
1516 const { sendMessage, sendSimpleMessage } = useWebsocketContext ( ) ;
1617
1718 const baseVolume = useIBasicVolume ( path ) ;
18- if ( ! baseVolume ) {
19+
20+ return useMemo ( ( ) => {
21+ if ( ! baseVolume ) {
1922 console . log ( 'baseVolume is undefined' ) ;
2023 return undefined ;
21- }
22- if ( ! volumeState ) {
23- console . log ( 'volumeState is undefined' ) ;
24- return undefined ;
25- }
26- const setLevel = ( value : number ) => sendSimpleMessage ( `${ path } /level` , value ) ;
27- const muteOn = ( ) => sendMessage ( `${ path } /muteOn` , null ) ;
28- const muteOff = ( ) => sendMessage ( `${ path } /muteOff` , null ) ;
24+ }
25+
26+ if ( ! volumeState ) {
27+ console . log ( 'volumeState is undefined' ) ;
28+ return undefined ;
29+ }
30+
31+ const setLevel = ( value : number ) =>
32+ sendSimpleMessage ( `${ path } /level` , value ) ;
33+ const muteOn = ( ) => sendMessage ( `${ path } /muteOn` , null ) ;
34+ const muteOff = ( ) => sendMessage ( `${ path } /muteOff` , null ) ;
2935
30- return {
31- ...baseVolume ,
32- volumeState,
33- setLevel,
34- muteOn,
35- muteOff,
36- } ;
36+ return {
37+ ...baseVolume ,
38+ volumeState,
39+ setLevel,
40+ muteOn,
41+ muteOff,
42+ } ;
43+ } , [ baseVolume , volumeState , path , sendMessage , sendSimpleMessage ] ) ;
3744}
3845
3946export interface IBasicVolumeWithFeedbackReturn extends IBasicVolumeReturn {
@@ -42,32 +49,38 @@ export interface IBasicVolumeWithFeedbackReturn extends IBasicVolumeReturn {
4249 muteOn : ( ) => void ;
4350 muteOff : ( ) => void ;
4451}
45-
52+ /**
53+ * @deprecated use useIBasicVolumeWithFeedback instead
54+ */
4655export function useGetIBasicVolumeWithFeedback (
4756 path : string ,
4857 volumeState : Volume | undefined
4958) : IBasicVolumeWithFeedbackReturn | undefined {
5059 const { sendMessage, sendSimpleMessage } = useWebsocketContext ( ) ;
5160
5261 const baseVolume = useIBasicVolume ( path ) ;
53- if ( ! baseVolume ) {
62+
63+ return useMemo ( ( ) => {
64+ if ( ! baseVolume ) {
5465 console . log ( 'baseVolume is undefined' ) ;
5566 return undefined ;
56- }
57- if ( ! volumeState ) {
67+ }
68+ if ( ! volumeState ) {
5869 console . log ( 'volumeState is undefined' ) ;
5970 return undefined ;
60- }
71+ }
6172
62- const setLevel = ( value : number ) => sendSimpleMessage ( `${ path } /level` , value ) ;
63- const muteOn = ( ) => sendMessage ( `${ path } /muteOn` , null ) ;
64- const muteOff = ( ) => sendMessage ( `${ path } /muteOff` , null ) ;
73+ const setLevel = ( value : number ) =>
74+ sendSimpleMessage ( `${ path } /level` , value ) ;
75+ const muteOn = ( ) => sendMessage ( `${ path } /muteOn` , null ) ;
76+ const muteOff = ( ) => sendMessage ( `${ path } /muteOff` , null ) ;
6577
66- return {
67- ...baseVolume ,
68- volumeState,
69- setLevel,
70- muteOn,
71- muteOff,
72- } ;
78+ return {
79+ ...baseVolume ,
80+ volumeState,
81+ setLevel,
82+ muteOn,
83+ muteOff,
84+ } ;
85+ } , [ baseVolume , volumeState , path , sendMessage , sendSimpleMessage ] ) ;
7386}
0 commit comments