From be499b308526b32e93df51a0785249c8d7260748 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 18 Jul 2023 12:26:42 +0900 Subject: [PATCH] Replace episodes in history instead of pushing them --- front/packages/primitives/src/links.tsx | 21 ++++++++++++++++--- .../packages/primitives/src/skeleton.web.tsx | 4 ---- .../ui/src/player/components/left-buttons.tsx | 2 ++ front/packages/ui/src/player/index.tsx | 10 +++++++-- front/packages/ui/src/player/state.tsx | 8 +++++++ front/packages/ui/src/player/video.tsx | 10 ++++----- transcoder/src/state.rs | 17 +++++++++++++++ 7 files changed, 58 insertions(+), 14 deletions(-) diff --git a/front/packages/primitives/src/links.tsx b/front/packages/primitives/src/links.tsx index 576f0515..9e9f7563 100644 --- a/front/packages/primitives/src/links.tsx +++ b/front/packages/primitives/src/links.tsx @@ -26,14 +26,24 @@ import { alpha } from "./themes"; export const A = ({ href, + replace, children, ...props -}: TextProps & { href: string; children: ReactNode }) => { +}: TextProps & { href: string; replace?: boolean; children: ReactNode }) => { const { css, theme } = useYoshiki(); return ( (function _Feed export const Link = ({ href, + replace, target, children, ...props -}: { href: string; target?: string } & PressableProps) => { - const linkProps = useLink({ href }); +}: { href: string; target?: string; replace?: boolean } & PressableProps) => { + const linkProps = useLink({ + href, + replace, + experimental: { nativeBehavior: "stack-replace", isNestedNavigator: false }, + }); // @ts-ignore Missing hrefAttrs type definition. linkProps.hrefAttrs = { ...linkProps.hrefAttrs, target }; return ( diff --git a/front/packages/primitives/src/skeleton.web.tsx b/front/packages/primitives/src/skeleton.web.tsx index 8e6771ca..781b7cad 100644 --- a/front/packages/primitives/src/skeleton.web.tsx +++ b/front/packages/primitives/src/skeleton.web.tsx @@ -19,7 +19,6 @@ */ import { LinearGradient } from "expo-linear-gradient"; -import { useState } from "react"; import { View, ViewProps } from "react-native"; import { px, rem, useYoshiki, percent, em } from "yoshiki/native"; import { hiddenIfNoJs } from "./utils/nojs"; @@ -53,8 +52,6 @@ export const Skeleton = ({ variant?: "text" | "header" | "round" | "custom" | "fill" | "filltext"; }) => { const { css, theme } = useYoshiki(); - const [width, setWidth] = useState(undefined); - const perc = (v: number) => (v / 100) * width!; if (forcedShow === undefined && children && children !== true) return <>{children}; @@ -101,7 +98,6 @@ export const Skeleton = ({ [...Array(lines)].map((_, i) => ( setWidth(e.nativeEvent.layout.width)} {...css( [ { diff --git a/front/packages/ui/src/player/components/left-buttons.tsx b/front/packages/ui/src/player/components/left-buttons.tsx index 073169ab..caa0dd6f 100644 --- a/front/packages/ui/src/player/components/left-buttons.tsx +++ b/front/packages/ui/src/player/components/left-buttons.tsx @@ -53,6 +53,7 @@ export const LeftButtons = ({ icon={SkipPrevious} as={Link} href={previousSlug} + replace {...tooltip(t("player.previous"), true)} {...spacing} /> @@ -68,6 +69,7 @@ export const LeftButtons = ({ icon={SkipNext} as={Link} href={nextSlug} + replace {...tooltip(t("player.next"), true)} {...spacing} /> diff --git a/front/packages/ui/src/player/index.tsx b/front/packages/ui/src/player/index.tsx index 42b20ada..5417ed62 100644 --- a/front/packages/ui/src/player/index.tsx +++ b/front/packages/ui/src/player/index.tsx @@ -195,14 +195,20 @@ export const Player: QueryPage<{ slug: string }> = ({ slug }) => { >