From 9c1a2a4a8d0c81c965893f9b5b34c8f286dba58e Mon Sep 17 00:00:00 2001 From: jeffvli Date: Tue, 30 May 2023 19:34:07 -0700 Subject: [PATCH] Fix playlist form - Invalid initial state and definition for public playlist --- .../components/create-playlist-form.tsx | 2 +- .../components/playlist-detail-content.tsx | 64 +++---------------- .../components/save-as-playlist-form.tsx | 2 +- .../components/update-playlist-form.tsx | 6 +- 4 files changed, 16 insertions(+), 58 deletions(-) diff --git a/src/renderer/features/playlists/components/create-playlist-form.tsx b/src/renderer/features/playlists/components/create-playlist-form.tsx index dd9a3716..1fd4f99c 100644 --- a/src/renderer/features/playlists/components/create-playlist-form.tsx +++ b/src/renderer/features/playlists/components/create-playlist-form.tsx @@ -97,7 +97,7 @@ export const CreatePlaylistForm = ({ onCancel }: CreatePlaylistFormProps) => { {isPublicDisplayed && ( )} {server?.type === ServerType.NAVIDROME && ( diff --git a/src/renderer/features/playlists/components/playlist-detail-content.tsx b/src/renderer/features/playlists/components/playlist-detail-content.tsx index ee5425c6..cab88d93 100644 --- a/src/renderer/features/playlists/components/playlist-detail-content.tsx +++ b/src/renderer/features/playlists/components/playlist-detail-content.tsx @@ -2,21 +2,12 @@ import { ColDef, RowDoubleClickedEvent } from '@ag-grid-community/core'; import type { AgGridReact as AgGridReactType } from '@ag-grid-community/react/lib/agGridReact'; import { Box, Group } from '@mantine/core'; import { closeAllModals, openModal } from '@mantine/modals'; -import { useQueryClient } from '@tanstack/react-query'; import { MutableRefObject, useMemo, useRef } from 'react'; import { RiMoreFill } from 'react-icons/ri'; import { generatePath, useNavigate, useParams } from 'react-router'; import { Link } from 'react-router-dom'; import styled from 'styled-components'; -import { api } from '/@/renderer/api'; -import { queryKeys } from '/@/renderer/api/query-keys'; -import { - LibraryItem, - QueueSong, - SortOrder, - UserListQuery, - UserListSort, -} from '/@/renderer/api/types'; +import { LibraryItem, QueueSong } from '/@/renderer/api/types'; import { Button, ConfirmModal, DropdownMenu, MotionGroup, toast } from '/@/renderer/components'; import { getColumnDefs, @@ -29,7 +20,7 @@ import { SMART_PLAYLIST_SONG_CONTEXT_MENU_ITEMS, } from '/@/renderer/features/context-menu/context-menu-items'; import { usePlayQueueAdd } from '/@/renderer/features/player'; -import { UpdatePlaylistForm } from '/@/renderer/features/playlists/components/update-playlist-form'; +import { openUpdatePlaylistModal } from '/@/renderer/features/playlists/components/update-playlist-form'; import { useDeletePlaylist } from '/@/renderer/features/playlists/mutations/delete-playlist-mutation'; import { usePlaylistDetail } from '/@/renderer/features/playlists/queries/playlist-detail-query'; import { usePlaylistSongListInfinite } from '/@/renderer/features/playlists/queries/playlist-song-list-query'; @@ -67,7 +58,6 @@ export const PlaylistDetailContent = ({ tableRef }: PlaylistDetailContentProps) const server = useCurrentServer(); const detailQuery = usePlaylistDetail({ query: { id: playlistId }, serverId: server?.id }); const playButtonBehavior = usePlayButtonBehavior(); - const queryClient = useQueryClient(); const playlistSongsQueryInfinite = usePlaylistSongListInfinite({ options: { @@ -158,47 +148,6 @@ export const PlaylistDetailContent = ({ tableRef }: PlaylistDetailContentProps) }); }; - const openUpdatePlaylistModal = async () => { - const query: UserListQuery = { - sortBy: UserListSort.NAME, - sortOrder: SortOrder.ASC, - startIndex: 0, - }; - - if (!server) return; - - const users = await queryClient.fetchQuery({ - queryFn: ({ signal }) => - api.controller.getUserList({ apiClientProps: { server, signal }, query }), - queryKey: queryKeys.users.list(server?.id || '', query), - }); - - openModal({ - children: ( - - ), - title: 'Edit playlist', - }); - }; - const handleRowDoubleClick = (e: RowDoubleClickedEvent) => { if (!e.data) return; @@ -242,7 +191,14 @@ export const PlaylistDetailContent = ({ tableRef }: PlaylistDetailContentProps) ))} - Edit playlist + { + if (!detailQuery.data || !server) return; + openUpdatePlaylistModal({ playlist: detailQuery.data, server }); + }} + > + Edit playlist + Delete playlist diff --git a/src/renderer/features/playlists/components/save-as-playlist-form.tsx b/src/renderer/features/playlists/components/save-as-playlist-form.tsx index 4e6a892d..7ce0246a 100644 --- a/src/renderer/features/playlists/components/save-as-playlist-form.tsx +++ b/src/renderer/features/playlists/components/save-as-playlist-form.tsx @@ -70,7 +70,7 @@ export const SaveAsPlaylistForm = ({ {isPublicDisplayed && ( )} diff --git a/src/renderer/features/playlists/components/update-playlist-form.tsx b/src/renderer/features/playlists/components/update-playlist-form.tsx index ac978ba7..5990d9e5 100644 --- a/src/renderer/features/playlists/components/update-playlist-form.tsx +++ b/src/renderer/features/playlists/components/update-playlist-form.tsx @@ -88,13 +88,13 @@ export const UpdatePlaylistForm = ({ users, query, body, onCancel }: UpdatePlayl />