diff --git a/front/src/primitives/index.ts b/front/src/primitives/index.ts
index e81398a9..63355757 100644
--- a/front/src/primitives/index.ts
+++ b/front/src/primitives/index.ts
@@ -7,16 +7,16 @@ export * from "./divider";
export * from "./icons";
export * from "./image";
export * from "./image-background";
-// export * from "./popup";
-// export * from "./select";
export * from "./input";
export * from "./links";
-// export * from "./progress";
-// export * from "./slider";
// export * from "./snackbar";
// export * from "./alert";
export * from "./menu";
+export * from "./progress";
+// export * from "./popup";
+export * from "./select";
export * from "./skeleton";
+export * from "./slider";
export * from "./text";
export * from "./theme";
export * from "./tooltip";
diff --git a/front/src/primitives/progress.tsx b/front/src/primitives/progress.tsx
index f2325e0d..060a207f 100644
--- a/front/src/primitives/progress.tsx
+++ b/front/src/primitives/progress.tsx
@@ -1,26 +1,5 @@
-/*
- * Kyoo - A portable and vast media library solution.
- * Copyright (c) Kyoo.
- *
- * See AUTHORS.md and LICENSE file in the project root for full license information.
- *
- * Kyoo is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * Kyoo is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Kyoo. If not, see .
- */
-
-import { ActivityIndicator, Platform, View } from "react-native";
-import { Circle, Svg } from "react-native-svg";
-import { px, type Stylable, useYoshiki } from "yoshiki/native";
+import { ActivityIndicator } from "react-native";
+import { type Stylable, useYoshiki } from "yoshiki/native";
export const CircularProgress = ({
size = 48,
@@ -28,64 +7,9 @@ export const CircularProgress = ({
color,
...props
}: { size?: number; tickness?: number; color?: string } & Stylable) => {
- const { css, theme } = useYoshiki();
-
- if (Platform.OS !== "web")
- return (
-
- );
+ const { theme } = useYoshiki();
return (
-
-
-
-
+
);
};
diff --git a/front/src/primitives/select.tsx b/front/src/primitives/select.tsx
index 541ad060..a9ffbdfb 100644
--- a/front/src/primitives/select.tsx
+++ b/front/src/primitives/select.tsx
@@ -1,23 +1,3 @@
-/*
- * Kyoo - A portable and vast media library solution.
- * Copyright (c) Kyoo.
- *
- * See AUTHORS.md and LICENSE file in the project root for full license information.
- *
- * Kyoo is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * Kyoo is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Kyoo. If not, see .
- */
-
import ExpandMore from "@material-symbols/svg-400/rounded/keyboard_arrow_down-fill.svg";
import { Button } from "./button";
import { Icon } from "./icons";
diff --git a/front/src/primitives/slider.tsx b/front/src/primitives/slider.tsx
index 4c71ed2f..0b6c864a 100644
--- a/front/src/primitives/slider.tsx
+++ b/front/src/primitives/slider.tsx
@@ -1,26 +1,10 @@
-/*
- * Kyoo - A portable and vast media library solution.
- * Copyright (c) Kyoo.
- *
- * See AUTHORS.md and LICENSE file in the project root for full license information.
- *
- * Kyoo is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * Kyoo is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Kyoo. If not, see .
- */
-
import { useRef, useState } from "react";
-import { type GestureResponderEvent, Platform, View } from "react-native";
-import type { ViewProps } from "react-native-svg/lib/typescript/fabric/utils";
+import {
+ type GestureResponderEvent,
+ Platform,
+ View,
+ type ViewProps,
+} from "react-native";
import { percent, px, useYoshiki } from "yoshiki/native";
import { focusReset } from "./utils";
diff --git a/front/src/ui/player/components/hover.tsx b/front/src/ui/player/components/hover.tsx
index b4170e6f..29ab5799 100644
--- a/front/src/ui/player/components/hover.tsx
+++ b/front/src/ui/player/components/hover.tsx
@@ -1,25 +1,24 @@
-/*
- * Kyoo - A portable and vast media library solution.
- * Copyright (c) Kyoo.
- *
- * See AUTHORS.md and LICENSE file in the project root for full license information.
- *
- * Kyoo is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * any later version.
- *
- * Kyoo is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with Kyoo. If not, see .
- */
-
-import type { Audio, Chapter, KyooImage, Subtitle } from "@kyoo/models";
+import ArrowBack from "@material-symbols/svg-400/rounded/arrow_back-fill.svg";
import {
+ type ReactNode,
+ useCallback,
+ useEffect,
+ useRef,
+ useState,
+} from "react";
+import { useTranslation } from "react-i18next";
+import {
+ type ImageStyle,
+ Platform,
+ Pressable,
+ View,
+ type ViewProps,
+} from "react-native";
+import { useEvent, type VideoPlayer } from "react-native-video";
+import { percent, rem, useYoshiki } from "yoshiki/native";
+import type { AudioTrack, Chapter, KImage, Subtitle } from "~/models";
+import {
+ alpha,
CircularProgress,
ContrastArea,
H1,
@@ -30,43 +29,14 @@ import {
Skeleton,
Slider,
Tooltip,
- alpha,
- imageBorderRadius,
tooltip,
ts,
useIsTouch,
-} from "@kyoo/primitives";
-import ArrowBack from "@material-symbols/svg-400/rounded/arrow_back-fill.svg";
-import { useAtom, useAtomValue, useSetAtom } from "jotai";
-import { atom } from "jotai";
-import { type ReactNode, useCallback, useEffect, useRef, useState } from "react";
-import { useTranslation } from "react-i18next";
-import { type ImageStyle, Platform, Pressable, View, type ViewProps } from "react-native";
-import { useRouter } from "solito/router";
-import { percent, rem, useYoshiki } from "yoshiki/native";
-import {
- bufferedAtom,
- durationAtom,
- fullscreenAtom,
- loadAtom,
- playAtom,
- progressAtom,
-} from "../state";
+} from "~/primitives";
import { LeftButtons, TouchControls } from "./left-buttons";
import { RightButtons } from "./right-buttons";
import { BottomScrubber, ScrubberTooltip } from "./scrubber";
-const hoverReasonAtom = atom({
- mouseMoved: false,
- mouseHover: false,
- menuOpened: false,
-});
-export const hoverAtom = atom((get) =>
- [!get(playAtom), ...Object.values(get(hoverReasonAtom))].includes(true),
-);
-export const seekingAtom = atom(false);
-export const seekProgressAtom = atom(null);
-
export const Hover = ({
isLoading,
url,
@@ -145,7 +115,11 @@ export const Hover = ({
padding: percent(1),
})}
>
-
+
{!showBottomSeeker && (