|
|
|
@ -14,12 +14,11 @@ import { useParams } from 'react-router'; |
|
|
|
|
import EditTrackDialog from './EditTrackDialog'; |
|
|
|
|
import EditIcon from '@material-ui/icons/Edit'; |
|
|
|
|
import { modifyTrack } from '../../../lib/saveChanges'; |
|
|
|
|
|
|
|
|
|
export type TrackMetadata = serverApi.TrackWithDetails; |
|
|
|
|
import { getTrack } from '../../../lib/backend/tracks'; |
|
|
|
|
|
|
|
|
|
export interface TrackWindowState extends WindowState { |
|
|
|
|
id: number, |
|
|
|
|
metadata: TrackMetadata | null, |
|
|
|
|
metadata: serverApi.Track | null, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export enum TrackWindowStateActions { |
|
|
|
@ -38,17 +37,6 @@ export function TrackWindowReducer(state: TrackWindowState, action: any) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export async function getTrackMetadata(id: number) { |
|
|
|
|
let response: any = await queryTracks( |
|
|
|
|
{ |
|
|
|
|
a: QueryLeafBy.TrackId, |
|
|
|
|
b: id, |
|
|
|
|
leafOp: QueryLeafOp.Equals, |
|
|
|
|
}, 0, 1, serverApi.QueryResponseType.Details |
|
|
|
|
); |
|
|
|
|
return response[0]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export default function TrackWindow(props: {}) { |
|
|
|
|
const { id } = useParams<{ id: string }>(); |
|
|
|
|
const [state, dispatch] = useReducer(TrackWindowReducer, { |
|
|
|
@ -69,8 +57,8 @@ export function TrackWindowControlled(props: { |
|
|
|
|
|
|
|
|
|
useEffect(() => { |
|
|
|
|
if (metadata === null) { |
|
|
|
|
getTrackMetadata(trackId) |
|
|
|
|
.then((m: TrackMetadata) => { |
|
|
|
|
getTrack(trackId) |
|
|
|
|
.then((m: serverApi.Track) => { |
|
|
|
|
dispatch({ |
|
|
|
|
type: TrackWindowStateActions.SetMetadata, |
|
|
|
|
value: m |
|
|
|
|