diff --git a/ui/src/album/AlbumDatesField.jsx b/ui/src/album/AlbumDatesField.jsx
index e4cdeedc..ce130138 100644
--- a/ui/src/album/AlbumDatesField.jsx
+++ b/ui/src/album/AlbumDatesField.jsx
@@ -10,6 +10,12 @@ export const AlbumDatesField = ({ className, ...rest }) => {
const releaseYear = releaseDate?.toString().substring(0, 4)
const yearRange =
formatRange(record, 'originalYear') || record['maxYear']?.toString()
+
+ // Don't show anything if the year starts with "0"
+ if (yearRange === '0' || releaseYear?.startsWith('0')) {
+ return null
+ }
+
let label = yearRange
if (releaseYear !== undefined && yearRange !== releaseYear) {
diff --git a/ui/src/album/AlbumDatesField.test.jsx b/ui/src/album/AlbumDatesField.test.jsx
new file mode 100644
index 00000000..9bcd4156
--- /dev/null
+++ b/ui/src/album/AlbumDatesField.test.jsx
@@ -0,0 +1,112 @@
+import { describe, test, expect, vi } from 'vitest'
+import { render } from '@testing-library/react'
+import { RecordContextProvider } from 'react-admin'
+import { AlbumDatesField } from './AlbumDatesField'
+import { formatRange } from '../common/index.js'
+
+// Mock the formatRange function
+vi.mock('../common/index.js', () => ({
+ formatRange: vi.fn(),
+}))
+
+describe('AlbumDatesField', () => {
+ test('renders nothing when yearRange is "0"', () => {
+ const record = {
+ maxYear: '0',
+ releaseDate: '2020-01-01',
+ }
+
+ vi.mocked(formatRange).mockReturnValue('0')
+
+ const { container } = render(
+
+
+ ,
+ )
+
+ expect(container.firstChild).toBeNull()
+ })
+
+ test('renders nothing when releaseYear is "0"', () => {
+ const record = {
+ maxYear: '2020',
+ releaseDate: '0-01-01',
+ }
+
+ vi.mocked(formatRange).mockReturnValue('2020')
+
+ const { container } = render(
+
+
+ ,
+ )
+
+ expect(container.firstChild).toBeNull()
+ })
+
+ test('renders only yearRange when releaseYear is undefined', () => {
+ const record = {
+ maxYear: '2020',
+ }
+
+ vi.mocked(formatRange).mockReturnValue('2020')
+
+ const { container } = render(
+
+
+ ,
+ )
+
+ expect(container.textContent).toBe('2020')
+ })
+
+ test('renders both years when they are different', () => {
+ const record = {
+ maxYear: '2018',
+ releaseDate: '2020-01-01',
+ }
+
+ vi.mocked(formatRange).mockReturnValue('2018')
+
+ const { container } = render(
+
+
+ ,
+ )
+
+ expect(container.textContent).toBe('♫ 2018 · ○ 2020')
+ })
+
+ test('renders only yearRange when both years are the same', () => {
+ const record = {
+ maxYear: '2020',
+ releaseDate: '2020-01-01',
+ }
+
+ vi.mocked(formatRange).mockReturnValue('2020')
+
+ const { container } = render(
+
+
+ ,
+ )
+
+ expect(container.textContent).toBe('2020')
+ })
+
+ test('applies className when provided', () => {
+ const record = {
+ maxYear: '2020',
+ }
+
+ vi.mocked(formatRange).mockReturnValue('2020')
+
+ const { container } = render(
+
+
+ ,
+ )
+
+ expect(container.firstChild).toHaveClass('test-class')
+ })
+})