Compare commits

..

5 Commits

Author SHA1 Message Date
Jorrin
f3dd80f42b
Merge pull request #1150 from movie-web/fix/#962
decrease amount of margin of edit button on small screens
2024-04-22 22:45:07 +02:00
William Oldham
cfc74dfa78
Merge branch 'dev' into fix/#962 2024-04-22 21:15:23 +01:00
William Oldham
1a3144a872
Merge pull request #1153 from movie-web/feature/#754
Improve how to change seasons
2024-04-22 21:14:09 +01:00
Jorrin
ae81832037 improve how to change seasons 2024-04-22 20:26:54 +02:00
Jorrin
3da8955607 decrease amount of margin on small screens 2024-04-22 19:12:18 +02:00
8 changed files with 14 additions and 63 deletions

View File

@ -278,7 +278,8 @@
"loadingError": "Error loading season", "loadingError": "Error loading season",
"loadingList": "Loading...", "loadingList": "Loading...",
"loadingTitle": "Loading...", "loadingTitle": "Loading...",
"unairedEpisodes": "One or more episodes in this season have been disabled because they haven't been aired yet." "unairedEpisodes": "One or more episodes in this season have been disabled because they haven't been aired yet.",
"seasons": "Seasons"
}, },
"playback": { "playback": {
"speedLabel": "Playback speed", "speedLabel": "Playback speed",

View File

@ -25,7 +25,7 @@ export function EditButton(props: EditButtonProps) {
> >
<span ref={parent}> <span ref={parent}>
{props.editing ? ( {props.editing ? (
<span className="mx-4 whitespace-nowrap"> <span className="mx-2 sm:mx-4 whitespace-nowrap">
{t("home.mediaList.stopEditing")} {t("home.mediaList.stopEditing")}
</span> </span>
) : ( ) : (

View File

@ -2,7 +2,7 @@ import { Icon, Icons } from "@/components/Icon";
export interface IconPatchProps { export interface IconPatchProps {
active?: boolean; active?: boolean;
onClick?: (event: React.MouseEvent<HTMLDivElement, MouseEvent>) => void; onClick?: () => void;
clickable?: boolean; clickable?: boolean;
className?: string; className?: string;
icon: Icons; icon: Icons;

View File

@ -10,7 +10,6 @@ import { MediaItem } from "@/utils/mediaTypes";
import { IconPatch } from "../buttons/IconPatch"; import { IconPatch } from "../buttons/IconPatch";
import { Icons } from "../Icon"; import { Icons } from "../Icon";
import { MediaCardBookmarkButton } from "../player/Player";
export interface MediaCardProps { export interface MediaCardProps {
media: MediaItem; media: MediaItem;
@ -23,7 +22,6 @@ export interface MediaCardProps {
}; };
percentage?: number; percentage?: number;
closable?: boolean; closable?: boolean;
shouldShowBookMark?: boolean;
onClose?: () => void; onClose?: () => void;
} }
@ -47,7 +45,6 @@ function MediaCardContent({
series, series,
percentage, percentage,
closable, closable,
shouldShowBookMark = true,
onClose, onClose,
}: MediaCardProps) { }: MediaCardProps) {
const { t } = useTranslation(); const { t } = useTranslation();
@ -156,19 +153,6 @@ function MediaCardContent({
icon={Icons.X} icon={Icons.X}
/> />
</div> </div>
{shouldShowBookMark && (
<div
className={classNames(
`absolute left-2 top-2 rounded-md transition-opacity opacity-0 group-hover:opacity-100 duration-300`,
{
"opacity-100": closable,
},
)}
>
<MediaCardBookmarkButton media={media} />
</div>
)}
</div> </div>
<h1 className="mb-1 line-clamp-3 max-h-[4.5rem] text-ellipsis break-words font-bold text-white"> <h1 className="mb-1 line-clamp-3 max-h-[4.5rem] text-ellipsis break-words font-bold text-white">
<span>{media.title}</span> <span>{media.title}</span>

View File

@ -22,7 +22,6 @@ function formatSeries(series?: ShowProgressResult | null) {
export interface WatchedMediaCardProps { export interface WatchedMediaCardProps {
media: MediaItem; media: MediaItem;
closable?: boolean; closable?: boolean;
shouldShowBookMark?: boolean;
onClose?: () => void; onClose?: () => void;
} }
@ -47,7 +46,6 @@ export function WatchedMediaCard(props: WatchedMediaCardProps) {
percentage={percentage} percentage={percentage}
onClose={props.onClose} onClose={props.onClose}
closable={props.closable} closable={props.closable}
shouldShowBookMark={props.shouldShowBookMark}
/> />
); );
} }

View File

@ -212,9 +212,16 @@ function EpisodesView({
return ( return (
<Menu.CardWithScrollable> <Menu.CardWithScrollable>
<Menu.BackLink onClick={goBack}> <Menu.BackLink
{loadingState?.value?.season.title || onClick={goBack}
t("player.menus.episodes.loadingTitle")} rightSide={
<span>
{loadingState?.value?.season.title ||
t("player.menus.episodes.loadingTitle")}
</span>
}
>
{t("player.menus.episodes.seasons")}
</Menu.BackLink> </Menu.BackLink>
{content} {content}
</Menu.CardWithScrollable> </Menu.CardWithScrollable>

View File

@ -1,10 +1,8 @@
import { useCallback } from "react"; import { useCallback } from "react";
import { IconPatch } from "@/components/buttons/IconPatch";
import { Icons } from "@/components/Icon"; import { Icons } from "@/components/Icon";
import { useBookmarkStore } from "@/stores/bookmarks"; import { useBookmarkStore } from "@/stores/bookmarks";
import { usePlayerStore } from "@/stores/player/store"; import { usePlayerStore } from "@/stores/player/store";
import { MediaItem } from "@/utils/mediaTypes";
import { VideoPlayerButton } from "./Button"; import { VideoPlayerButton } from "./Button";
@ -30,39 +28,3 @@ export function BookmarkButton() {
/> />
); );
} }
export function MediaCardBookmarkButton(props: { media: MediaItem }) {
const addBookmark = useBookmarkStore((s) => s.addBookmark);
const removeBookmark = useBookmarkStore((s) => s.removeBookmark);
const bookmarks = useBookmarkStore((s) => s.bookmarks);
const isBookmarked = !!bookmarks[props.media.id];
const toggleBookmark = useCallback(
(event: React.MouseEvent<HTMLDivElement, MouseEvent>) => {
event.preventDefault();
if (!props.media.year) return;
if (isBookmarked) {
removeBookmark(props.media.id);
} else {
addBookmark({
tmdbId: props.media.id,
title: props.media.title,
releaseYear: props.media.year,
type: props.media.type,
poster: props.media.poster,
});
}
},
[isBookmarked, props.media, addBookmark, removeBookmark],
);
if (!props.media.year) return null;
return (
<IconPatch
clickable
onClick={toggleBookmark}
icon={isBookmarked ? Icons.BOOKMARK : Icons.BOOKMARK_OUTLINE}
/>
);
}

View File

@ -58,7 +58,6 @@ export function BookmarksPart() {
media={v} media={v}
closable={editing} closable={editing}
onClose={() => removeBookmark(v.id)} onClose={() => removeBookmark(v.id)}
shouldShowBookMark={false}
/> />
))} ))}
</MediaGrid> </MediaGrid>