From 20bbbcfca256ef027e7f44aae81d5d3b0f08aeb3 Mon Sep 17 00:00:00 2001 From: Jacob Fletcher Date: Wed, 25 Jun 2025 09:15:55 -0400 Subject: [PATCH] fix(ui): date format of useAsTitle lost after changing value (#12928) When a collection's `admin.useAsTitle` property points to a date field, the date format is lost after making a change to the field's value. Before: https://github.com/user-attachments/assets/10e61517-3245-4645-be4c-33017bfc860c After: https://github.com/user-attachments/assets/d3d62d2e-364e-48a2-91c1-2ce4b0962fe5 --- - To see the specific tasks where the Asana app for GitHub is being used, see below: - https://app.asana.com/0/0/1210632330039313 --- .../ui/src/views/Edit/SetDocumentTitle/index.tsx | 9 ++------- test/fields/collections/Date/e2e.spec.ts | 13 +++++++++++++ 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/packages/ui/src/views/Edit/SetDocumentTitle/index.tsx b/packages/ui/src/views/Edit/SetDocumentTitle/index.tsx index fd9662fea2..9623c65f10 100644 --- a/packages/ui/src/views/Edit/SetDocumentTitle/index.tsx +++ b/packages/ui/src/views/Edit/SetDocumentTitle/index.tsx @@ -30,14 +30,9 @@ export const SetDocumentTitle: React.FC<{ const title = formatDocTitle({ collectionConfig, - data: { id: '' }, + data: { id: '', [useAsTitle]: field?.value || '' }, dateFormat: dateFormatFromConfig, - fallback: - typeof field === 'string' - ? field - : typeof field === 'number' - ? String(field) - : (field?.value as string) || fallback, + fallback, globalConfig, i18n, }) diff --git a/test/fields/collections/Date/e2e.spec.ts b/test/fields/collections/Date/e2e.spec.ts index 53e78f8b68..9a4acce04d 100644 --- a/test/fields/collections/Date/e2e.spec.ts +++ b/test/fields/collections/Date/e2e.spec.ts @@ -85,6 +85,19 @@ describe('Date', () => { await expect(page.locator('.doc-header__title.render-title')).toContainText('August') }) + test('should retain date format in useAsTitle after modifying value', async () => { + await page.goto(url.list) + await page.locator('.row-1 .cell-default a').click() + await expect(page.locator('.doc-header__title.render-title')).toContainText('August') + + const dateField = page.locator('#field-default input') + await expect(dateField).toBeVisible() + await dateField.fill('02/07/2023') + + await expect(dateField).toHaveValue('02/07/2023') + await expect(page.locator('.doc-header__title.render-title')).toContainText('February') + }) + test('should clear date', async () => { await page.goto(url.create) const dateField = page.locator('#field-default input')