|
@@ -5,6 +5,7 @@ import { DispatchContext, StateContext } from '../../context/state';
|
|
|
import { useMaster } from '../../hooks/master';
|
|
import { useMaster } from '../../hooks/master';
|
|
|
import { useKeepalive } from '../../hooks/socket';
|
|
import { useKeepalive } from '../../hooks/socket';
|
|
|
import { GlobalState } from '../../reducer/types';
|
|
import { GlobalState } from '../../reducer/types';
|
|
|
|
|
+import { isMaster } from '../../selectors';
|
|
|
import { getSongUrl } from '../../utils/url';
|
|
import { getSongUrl } from '../../utils/url';
|
|
|
import { Player } from '../player';
|
|
import { Player } from '../player';
|
|
|
import { uiProviders } from '../ui';
|
|
import { uiProviders } from '../ui';
|
|
@@ -21,7 +22,7 @@ const UI = uiProviders[uiProvider];
|
|
|
|
|
|
|
|
export const App: React.FC<Props> = ({ socket, state, dispatch }) => {
|
|
export const App: React.FC<Props> = ({ socket, state, dispatch }) => {
|
|
|
useKeepalive(socket);
|
|
useKeepalive(socket);
|
|
|
- const isMaster = useMaster(dispatch, state.player.master, state.myClientName);
|
|
|
|
|
|
|
+ useMaster(state, dispatch);
|
|
|
|
|
|
|
|
const onTimeUpdate = useCallback(
|
|
const onTimeUpdate = useCallback(
|
|
|
(currentTime: number): void => {
|
|
(currentTime: number): void => {
|
|
@@ -32,7 +33,7 @@ export const App: React.FC<Props> = ({ socket, state, dispatch }) => {
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
<>
|
|
<>
|
|
|
- {isMaster && !!state.player.songId && (
|
|
|
|
|
|
|
+ {isMaster(state) && !!state.player.songId && (
|
|
|
<Player
|
|
<Player
|
|
|
src={getSongUrl(state.player.songId)}
|
|
src={getSongUrl(state.player.songId)}
|
|
|
playing={state.player.playing}
|
|
playing={state.player.playing}
|
|
@@ -43,7 +44,7 @@ export const App: React.FC<Props> = ({ socket, state, dispatch }) => {
|
|
|
)}
|
|
)}
|
|
|
<StateContext.Provider value={state}>
|
|
<StateContext.Provider value={state}>
|
|
|
<DispatchContext.Provider value={dispatch}>
|
|
<DispatchContext.Provider value={dispatch}>
|
|
|
- <UI isMaster={isMaster} />
|
|
|
|
|
|
|
+ <UI isMaster={isMaster(state)} />
|
|
|
</DispatchContext.Provider>
|
|
</DispatchContext.Provider>
|
|
|
</StateContext.Provider>
|
|
</StateContext.Provider>
|
|
|
</>
|
|
</>
|