parent
123f7465e3
commit
6b1e8aff1c
@ -0,0 +1,16 @@
|
|||||||
|
import VolPlayButton from '../VolPlayButton';
|
||||||
|
|
||||||
|
import { JournalCard } from '@/components';
|
||||||
|
|
||||||
|
export default function CoverCard({ journalInfo }: { journalInfo: JournalInfo }) {
|
||||||
|
const { image, journalNo } = journalInfo;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="relative">
|
||||||
|
<JournalCard image={image} journalNo={journalNo}>
|
||||||
|
{/* 播放/暂停 */}
|
||||||
|
</JournalCard>
|
||||||
|
<VolPlayButton className="absolute right-[30px] bottom-[-26px] z-2" no={journalNo} />
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
import { JournalCard, PlayerButton } from '@/components';
|
||||||
|
|
||||||
|
export default function CoverCard({
|
||||||
|
img,
|
||||||
|
no,
|
||||||
|
playStatus,
|
||||||
|
onPlay,
|
||||||
|
}: {
|
||||||
|
img: string;
|
||||||
|
no: string;
|
||||||
|
playStatus: boolean;
|
||||||
|
onPlay: () => void;
|
||||||
|
}) {
|
||||||
|
return (
|
||||||
|
<JournalCard image={img} journalNo={no}>
|
||||||
|
<JournalCard image={img} journalNo={no}>
|
||||||
|
{/* 播放/暂停 */}
|
||||||
|
<PlayerButton
|
||||||
|
size={54}
|
||||||
|
img={playStatus ? '/img/audio-player/pause.svg' : '/img/audio-player/play.svg'}
|
||||||
|
text={playStatus ? '暂停' : '播放'}
|
||||||
|
onClick={onPlay}
|
||||||
|
className="mx-[31.5px]"
|
||||||
|
/>
|
||||||
|
</JournalCard>
|
||||||
|
</JournalCard>
|
||||||
|
);
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
'use client';
|
||||||
|
|
||||||
|
import { useShallow } from 'zustand/react/shallow';
|
||||||
|
|
||||||
|
import { PlayerButton } from '@/components';
|
||||||
|
import useAudioStore from '@/store/audio';
|
||||||
|
|
||||||
|
export default function VolPlayButton({ no, className }: { no: string; className: string }) {
|
||||||
|
const { playState, setPlayState } = useAudioStore(
|
||||||
|
useShallow((state) => {
|
||||||
|
return {
|
||||||
|
playState: state.playState,
|
||||||
|
setPlayState: state.setPlayState,
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
|
const handlePlay = () => {
|
||||||
|
setPlayState(!playState);
|
||||||
|
};
|
||||||
|
|
||||||
|
return (
|
||||||
|
<PlayerButton
|
||||||
|
size={60}
|
||||||
|
img={playState ? '/img/audio-player/pause.svg' : '/img/audio-player/play.svg'}
|
||||||
|
text={playState ? '暂停' : '播放'}
|
||||||
|
onClick={handlePlay}
|
||||||
|
className={className}
|
||||||
|
/>
|
||||||
|
);
|
||||||
|
}
|
Loading…
Reference in new issue