-
Notifications
You must be signed in to change notification settings - Fork 3.7k
[Behind Time Tracking Beta] Create time expenses in workspace reports #78137
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
grgia
merged 35 commits into
Expensify:main
from
software-mansion-labs:feat/create-time-expense-workspace
Jan 13, 2026
Merged
Changes from all commits
Commits
Show all changes
35 commits
Select commit
Hold shift + click to select a range
a1688cb
Create time expenses in workspace reports
mhawryluk c10f99a
Add IS_TIME_TRACKING_ENABLED constant
mhawryluk 44cb7d1
Small improvements to the time expense creation flow
mhawryluk 29d307c
Accept count and rate in requestMoney action for time expenses
mhawryluk 9ac4350
Reorganize translations
mhawryluk d71fc1e
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk 7a639a8
Add translations
mhawryluk c0eeb2d
IOURequestStepHours improvements
mhawryluk 99bef2a
Remove isTimeTrackingEnabled from policy more_features for now
mhawryluk 901fd0d
Small fix
mhawryluk 9502dd3
Show error when clicking next with invalid hour count entered in IOUR…
mhawryluk 0199290
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk 2de5465
Bring back the time tracking beta
mhawryluk 8e59527
Change computeTimeAmount to treat rate as being a formatted number in…
mhawryluk c7088fe
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk 099d0cd
Use convertToBackendAmount for policy rate
mhawryluk 8353fbe
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk 865ff55
Adjust code for the modified requestMoney api
mhawryluk be93234
Remove unused import after merge
mhawryluk 9849924
Pass type and unit to buildOptimisticTransaction
mhawryluk bc5315e
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk 5ccbf8d
Fix after merge
mhawryluk e2ccc93
Clear time tab input after switching tabs in Create expense RHP
mhawryluk 73e3a21
Small refactor
mhawryluk c68ce35
Another tiny IOURequestStepHours refactor
mhawryluk e56d8ff
Remove unnecessary screen
mhawryluk 2a4eaef
Use constant for hour unit
mhawryluk 1a14e81
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk b5cda50
Fix submodule
mhawryluk 232e23d
Implement review suggestions
mhawryluk aa78697
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk 8de435e
Fix eslint
mhawryluk 71f7c19
Change copy hours to hour when count equals 1
mhawryluk 9425062
Add updated translations
mhawryluk 0311056
Merge branch 'main' into feat/create-time-expense-workspace
mhawryluk File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,18 @@ | ||
| import type {LocalizedTranslate} from '@components/LocaleContextProvider'; | ||
| import {convertToDisplayString} from './CurrencyUtils'; | ||
|
|
||
| /** | ||
| * Computes the transaction amount for given hourly rate (in cents) and hour count. | ||
| */ | ||
| function computeTimeAmount(rateInCents: number, count: number): number { | ||
| return Math.round(rateInCents * count); | ||
| } | ||
|
|
||
| /** | ||
| * Creates an automatic merchant value for time requests. | ||
| */ | ||
| function formatTimeMerchant(hours: number, rate: number, currency: string, translate: LocalizedTranslate): string { | ||
| return translate('iou.timeTracking.hoursAt', hours, convertToDisplayString(rate, currency)); | ||
| } | ||
|
|
||
| export {computeTimeAmount, formatTimeMerchant}; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
should we favor the comment here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
all the other types favor the iouRequestType. do you think there is a situation where this could be an issue?