@@ -13,7 +13,7 @@ export const useFavouriteModule = () => {
1313 const { NethVoiceAPI } = useLoggedNethVoiceAPI ( )
1414 useEffect ( ( ) => {
1515 rawSpeedDials && filterFavourites ( rawSpeedDials , speeddialsModule ?. favouriteOrder || FilterTypes . AZ )
16- } , [ rawSpeedDials , speeddialsModule ?. favouriteOrder ] )
16+ } , [ rawSpeedDials , speeddialsModule ?. favouriteOrder , operators ] )
1717
1818 const getSorter = ( order : FilterTypes ) => {
1919 let sorter : ( ( a : ContactType , b : ContactType ) => number ) | undefined = undefined
@@ -32,14 +32,28 @@ export const useFavouriteModule = () => {
3232 }
3333
3434 const filterFavourites = ( rawSpeeddials : ContactType [ ] , order : FilterTypes ) => {
35- const favourites = rawSpeeddials . filter ( isFavourite ) . sort ( getSorter ( order ) )
35+ const favourites = rawSpeeddials
36+ . filter ( isFavourite )
37+ . filter ( isActiveOperator )
38+ . sort ( getSorter ( order ) )
3639 setFavourites ( ( ) => [ ...favourites ] )
3740 }
3841
3942 const isFavourite = ( contact : ContactType ) => {
4043 return contact . notes ?. includes ( SpeeddialTypes . FAVOURITES )
4144 }
4245
46+ const isActiveOperator = ( contact : ContactType ) => {
47+ // If no operators data or no contact name, don't show the favorite
48+ if ( ! operators ?. groups || ! contact . name ) {
49+ return false
50+ }
51+ // Check if the contact's username exists in any operator group
52+ return Object . values ( operators . groups ) . some ( group =>
53+ group . users . includes ( contact . name ! )
54+ )
55+ }
56+
4357 const isSearchAlsoAFavourite = ( contact : SearchData ) => {
4458 const foundedContact = favourites ?. find ( ( s ) => s . speeddial_num === ( contact . speeddial_num || contact . extension ) )
4559 if ( foundedContact ) {
0 commit comments