refactor: MediaManager structure

This commit is contained in:
Aleksi Lassila
2024-04-09 16:29:00 +03:00
parent 96a1a9ce3e
commit d91da834aa
15 changed files with 58 additions and 84 deletions

View File

@@ -1,6 +1,6 @@
import type { MovieDownload, MovieFileResource, RadarrRelease } from './radarr/radarr-api';
import type { EpisodeFileResource, EpisodeDownload, SonarrRelease } from './sonarr/sonarr-api';
export type Release = RadarrRelease & SonarrRelease;
export type FileResource = MovieFileResource & EpisodeFileResource;
export type Download = MovieDownload & EpisodeDownload;
export type Release = RadarrRelease | SonarrRelease;
export type FileResource = MovieFileResource | EpisodeFileResource;
export type Download = MovieDownload | EpisodeDownload;

View File

@@ -16,7 +16,7 @@
import UiCarousel from '../../lib/components/Carousel/UICarousel.svelte';
import EpisodeCard from '../../lib/components/EpisodeCard/EpisodeCard.svelte';
import PersonCard from '../../lib/components/PersonCard/PersonCard.svelte';
import SeriesRequestModal from '../components/ManageMedia/SeriesRequestModal.svelte';
import SeriesRequestModal from '../components/MediaManager/SeriesRequestModal.svelte';
import OpenInButton from '../../lib/components/TitlePageLayout/OpenInButton.svelte';
import TitlePageLayout from '../../lib/components/TitlePageLayout/TitlePageLayout.svelte';
import { playerState } from '../../lib/components/VideoPlayer/VideoPlayer';

View File

@@ -1,5 +1,4 @@
<script lang="ts">
import type { MovieDownload } from '../../apis/radarr/radarr-api';
import ButtonGhost from '../Ghosts/ButtonGhost.svelte';
import Button from '../Button.svelte';
import { formatSize } from '../../utils';

View File

@@ -1,12 +1,10 @@
<script lang="ts">
import type { MovieFileResource } from '../../../apis/radarr/radarr-api';
import ButtonGhost from '../../Ghosts/ButtonGhost.svelte';
import Button from '../../Button.svelte';
import ButtonGhost from '../Ghosts/ButtonGhost.svelte';
import Button from '../Button.svelte';
import { ChevronRight } from 'radix-icons-svelte';
import { formatSize } from '../../../utils.js';
import type { EpisodeFileResource } from '../../../apis/sonarr/sonarr-api';
import type { FileResource } from '../../../apis/combined-types';
import { scrollIntoView } from '../../../selectable';
import { formatSize } from '../../utils.js';
import type { FileResource } from '../../apis/combined-types';
import { scrollIntoView } from '../../selectable';
export let files: Promise<FileResource[]>;
export let handleSelectFile: (file: FileResource) => void;

View File

@@ -1,13 +1,13 @@
<script lang="ts">
import { type RadarrRelease } from '../../../apis/radarr/radarr-api';
import { type RadarrRelease } from '../../apis/radarr/radarr-api';
import classNames from 'classnames';
import { useRequest } from '../../../stores/data.store';
import Button from '../../Button.svelte';
import { useRequest } from '../../stores/data.store';
import Button from '../Button.svelte';
import { ChevronRight, DotFilled } from 'radix-icons-svelte';
import { formatMinutesToTime, formatSize } from '../../../utils';
import { formatMinutesToTime, formatSize } from '../../utils';
import { derived } from 'svelte/store';
import ButtonGhost from '../../Ghosts/ButtonGhost.svelte';
import type { SonarrRelease } from '../../../apis/sonarr/sonarr-api';
import ButtonGhost from '../Ghosts/ButtonGhost.svelte';
import type { SonarrRelease } from '../../apis/sonarr/sonarr-api';
type Release = RadarrRelease | SonarrRelease;

View File

@@ -1,10 +1,9 @@
<script lang="ts">
import Container from '../../../../Container.svelte';
import type { MovieFileResource } from '../../../apis/radarr/radarr-api';
import { formatSize } from '../../../utils';
import Button from '../../Button.svelte';
import FullScreenModal from '../../Modal/FullScreenModal.svelte';
import FullScreenModalContainer from '../ManageMediaMenuLayout.svelte';
import FullScreenModalContainer from '../MediaManagerMenuLayout.svelte';
import type { FileResource } from '../../../apis/combined-types';
export let modalId: symbol;

