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;