From 978dc76c544e0499b1a405d0c1773f40b8ae9b07 Mon Sep 17 00:00:00 2001
From: Adrian Castro <22133246+castdrian@users.noreply.github.com>
Date: Fri, 23 Feb 2024 11:26:25 +0100
Subject: [PATCH] feat: checkmark if track is active
---
.../src/components/player/AudioTrackSelector.tsx | 14 ++++++++++++++
apps/expo/src/components/player/ScraperProcess.tsx | 4 +++-
apps/expo/src/stores/audio/index.ts | 2 +-
apps/expo/src/stores/player/slices/interface.ts | 7 +------
4 files changed, 19 insertions(+), 8 deletions(-)
diff --git a/apps/expo/src/components/player/AudioTrackSelector.tsx b/apps/expo/src/components/player/AudioTrackSelector.tsx
index 261d48e..ef35c87 100644
--- a/apps/expo/src/components/player/AudioTrackSelector.tsx
+++ b/apps/expo/src/components/player/AudioTrackSelector.tsx
@@ -11,6 +11,13 @@ import { Button } from "../ui/Button";
import { Text } from "../ui/Text";
import { Controls } from "./Controls";
+export interface AudioTrack {
+ uri: string;
+ name: string;
+ language: string;
+ active?: boolean;
+}
+
export const AudioTrackSelector = () => {
const tracks = usePlayerStore((state) => state.interface.audioTracks);
@@ -61,6 +68,13 @@ export const AudioTrackSelector = () => {
}}
>
{track.name}
+ {track.active && (
+
+ )}
))}
diff --git a/apps/expo/src/components/player/ScraperProcess.tsx b/apps/expo/src/components/player/ScraperProcess.tsx
index 4fbe7b1..009e4c7 100644
--- a/apps/expo/src/components/player/ScraperProcess.tsx
+++ b/apps/expo/src/components/player/ScraperProcess.tsx
@@ -11,7 +11,7 @@ import {
import { fetchMediaDetails, fetchSeasonDetails } from "@movie-web/tmdb";
import type { ItemData } from "../item/item";
-import type { AudioTrack } from "~/stores/player/slices/interface";
+import type { AudioTrack } from "./AudioTrackSelector";
import { PlayerStatus } from "~/stores/player/slices/interface";
import { usePlayerStore } from "~/stores/player/store";
import { Text } from "../ui/Text";
@@ -121,6 +121,8 @@ export const ScraperProcess = ({ data }: ScraperProcessProps) => {
name: (track.properties[0]?.attributes.name as string) ?? "Unknown",
language:
(track.properties[0]?.attributes.language as string) ?? "Unknown",
+ active:
+ (track.properties[0]?.attributes.default as boolean) ?? false,
}));
setAudioTracks(audioTracks);
}
diff --git a/apps/expo/src/stores/audio/index.ts b/apps/expo/src/stores/audio/index.ts
index ca4c341..7017dfc 100644
--- a/apps/expo/src/stores/audio/index.ts
+++ b/apps/expo/src/stores/audio/index.ts
@@ -1,7 +1,7 @@
import { create } from "zustand";
import { immer } from "zustand/middleware/immer";
-import type { AudioTrack } from "../player/slices/interface";
+import type { AudioTrack } from "~/components/player/AudioTrackSelector";
export interface AudioTrackStore {
selectedTrack: AudioTrack | null;
diff --git a/apps/expo/src/stores/player/slices/interface.ts b/apps/expo/src/stores/player/slices/interface.ts
index e78db2f..199b8c0 100644
--- a/apps/expo/src/stores/player/slices/interface.ts
+++ b/apps/expo/src/stores/player/slices/interface.ts
@@ -3,18 +3,13 @@ import type { SeasonDetails } from "@movie-web/tmdb";
import type { MakeSlice } from "./types";
import type { ItemData } from "~/components/item/item";
+import type { AudioTrack } from "~/components/player/AudioTrackSelector";
export enum PlayerStatus {
SCRAPING,
READY,
}
-export interface AudioTrack {
- uri: string;
- name: string;
- language: string;
-}
-
export interface InterfaceSlice {
interface: {
isIdle: boolean;