diff --git a/src/client/components/PlayData.tsx b/src/client/components/PlayData.tsx
index 3908f094..9196706a 100644
--- a/src/client/components/PlayData.tsx
+++ b/src/client/components/PlayData.tsx
@@ -45,9 +45,6 @@ export const PlayData = (props?: PlayInfoProps) => {
dates = 'all'
} = props ?? {};
- if (play === undefined) {
- return
- }
const [codeMode, setCodeMode] = useState(false);
@@ -55,6 +52,10 @@ export const PlayData = (props?: PlayInfoProps) => {
const comparable = showCompare && final !== undefined;
+ if (play === undefined) {
+ return
+ }
+
if (showCodeToggle) {
code = (
setCodeMode(!codeMode)}>
diff --git a/src/client/components/chakraPlayer/Player.tsx b/src/client/components/chakraPlayer/Player.tsx
index f705bbc7..f959623d 100644
--- a/src/client/components/chakraPlayer/Player.tsx
+++ b/src/client/components/chakraPlayer/Player.tsx
@@ -69,11 +69,6 @@ export const ChakraPlayer = (props: PlayerProps) => {
const [positionBuffer, setProgressBuffer] = useState(undefined);
const [intervalId, setIntervalId] = useState(undefined);
const [lastUpdated, setLastUpdated] = useState(undefined);
-
- if(expiration !== undefined && dayjs().isAfter(dayjs(expiration))) {
- return null;
- }
-
const playArt = art.track ?? art.album ?? art.artist ?? undefined;
const isNowPlaying = nowPlaying || nowPlayingMode;
@@ -142,6 +137,10 @@ export const ChakraPlayer = (props: PlayerProps) => {
return () => clearInterval(interval);
},[setProgressBuffer, data, setIntervalId, setLastUpdated, isNowPlaying]);
+ if(expiration !== undefined && dayjs().isAfter(dayjs(expiration))) {
+ return null;
+ }
+
const indeterminate = isNowPlaying || (calculated === 'playing' && data.position === undefined);
const positionProgress = indeterminate || data.position === undefined || duration === undefined ? undefined : Math.trunc((data.position/duration) * 100);
const bufferProgress = indeterminate || data.position === undefined || duration === undefined || positionBuffer === undefined ? undefined : Math.trunc((positionBuffer/duration) * 100);
@@ -227,14 +226,14 @@ type UsePlayerQueryOpts = {
initData?: SourcePlayerJson
}
-export function usePlayerQuery(componentId: number, platformId: string, opts: UsePlayerQueryOpts = {}) {
+export const usePlayerQuery = (componentId: number, platformId: string, opts: UsePlayerQueryOpts = {}) => {
const { initData } = opts;
const queryClient = useQueryClient();
useEffect(() => {
if (initData !== undefined && queryClient.getQueryData(tanQueries.players.single(componentId, platformId).queryKey) === undefined) {
queryClient.setQueryData(tanQueries.players.single(componentId, platformId).queryKey, initData);
}
- }, [initData]);
+ }, [initData, componentId, platformId]);
const client = useSSEContext>>();
useSSEEvent(client, "playerUpdate", (payload) => {
@@ -264,7 +263,7 @@ export const PlayersContainer = (props: { data: ComponentCommonApiJson, live?: b
players = {}
} = data;
- let playerContainers: React.JSX.Element[] = [];
+ const playerContainers: React.JSX.Element[] = [];
// const isSource = isComponentSourceApiJson(data);
// const now = dayjs();
if (Object.keys(players).length > 0) {
@@ -292,14 +291,14 @@ export const PlayersContainer = (props: { data: ComponentCommonApiJson, live?: b
;
}
-function usePlayersQuery(componentId: number, players?: ComponentCommonApiJson['players']) {
+const usePlayersQuery = (componentId: number, players?: ComponentCommonApiJson['players']) => {
const queryClient = useQueryClient();
useEffect(() => {
if(queryClient.getQueryData(tanQueries.players.list(componentId).queryKey) === undefined) {
queryClient.setQueryData(tanQueries.players.list(componentId).queryKey, players ?? {});
}
- }, [players]);
+ }, [players, componentId]);
const client = useSSEContext();
useSSEAnyEvent(client, (payload) => {
@@ -309,7 +308,7 @@ function usePlayersQuery(componentId: number, players?: ComponentCommonApiJson['
const playerPayload = payload.data as MsSseEventPayload;
queryClient.setQueryData(tanQueries.players.list(componentId).queryKey, (old: Record) => {
if(old[playerPayload.data.platformId] === undefined || 'expiration' in playerPayload.data) {
- let newData: Record = {...old};
+ const newData: Record = {...old};
newData[playerPayload.data.platformId] = playerPayload.data;
return newData;
}
@@ -320,7 +319,7 @@ function usePlayersQuery(componentId: number, players?: ComponentCommonApiJson['
const playerPayload = payload.data as MsSseEventPayload<{platformId: string}>;
queryClient.setQueryData(tanQueries.players.list(componentId).queryKey, (old: Record) => {
if(old[playerPayload.data.platformId] !== undefined) {
- let newData: Record = {...old};
+ const newData: Record = {...old};
delete newData[playerPayload.data.platformId];
return newData;
}