simplify disc/subtitle for album list

This commit is contained in:
Kendall Garner 2024-08-25 21:34:43 -07:00
parent b41a1a8b15
commit 8a8542ddb1
No known key found for this signature in database
GPG key ID: 18D2767419676C87
3 changed files with 32 additions and 20 deletions

View file

@ -19,8 +19,11 @@ export const FullWidthDiscCell = ({ node, data, api }: ICellRendererParams) => {
const handleToggleDiscNodes = () => {
if (!data) return;
const discNumber = Number(node.data.id.split('-')[1]);
const nodes = getNodesByDiscNumber({ api, discNumber });
const split: string[] = node.data.id.split('-');
const discNumber = Number(split[1]);
// the subtitle could have '-' in it; make sure to have all remaining items
const subtitle = split.length === 3 ? split.slice(2).join('-') : null;
const nodes = getNodesByDiscNumber({ api, discNumber, subtitle });
setNodeSelection({ isSelected: !isSelected, nodes });
setIsSelected((prev) => !prev);

View file

@ -1,11 +1,16 @@
import { GridApi, RowNode } from '@ag-grid-community/core';
export const getNodesByDiscNumber = (args: { api: GridApi; discNumber: number }) => {
const { api, discNumber } = args;
export const getNodesByDiscNumber = (args: {
api: GridApi;
discNumber: number;
subtitle: string | null;
}) => {
const { api, discNumber, subtitle } = args;
const nodes: RowNode<any>[] = [];
api.forEachNode((node) => {
if (node.data.discNumber === discNumber) nodes.push(node);
if (node.data.discNumber === discNumber && node.data.discSubtitle === subtitle)
nodes.push(node);
});
return nodes;