You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
92 lines
2.7 KiB
92 lines
2.7 KiB
import React from 'react'; |
|
import { QueryWindowReducer } from "./query/QueryWindow"; |
|
import { ArtistWindowReducer } from "./artist/ArtistWindow"; |
|
import SearchIcon from '@material-ui/icons/Search'; |
|
import PersonIcon from '@material-ui/icons/Person'; |
|
import AlbumIcon from '@material-ui/icons/Album'; |
|
import LocalOfferIcon from '@material-ui/icons/LocalOffer'; |
|
import AudiotrackIcon from '@material-ui/icons/Audiotrack'; |
|
import LoyaltyIcon from '@material-ui/icons/Loyalty'; |
|
import { SongWindowReducer } from './song/SongWindow'; |
|
import { AlbumWindowReducer } from './album/AlbumWindow'; |
|
import { TagWindowReducer } from './tag/TagWindow'; |
|
import { songGetters } from '../../lib/songGetters'; |
|
import { ManageTagsWindowReducer } from './manage_tags/ManageTagsWindow'; |
|
|
|
export enum WindowType { |
|
Query = "Query", |
|
Artist = "Artist", |
|
Album = "Album", |
|
Tag = "Tag", |
|
Song = "Song", |
|
ManageTags = "ManageTags", |
|
} |
|
|
|
export interface WindowState { |
|
tabLabel: string, |
|
} |
|
|
|
export const newWindowReducer = { |
|
[WindowType.Query]: QueryWindowReducer, |
|
[WindowType.Artist]: ArtistWindowReducer, |
|
[WindowType.Album]: AlbumWindowReducer, |
|
[WindowType.Song]: SongWindowReducer, |
|
[WindowType.Tag]: TagWindowReducer, |
|
[WindowType.ManageTags]: ManageTagsWindowReducer, |
|
} |
|
|
|
export const newWindowState = { |
|
[WindowType.Query]: () => { |
|
return { |
|
tabLabel: <><SearchIcon/>Query</>, |
|
editingQuery: false, |
|
query: null, |
|
resultsForQuery: null, |
|
}; |
|
}, |
|
[WindowType.Artist]: () => { |
|
return { |
|
tabLabel: <><PersonIcon/>Artist 1</>, |
|
artistId: 1, |
|
metadata: null, |
|
pendingChanges: null, |
|
songGetters: songGetters, |
|
songsByArtist: null, |
|
} |
|
}, |
|
[WindowType.Album]: () => { |
|
return { |
|
tabLabel: <><AlbumIcon/>Album 1</>, |
|
albumId: 1, |
|
metadata: null, |
|
pendingChanges: null, |
|
songGetters: songGetters, |
|
songsOnAlbum: null, |
|
} |
|
}, |
|
[WindowType.Song]: () => { |
|
return { |
|
tabLabel: <><AudiotrackIcon/>Song 1</>, |
|
songId: 1, |
|
metadata: null, |
|
pendingChanges: null, |
|
} |
|
}, |
|
[WindowType.Tag]: () => { |
|
return { |
|
tabLabel: <><LocalOfferIcon/>Tag 1</>, |
|
tagId: 1, |
|
metadata: null, |
|
pendingChanges: null, |
|
songGetters: songGetters, |
|
songsWithTag: null, |
|
} |
|
}, |
|
[WindowType.ManageTags]: () => { |
|
return { |
|
tabLabel: <><LoyaltyIcon/>Manage Tags</>, |
|
fetchedTags: null, |
|
pendingChanges: [], |
|
} |
|
} |
|
} |