View File

@@ -1,13 +1,11 @@
<script lang="ts">
import Container from '../../../../Container.svelte';
import type { MovieFileResource, RadarrRelease } from '../../../apis/radarr/radarr-api';
import { formatSize } from '../../../utils';
import Button from '../../Button.svelte';
import FullScreenModal from '../../Modal/FullScreenModal.svelte';
import FullScreenModalContainer from '../ManageMediaMenuLayout.svelte';
import { useActionRequest, useRequest } from '../../../stores/data.store';
import FullScreenModalContainer from '../MediaManagerMenuLayout.svelte';
import { useActionRequest } from '../../../stores/data.store';
import { Download, Plus } from 'radix-icons-svelte';
import type { SonarrRelease } from '../../../apis/sonarr/sonarr-api';
import type { Release } from '../../../apis/combined-types';
export let modalId: symbol;

View File

@@ -1,6 +1,6 @@
<script lang="ts">
import FullScreenModal from '../../Modal/FullScreenModal.svelte';
import ReleaseList from './ReleaseList.svelte';
import ReleaseList from '../ReleaseList.svelte';
import type { Release } from '../../../apis/combined-types';
export let modalId: symbol;

View File

@@ -1,22 +1,22 @@
<script lang="ts">
import FullScreenModal from '../Modal/FullScreenModal.svelte';
import ManageMediaMenuLayout from './ManageMediaMenuLayout.svelte';
import FullScreenModal from '../../Modal/FullScreenModal.svelte';
import ManageMediaMenuLayout from '../MediaManagerMenuLayout.svelte';
import {
type MovieFileResource,
radarrApi,
type RadarrRelease
} from '../../apis/radarr/radarr-api';
import ReleaseList from './Releases/ReleaseList.svelte';
import FilesList from './LocalFiles/FilesList.svelte';
import { modalStack } from '../Modal/modal.store';
import FileActionsModal from './LocalFiles/FileActionsModal.svelte';
import DownloadsList from './DownloadsList.svelte';
import { useRequest } from '../../stores/data.store';
} from '../../../apis/radarr/radarr-api';
import ReleaseList from '../ReleaseList.svelte';
import FilesList from '../FileList.svelte';
import { modalStack } from '../../Modal/modal.store';
import FileActionsModal from '../modals/FileActionsModal.svelte';
import DownloadsList from '../DownloadList.svelte';
import { useRequest } from '../../../stores/data.store';
import { derived, type Readable } from 'svelte/store';
import ReleaseActionsModal from './Releases/ReleaseActionsModal.svelte';
import type { SonarrRelease } from '../../apis/sonarr/sonarr-api';
import Button from '../Button.svelte';
import type { FileResource } from '../../apis/combined-types';
import ReleaseActionsModal from '../modals/ReleaseActionsModal.svelte';
import type { SonarrRelease } from '../../../apis/sonarr/sonarr-api';
import Button from '../../Button.svelte';
import type { FileResource } from '../../../apis/combined-types';
export let modalId: symbol;
export let hidden: boolean;

View File

@@ -1,8 +1,8 @@
<script lang="ts">
import { sonarrApi, type SonarrSeason } from '../../apis/sonarr/sonarr-api';
import { useRequest } from '../../stores/data.store';
import Button from '../Button.svelte';
import { scrollIntoView } from '../../selectable';
import { sonarrApi, type SonarrSeason } from '../../../apis/sonarr/sonarr-api';
import { useRequest } from '../../../stores/data.store';
import Button from '../../Button.svelte';
import { scrollIntoView } from '../../../selectable';
export let id: number;
export let selectSeason: (seasonNumber: number) => void;

View File

