Skip to content

Commit 5938e1a

Browse files
committed
Turned the tupe into a type.
1 parent 10ca05b commit 5938e1a

File tree

5 files changed

+14
-12
lines changed

5 files changed

+14
-12
lines changed

frontend/src/components/AlbumGrid.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { IonCol, IonGrid, IonIcon, IonRow, IonText } from "@ionic/react"
22
import { IReleases } from "../api"
3+
import { IReleaseTuple } from "../types"
34
import { cloudOfflineOutline } from "ionicons/icons"
45
import "./AlbumGrid.css"
56

@@ -28,7 +29,7 @@ const AlbumGridEntry: React.FC<AlbumProps> = ({ album, index, onClickAlbum }) =>
2829
)
2930

3031
interface CollectionProps {
31-
data: [string, IReleases[]][]
32+
data: IReleaseTuple
3233
onClickAlbum: (album: IReleases) => void
3334
}
3435

frontend/src/components/AlbumList.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {
1212
} from "@ionic/react"
1313
import { disc } from "ionicons/icons"
1414
import { IReleases } from "../api"
15+
import { IReleaseTuple } from "../types"
1516
import "./AlbumList.css"
1617

1718
const AlbumListItem: React.FC<{
@@ -35,7 +36,7 @@ const AlbumListItem: React.FC<{
3536
)
3637

3738
export const AlbumListGroups: React.FC<{
38-
data: [string, IReleases[]][]
39+
data: IReleaseTuple
3940
onClickAlbum: (album: IReleases) => void
4041
}> = ({ data, onClickAlbum }) => (
4142
<>

frontend/src/pages/Collection.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ import { FullpageLoading, AlbumGrid, FullpageInfo, AlbumListGroups } from "../co
2323
import { ViewAlbumDetails } from "../modal"
2424
import { useAuth } from "../hooks"
2525
import { masterSort } from "../utils"
26+
import { IReleaseTuple } from "../types"
2627

2728
const filterActionButtons = [
2829
{
@@ -67,8 +68,8 @@ const CollectionPage: React.FC = () => {
6768
const [loading, setLoading] = useState<{ page: number; pages: number }>({ page: 0, pages: 0 })
6869
const [viewState, setViewState] = useState<"collection" | "want">("collection")
6970
const [dataSorted, setDataSorted] = useState<{
70-
collected: [string, IReleases[]][]
71-
wanted: [string, IReleases[]][]
71+
collected: IReleaseTuple
72+
wanted: IReleaseTuple
7273
}>()
7374
const betaBanner = import.meta.env.VITE_BETA_BANNER
7475

frontend/src/types.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ export type IReleasesSort = {
44
[group: string]: IReleases[]
55
}
66

7+
export type IReleaseTuple = [string, IReleases[]][]
8+
79
export type IStatDisplay = {
810
icon: string
911
value?: number

frontend/src/utils/collectionSort.ts

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { IReleases } from "../api"
2-
import { IReleasesSort } from "../types"
2+
import { IReleasesSort, IReleaseTuple } from "../types"
33

4-
export const splitRecordsByYear = (records: IReleases[]): [string, IReleases[]][] => {
4+
export const splitRecordsByYear = (records: IReleases[]): IReleaseTuple => {
55
const recordsByYear = records.reduce<IReleasesSort>((acc, record) => {
66
const year = new Date(record.date_added).getFullYear().toString()
77
if (!acc[year]) {
@@ -18,7 +18,7 @@ export const splitRecordsByYear = (records: IReleases[]): [string, IReleases[]][
1818
return Object.entries(recordsByYear).sort((a, b) => parseInt(b[0]) - parseInt(a[0]))
1919
}
2020

21-
export const splitRecordsByArtist = (records: IReleases[]): [string, IReleases[]][] => {
21+
export const splitRecordsByArtist = (records: IReleases[]): IReleaseTuple => {
2222
const recordsByArtist = records.reduce<IReleasesSort>((acc, record) => {
2323
const artists = record.basic_information.artists.map((artist) => artist.name)
2424
artists.forEach((artist) => {
@@ -37,7 +37,7 @@ export const splitRecordsByArtist = (records: IReleases[]): [string, IReleases[]
3737
return Object.entries(recordsByArtist).sort((a, b) => a[0].localeCompare(b[0]))
3838
}
3939

40-
export const splitRecordsByLabel = (records: IReleases[]): [string, IReleases[]][] => {
40+
export const splitRecordsByLabel = (records: IReleases[]): IReleaseTuple => {
4141
const recordsByLabel = records.reduce<IReleasesSort>((acc, record) => {
4242
const labels = record.basic_information.labels.map((label) => label.name)
4343
labels.forEach((label) => {
@@ -56,10 +56,7 @@ export const splitRecordsByLabel = (records: IReleases[]): [string, IReleases[]]
5656
return Object.entries(recordsByLabel).sort((a, b) => a[0].localeCompare(b[0]))
5757
}
5858

59-
export const masterSort = (
60-
sort: "release" | "label" | "artist" | "none",
61-
records: IReleases[]
62-
): [string, IReleases[]][] => {
59+
export const masterSort = (sort: "release" | "label" | "artist" | "none", records: IReleases[]): IReleaseTuple => {
6360
switch (sort) {
6461
default:
6562
case "none":

0 commit comments

Comments
 (0)