refactor(ui): one rule for resettable, role key and display name; an honest reset label
The card menu's reset read 'Clear watch progress' but also un-hides and un-watches; it now says so. The resettable rule, the demo-first role key and the display-name fallback each lived in several components tied by comments; they are shared helpers now, and the menu reuses the card's own strings instead of duplicate keys.
This commit is contained in:
@@ -2,6 +2,7 @@ import { useTranslation } from "react-i18next";
|
||||
import { Bookmark, BookmarkX, Check, Eye, EyeOff, RotateCcw, Undo2 } from "lucide-react";
|
||||
|
||||
import { type PlexCard, type Video, type VideoStatus } from "../lib/api";
|
||||
import { isResettable } from "../lib/api/feed";
|
||||
import { pinPlex, pinVideo, useComfortPin, type PinTarget } from "./comfortPin";
|
||||
import { type ActionMenuItem } from "./ui/ActionMenu";
|
||||
import { ContextMenu } from "./ui/ContextMenu";
|
||||
@@ -75,24 +76,23 @@ export function FeedVideoMenu({
|
||||
}
|
||||
: {
|
||||
id: "watched",
|
||||
label: t("card.menu.markWatched"),
|
||||
label: t("card.markWatched"),
|
||||
icon: <Check className={icon} />,
|
||||
onSelect: () => onState(v.id, "watched"),
|
||||
},
|
||||
{
|
||||
id: "save",
|
||||
label: v.saved ? t("card.menu.unsave") : t("card.menu.save"),
|
||||
label: v.saved ? t("card.menu.unsave") : t("card.saveForLater"),
|
||||
icon: v.saved ? <BookmarkX className={icon} /> : <Bookmark className={icon} />,
|
||||
onSelect: () => onToggleSave(v.id, !v.saved),
|
||||
},
|
||||
{
|
||||
id: "hide",
|
||||
label: v.status === "hidden" ? t("card.menu.unhide") : t("card.menu.hide"),
|
||||
label: v.status === "hidden" ? t("card.unhide") : t("card.hide"),
|
||||
icon: v.status === "hidden" ? <Eye className={icon} /> : <EyeOff className={icon} />,
|
||||
onSelect: () => onState(v.id, v.status === "hidden" ? "new" : "hidden"),
|
||||
},
|
||||
// The card offers the reset only on a card that has something to reset; so does this.
|
||||
...(v.status !== "new" || v.position_seconds > 0
|
||||
...(isResettable(v)
|
||||
? [
|
||||
{
|
||||
id: "reset",
|
||||
|
||||
Reference in New Issue
Block a user