diff --git a/components/MediaSourceSelector.tsx b/components/MediaSourceSelector.tsx index 34f02fd9..4888692a 100644 --- a/components/MediaSourceSelector.tsx +++ b/components/MediaSourceSelector.tsx @@ -29,6 +29,27 @@ export const MediaSourceSelector: React.FC = ({ [item, selected] ); + const commonPrefix = useMemo(() => { + const mediaSources = item.MediaSources || []; + if (!mediaSources.length) return ""; + + let commonPrefix = ""; + for (let i = 0; i < mediaSources[0].Name.length; i++) { + const char = mediaSources[0].Name[i]; + if (mediaSources.every((source) => source.Name[i] === char)) { + commonPrefix += char; + } else { + commonPrefix = commonPrefix.slice(0, -1); + break; + } + } + return commonPrefix; + }, [item.MediaSources]); + + const name = (name?: string | null) => { + return name?.replace(commonPrefix, "").toLowerCase(); + }; + return ( = ({ }} > - {`${name(source.Name)} - ${convertBitsToMegabitsOrGigabits( - source.Size - )}`} + {`${name(source.Name)}`} ))} @@ -74,9 +93,3 @@ export const MediaSourceSelector: React.FC = ({ ); }; - -const name = (name?: string | null) => { - if (name && name.length > 40) - return name.substring(0, 20) + " [...] " + name.substring(name.length - 20); - return name; -};