diff --git a/front/src/providers/account-provider.tsx b/front/src/providers/account-provider.tsx index 71971b92..5899239f 100644 --- a/front/src/providers/account-provider.tsx +++ b/front/src/providers/account-provider.tsx @@ -9,7 +9,7 @@ import { useSetError } from "./error-provider"; import { useStoreValue } from "./settings"; export const AccountProvider = ({ children }: { children: ReactNode }) => { - const [setError, clearError] = useSetError("account"); + const [setError, clearError] = useSetError("connection"); const accounts = useStoreValue("accounts", z.array(Account)) ?? []; const ret = useMemo(() => { diff --git a/front/src/ui/details/header.tsx b/front/src/ui/details/header.tsx index bdbeba0a..25e2b2a3 100644 --- a/front/src/ui/details/header.tsx +++ b/front/src/ui/details/header.tsx @@ -1,9 +1,11 @@ import Refresh from "@material-symbols/svg-400/rounded/autorenew.svg"; +import BookmarkAdd from "@material-symbols/svg-400/rounded/bookmark_add.svg"; import Download from "@material-symbols/svg-400/rounded/download.svg"; import MoreHoriz from "@material-symbols/svg-400/rounded/more_horiz.svg"; import MovieInfo from "@material-symbols/svg-400/rounded/movie_info.svg"; import PlayArrow from "@material-symbols/svg-400/rounded/play_arrow-fill.svg"; import Theaters from "@material-symbols/svg-400/rounded/theaters-fill.svg"; +import { LinearGradient } from "expo-linear-gradient"; import { Stack } from "expo-router"; import { Fragment } from "react"; import { useTranslation } from "react-i18next"; @@ -379,6 +381,117 @@ export const TitleLine = ({ ); }; +TitleLine.Loader = ({ + kind, + ...props +}: { + kind: "serie" | "movie" | "collection"; +}) => { + const { css, theme } = useYoshiki(); + + return ( + + + + + + + + + + {kind !== "collection" && ( + + )} + {kind === "movie" && } + + + + + + + + + ); +}; + const Description = ({ description, tags, @@ -436,7 +549,7 @@ const Description = ({ marginTop: ts(0.5), })} > -

{t("show.tags")}:

+

{t("show.tags")}:

{tags.map((tag) => ( { + const { t } = useTranslation(); + const { css } = useYoshiki(); + + return ( + +

theme.user.paragraph, + })} + > + {t("show.genre")}:{" "} + {[...Array(3)].map((_, i) => ( + +

{i !== 0 && ", "}

+ + + ))} +

+ + + + +

{t("show.tags")}:

+ {[...Array(3)].map((_, i) => ( + + ))} +
+
+
+ +

{t("show.genre")}

+
    + {[...Array(3)].map((_, i) => ( +
  • + +
  • + ))} +
+
+
+ ); +}; + export const Header = ({ kind, slug, @@ -484,7 +670,7 @@ export const Header = ({ kind: "movie" | "serie"; slug: string; }) => { - const { css } = useYoshiki(); + const { css, theme } = useYoshiki(); const { t } = useTranslation(); return ( @@ -497,9 +683,8 @@ export const Header = ({ />

loading

} Render={(data) => ( - <> + + + + - - - -

- {t("show.links")}: -

- {Object.entries(data.externalId!) - .filter(([_, data]) => data.link) - .map(([name, data]) => ( - - ))} -
- +

+ {t("show.links")}: +

+ {Object.entries(data.externalId!) + .filter(([_, data]) => data.link) + .map(([name, data]) => ( + + ))} +
{/* {type === "show" && ( */} {/* */} {/* )} */} +
+ )} + Loader={() => ( + <> + + + )} /> diff --git a/front/src/ui/details/movie.tsx b/front/src/ui/details/movie.tsx index d8e7d13b..81509cc2 100644 --- a/front/src/ui/details/movie.tsx +++ b/front/src/ui/details/movie.tsx @@ -10,21 +10,8 @@ export const MovieDetails = () => { const { css } = useYoshiki(); return ( - +
- {/* */} - {/* */} ); };