@@ -1,19 +1,16 @@
<script lang="ts">
import FullScreenModal from '../Modal/FullScreenModal.svelte';
import ManageMediaMenuLayout from './ManageMediaMenuLayout.svelte';
import { radarrApi } from '../../apis/radarr/radarr-api';
import FilesList from './LocalFiles/FilesList.svelte';
import { modalStack } from '../Modal/modal.store';
import FileActionsModal from './LocalFiles/FileActionsModal.svelte';
import DownloadsList from './DownloadsList.svelte';
import { useRequest } from '../../stores/data.store';
import FullScreenModal from '../../Modal/FullScreenModal.svelte';
import ManageMediaMenuLayout from '../MediaManagerMenuLayout.svelte';
import FilesList from '../FileList.svelte';
import { modalStack } from '../../Modal/modal.store';
import FileActionsModal from '../modals/FileActionsModal.svelte';
import DownloadsList from '../DownloadList.svelte';
import { useRequest } from '../../../stores/data.store';
import { derived, type Readable } from 'svelte/store';
import SeasonList from './SeasonList.svelte';
import { sonarrApi } from '../../apis/sonarr/sonarr-api';
import SeasonReleasesModal from './Releases/SeasonReleasesModal.svelte';
import type { FileResource, Release } from '../../apis/combined-types';
import ReleaseActionsModal from './Releases/ReleaseActionsModal.svelte';
import Button from '../Button.svelte';
import { sonarrApi } from '../../../apis/sonarr/sonarr-api';
import SeasonReleasesModal from './modals/EpisodeListModal.svelte';
import type { FileResource } from '../../../apis/combined-types';
export let modalId: symbol;
export let groupId: symbol;
@@ -63,18 +60,6 @@
);
}
const handleSelectRelease = (release: Release) => {
modalStack.create(
ReleaseActionsModal,
{
release,
grabRelease: handleGrabRelease,
status: undefined
},
groupId
);
};
function handleSelectFile(file: FileResource) {
modalStack.create(
FileActionsModal,

View File

@@ -1,18 +1,13 @@
<script lang="ts">
import FullScreenModal from '../../Modal/FullScreenModal.svelte';
import ManageMediaMenuLayout from '../ManageMediaMenuLayout.svelte';
import {
sonarrApi,
type SonarrEpisode,
type SonarrRelease
} from '../../../apis/sonarr/sonarr-api';
import { useRequest } from '../../../stores/data.store';
import Button from '../../Button.svelte';
import { modalStack } from '../../Modal/modal.store';
import ReleaseListModal from './ReleaseListModal.svelte';
import type { RadarrRelease } from '../../../apis/radarr/radarr-api';
import ReleaseActionsModal from './ReleaseActionsModal.svelte';
import type { Release } from '../../../apis/combined-types';
import FullScreenModal from '../../../Modal/FullScreenModal.svelte';
import ManageMediaMenuLayout from '../../MediaManagerMenuLayout.svelte';
import { sonarrApi, type SonarrEpisode } from '../../../../apis/sonarr/sonarr-api';
import { useRequest } from '../../../../stores/data.store';
import Button from '../../../Button.svelte';
import { modalStack } from '../../../Modal/modal.store';
import ReleaseListModal from '../../modals/ReleaseListModal.svelte';
import ReleaseActionsModal from '../../modals/ReleaseActionsModal.svelte';
import type { Release } from '../../../../apis/combined-types';
export let modalId: symbol;
export let groupId: symbol;

View File

@@ -12,12 +12,12 @@
import Button from '../Button.svelte';
import { playerState } from '../VideoPlayer/VideoPlayer';
import { modalStack } from '../Modal/modal.store';
import ManageMediaModal from '../ManageMedia/RadarrMediaMangerModal.svelte';
import ManageMediaModal from '../MediaManager/radarr/RadarrMediaMangerModal.svelte';
import { derived } from 'svelte/store';
import EpisodeCarousel from './EpisodeCarousel.svelte';
import { scrollIntoView, Selectable } from '../../selectable';
import ScrollHelper from '../ScrollHelper.svelte';
import SonarrMediaMangerModal from '../ManageMedia/SonarrMediaMangerModal.svelte';
import SonarrMediaMangerModal from '../MediaManager/sonarr/SonarrMediaMangerModal.svelte';
export let id: string;

View File

@@ -12,7 +12,7 @@
import DetachedPage from '../components/DetachedPage/DetachedPage.svelte';
import { modalStack } from '../components/Modal/modal.store';
import { playerState } from '../components/VideoPlayer/VideoPlayer';
import ManageMediaModal from '../components/ManageMedia/RadarrMediaMangerModal.svelte';
import ManageMediaModal from '../components/MediaManager/radarr/RadarrMediaMangerModal.svelte';
export let id: string;