diff --git a/src/js/components/Fields/OutputControl.js b/src/js/components/Fields/OutputControl.js index 1bee0bb2..0c4d334d 100755 --- a/src/js/components/Fields/OutputControl.js +++ b/src/js/components/Fields/OutputControl.js @@ -8,7 +8,13 @@ import Thumbnail from '../Thumbnail'; import LinksSentence from '../LinksSentence'; import DropdownField from './DropdownField'; import * as pusherActions from '../../services/pusher/actions'; -import * as snapcastActions from '../../services/snapcast/actions'; +import { + setGroupStream, + setClientMute, + setClientVolume, + setStreamingEnabled, + controlStream, +} from '../../services/snapcast/actions'; import { sortItems, indexToArray } from '../../util/arrays'; import { titleCase } from '../../util/helpers'; import { I18n, i18n } from '../../locale'; @@ -38,10 +44,10 @@ const Header = ({ let onClick = null; switch (playbackStatus) { case 'playing': - if (canPause) onClick = () => dispatch(snapcastActions.controlStream(id, 'pause')); + if (canPause) onClick = () => dispatch(controlStream(id, 'pause')); break; default: - if (canPlay) onClick = () => dispatch(snapcastActions.controlStream(id, 'play')); + if (canPlay) onClick = () => dispatch(controlStream(id, 'play')); break; } @@ -88,6 +94,7 @@ const Header = ({ }; const Group = ({ + setExpanded, group: { id: groupId, name: groupName, @@ -111,6 +118,7 @@ const Group = ({ className="text" to={`/settings/services/snapcast/${groupId}`} scrollTo="#services-snapcast-groups" + onClick={() => setExpanded(false)} > {titleCase(groupName)} @@ -121,7 +129,7 @@ const Group = ({ options={allStreams.map((s) => ({ value: s.id, label: titleCase(s.id) }))} noLabel handleChange={ - (value) => dispatch(snapcastActions.setGroupStream(groupId, value)) + (value) => dispatch(setGroupStream(groupId, value)) } /> @@ -143,14 +151,14 @@ const Group = ({ noTooltip mute={mute} onMuteChange={ - (value) => dispatch(snapcastActions.setClientMute(clientId, value)) + (value) => dispatch(setClientMute(clientId, value)) } /> dispatch(snapcastActions.setClientVolume(clientId, value)) + (value) => dispatch(setClientVolume(clientId, value)) } /> @@ -162,11 +170,13 @@ const Group = ({ ); }; -const Outputs = () => { +const Outputs = ({ setExpanded }) => { + const dispatch = useDispatch(); const allGroups = indexToArray(useSelector((state) => state.snapcast.groups || {})); const allStreams = useSelector((state) => state.snapcast.streams || {}); const allServers = indexToArray(useSelector((state) => state.mopidy.servers || {})); const groupsByStream = groupBy(allGroups, 'stream_id'); + const { streaming_enabled } = useSelector((state) => state?.snapcast || {}); return ( @@ -180,10 +190,29 @@ const Outputs = () => { return (
- {groups.map((group) => )} + { + groups.map( + (group) => ( + + ) + ) + }
); })} +
+ +
); } @@ -241,7 +270,7 @@ const OutputControl = ({ force_expanded }) => {
{!isEmpty(commands) && } - {snapcastEnabled && } + {snapcastEnabled && }
); diff --git a/src/js/components/Snapcast.js b/src/js/components/Snapcast.js index ff74ee50..4f342e89 100755 --- a/src/js/components/Snapcast.js +++ b/src/js/components/Snapcast.js @@ -41,18 +41,6 @@ const Snapcast = (props) => { -