Rename Search "Date" filter to "Created date" and column to "Created" for report-style types - #99216
Conversation
Add dedicated search.filters.createdDate / search.filters.created keys (all 11 locales), repoint FILTER_VIEW_MAP[DATE] and getSearchColumnTranslationKey plus the three SearchTableHeader builders, and widen the narrow DATE column (w62 -> w80) so "Created" + sort arrow fit without truncation. common.date is left untouched. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
getTableMinWidth adds 48 for DATE vs 72 for SUBMITTED/APPROVED/POSTED; the "Created" header needs the same room, so bump it to 72 to keep the fixed cell width (w80) and the horizontal-scroll min-width consistent. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per the issue clarification, keep "Date" for type:expense (and the opened single-report table) and show "Created"/"Created date" only for type:expense-report. Thread the active Search type through the date label sources (getSearchColumnTranslationKey, filter-menu labels via getFilterViewLabelKey) and gate the DATE column widening on expense-report. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Asserts getSearchColumnTranslationKey, getFilterViewLabelKey, the expense column builder and getTableMinWidth all keep "Date" for every type except expense-report, so the scoped behavior can't silently regress to all types. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…stay Date) Per the team clarification (invoice is treated like a report, trip is an expense), the report-style rename now covers type:invoice as well as type:expense-report. Introduce an isCreatedDateType(type) predicate (expense-report OR invoice) and use it at every date-label source: getSearchColumnTranslationKey, getFilterViewLabelKey, getTableMinWidth, the SortableTableHeader isDateColumnCreated prop, and getExpenseHeaders (now type-aware so shared expense/trip/opened-report callers stay on Date). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…n misalignment) The header/min-width for type:invoice now render the wider Created column, but invoice results render through ExpenseFlatSearchView -> TransactionItemRow (the same transaction-row path as expense), whose DATE cell was fixed at w62. That left the invoice header at w80 while its rows stayed w62 -> misaligned columns. Thread an isDateColumnCreated flag from ExpenseFlatSearchView (true only for type:invoice) through TransactionListItem -> TransactionItemRow to the DATE cell so rows match the header. The opened single-report table passes nothing (defaults false), so it stays on the narrow Date column. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Hey, I noticed you changed If you want to automatically generate translations for other locales, an Expensify employee will have to:
Alternatively, if you are an external contributor, you can run the translation script locally with your own OpenAI API key. To learn more, try running: npx bun ./scripts/generateTranslations.ts --helpTypically, you'd want to translate only what you changed by running |
|
@arosiclair Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a205a3b023
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
Codecov Report✅ Changes either increased or maintained existing code coverage, great job!
|
… with the widened Created header
|
@codex review |
|
Codex Review: Didn't find any major issues. Another round soon, please! Reviewed commit: ℹ️ About Codex in GitHubCodex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
If Codex has suggestions, it will comment; otherwise it will react with 👍. When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback". |
|
Thanks for the heads-up. All 10 non-English locales already include the two new keys ( |
Explanation of Change
Renames the Search
Datefilter toCreated dateand the table column header toCreated, scoped to report-style types only —expense-reportandinvoice(invoice is treated like a report). Every other type (expense,trip,chat,task), the opened single-report table, and every non-Search surface keepDate.The rename is gated on a single shared predicate (
isCreatedDateType) reused at every label source: the column-header builders,getSearchColumnTranslationKey(Sort by / Edit columns / saved search / Export current view CSV) and the filter-menu label. The date column is widened (w62 → w80, min-width48 → 72) only for those report-style types so the longerCreatedheader doesn't clip against its active-sort caret. Thedate:query key andsortBywire value never change, so saved searches, deep links and optimistic rows keep working — only visible labels move, and only in report-style Search.Fixed Issues
$ #98148
PROPOSAL: #98148 (comment)
Tests
Expenses— verify the date filter option and the column header both readDate.Expense reportsandInvoices— verify the filter option readsCreated dateand the column header, Sort by, Edit columns and Export current view (CSV) all readCreated.Trips,ChatsandTasks— verify they all keepDate.Date.Datelabel (e.g. the IOU date field) is unchanged.Offline tests
Same as Tests. This is a pure relabel with no API calls, so behavior is identical online and offline.
QA Steps
Same as Tests.
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectionAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
demo-video.mp4
The
type:expensetable keeps theDatecolumn header — the rename only applies totype:expense-report.