Skip to content

Commit 3f71308

Browse files
committed
feat: Improve PlayerWidget tooltips for mobile responsiveness
1 parent f79f5a5 commit 3f71308

File tree

2 files changed

+34
-17
lines changed

2 files changed

+34
-17
lines changed

src/components/ListenToPlayer/PlayerWidget/index.tsx

Lines changed: 33 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,23 @@ import {
1212
import Tooltip from "@/components/Tooltip"
1313

1414
import { cn } from "@/lib/utils/cn"
15+
import { isMobile } from "@/lib/utils/isMobile"
1516
import { trackCustomEvent } from "@/lib/utils/matomo"
1617

18+
const PlayerButton = ({
19+
children,
20+
tooltipContent,
21+
}: {
22+
children: React.ReactNode
23+
tooltipContent: string
24+
}) => {
25+
return isMobile() ? (
26+
children
27+
) : (
28+
<Tooltip content={tooltipContent}>{children}</Tooltip>
29+
)
30+
}
31+
1732
interface PlayerWidgetProps {
1833
title: string
1934
duration: number
@@ -167,7 +182,7 @@ const PlayerWidget = ({
167182
</div>
168183
<div className="flex items-center justify-between gap-10">
169184
<div className="relative">
170-
<Tooltip content={"Playback speed"}>
185+
<PlayerButton tooltipContent={"Playback speed"}>
171186
<button
172187
className="w-[24px] cursor-pointer text-right text-xs font-bold leading-base text-body-medium hover:text-body"
173188
onClick={() => setShowSpeedMenu(!showSpeedMenu)}
@@ -176,7 +191,7 @@ const PlayerWidget = ({
176191
>
177192
{playbackSpeed}x
178193
</button>
179-
</Tooltip>
194+
</PlayerButton>
180195
{showSpeedMenu && (
181196
<div
182197
ref={speedMenuRef}
@@ -197,7 +212,7 @@ const PlayerWidget = ({
197212
</div>
198213
)}
199214
</div>
200-
<Tooltip content={"Previous"}>
215+
<PlayerButton tooltipContent={"Previous"}>
201216
<button
202217
className={cn(
203218
"cursor-pointer text-2xl hover:text-primary",
@@ -209,8 +224,8 @@ const PlayerWidget = ({
209224
>
210225
<ArrowIcon />
211226
</button>
212-
</Tooltip>
213-
<Tooltip content={isPlaying ? "Pause" : "Play"}>
227+
</PlayerButton>
228+
<PlayerButton tooltipContent={isPlaying ? "Pause" : "Play"}>
214229
<button
215230
className="cursor-pointer text-[32px] text-primary hover:text-primary-hover"
216231
onClick={handlePlayPause}
@@ -219,8 +234,8 @@ const PlayerWidget = ({
219234
>
220235
{isPlaying ? <PauseCircleIcon /> : <PlayCircleIcon />}
221236
</button>
222-
</Tooltip>
223-
<Tooltip content={"Next"}>
237+
</PlayerButton>
238+
<PlayerButton tooltipContent={"Next"}>
224239
<button
225240
className={cn(
226241
"cursor-pointer text-2xl hover:text-primary",
@@ -234,8 +249,10 @@ const PlayerWidget = ({
234249
>
235250
<ArrowIcon className="rotate-180" />
236251
</button>
237-
</Tooltip>
238-
<Tooltip content={autoplay ? "Disable autoplay" : "Enable autoplay"}>
252+
</PlayerButton>
253+
<PlayerButton
254+
tooltipContent={autoplay ? "Disable autoplay" : "Enable autoplay"}
255+
>
239256
<button
240257
className={cn(
241258
"cursor-pointer text-base",
@@ -248,7 +265,7 @@ const PlayerWidget = ({
248265
>
249266
<AutoplayIcon />
250267
</button>
251-
</Tooltip>
268+
</PlayerButton>
252269
</div>
253270
</div>
254271

@@ -259,7 +276,7 @@ const PlayerWidget = ({
259276
)}
260277
>
261278
<div className="flex flex-row items-center gap-2">
262-
<Tooltip content={isPlaying ? "Pause" : "Play"}>
279+
<PlayerButton tooltipContent={isPlaying ? "Pause" : "Play"}>
263280
<button
264281
className="cursor-pointer text-[32px] text-primary hover:text-primary-hover"
265282
onClick={handlePlayPause}
@@ -268,13 +285,13 @@ const PlayerWidget = ({
268285
>
269286
{isPlaying ? <PauseCircleIcon /> : <PlayCircleIcon />}
270287
</button>
271-
</Tooltip>
288+
</PlayerButton>
272289
<div className="text-sm text-body-medium">
273290
{`${Math.floor(timeRemaining / 60)}:${String(Math.floor(timeRemaining % 60)).padStart(2, "0")}`}
274291
</div>
275292
</div>
276293
<div className="flex flex-row gap-6">
277-
<Tooltip content={"Expand"}>
294+
<PlayerButton tooltipContent={"Expand"}>
278295
<button
279296
className="cursor-pointer text-disabled hover:text-body"
280297
title={"Expand"}
@@ -290,8 +307,8 @@ const PlayerWidget = ({
290307
>
291308
<ExpandIcon />
292309
</button>
293-
</Tooltip>
294-
<Tooltip content={"Close"}>
310+
</PlayerButton>
311+
<PlayerButton tooltipContent={"Close"}>
295312
<button
296313
className="cursor-pointer text-disabled hover:text-body"
297314
title={"Close"}
@@ -303,7 +320,7 @@ const PlayerWidget = ({
303320
>
304321
<IoClose />
305322
</button>
306-
</Tooltip>
323+
</PlayerButton>
307324
</div>
308325
</div>
309326
</div>

src/components/ListenToPlayer/TopOfPagePlayer/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ const TopOfPagePlayer = ({
1818
handlePlayPause,
1919
}: TopOfPagePlayerProps) => {
2020
return (
21-
<div className="inline-block w-full rounded-lg bg-background-low p-2 lg:w-auto">
21+
<div className="inline-block w-full rounded-lg bg-background-low p-2 hover:bg-background-medium lg:w-auto">
2222
<div
2323
className="flex cursor-pointer flex-row items-center gap-2 text-primary hover:text-primary-hover"
2424
onClick={() => {

0 commit comments

Comments
 (0)