-
Notifications
You must be signed in to change notification settings - Fork 3.1k
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
Create Attendees item row for editing requests #48870
Create Attendees item row for editing requests #48870
Conversation
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.
Great! Just fix this one typescript error and we're good to go with this PR 😃
type IOURequestStepAttendeesProps = IOURequestStepAttendeesOnyxProps & WithWritableReportOrNotFoundProps<typeof SCREENS.MONEY_REQUEST.STEP_ATTENDEES>; | ||
type IOURequestStepAttendeesProps = IOURequestStepAttendeesOnyxProps & | ||
WithWritableReportOrNotFoundProps<typeof SCREENS.MONEY_REQUEST.STEP_ATTENDEES> & | ||
WithFullTransactionOrNotFoundProps<typeof SCREENS.MONEY_REQUEST.STEP_ATTENDEES>; |
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.
I think in the end this is not needed 😅
@@ -22,6 +22,7 @@ type MoneyRequestRouteName = | |||
| typeof SCREENS.MONEY_REQUEST.CREATE | |||
| typeof SCREENS.MONEY_REQUEST.STEP_DISTANCE | |||
| typeof SCREENS.MONEY_REQUEST.STEP_AMOUNT | |||
| typeof SCREENS.MONEY_REQUEST.STEP_ATTENDEES |
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.
So here also, it's not needed
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.
LGTM 🚀
@allgandalf 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] |
@ZhenjaHorbach since you have full context in attendees feature and @allgandalf is probably not around, would you like to be C+ for this issue? 🙏 |
Sure ! |
Reviewer Checklist
Screenshots/VideosAndroid: Nativeandroid.movAndroid: mWeb Chromeandroid-web.moviOS: Nativeios.moviOS: mWeb Safariios-web.movMacOS: Chrome / Safariweb.movMacOS: Desktopdesktop.mov |
Hey i am around, I will work on this PR today |
@ZhenjaHorbach, It’s alright I can work on this PR today 😄 |
I think its part of this discussion because it is the same project ! https://expensify.slack.com/archives/C02NK2DQWUX/p1725534128533069 |
Ohh is it? can you please confirm about that |
This is just my opinion 😅 |
Whoops, sorry for the confusion 😅 |
@allgandalf ah yes, sorry I didn't notice the auto-assignment here. |
@ZhenjaHorbach please continue and let me know when the checklist is looking good 👍 |
No problem |
This comment has been minimized.
This comment has been minimized.
|
||
// We have to use regex, because Violation limit is given in a inconvenient form: "$2,000.00" | ||
getViolationAmountLimit(violation: TransactionViolation): number { | ||
return Number(violation.data?.formattedLimit?.replace(/[^0-9]+/g, '')); |
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.
/[^0-9]+/g
We use this regex in several places
Let's create constant for this !
@@ -233,7 +233,10 @@ function MoneyRequestConfirmationListFooter({ | |||
|
|||
const shouldShowTags = useMemo(() => isPolicyExpenseChat && OptionsListUtils.hasEnabledTags(policyTagLists), [isPolicyExpenseChat, policyTagLists]); | |||
const isMultilevelTags = useMemo(() => PolicyUtils.isMultiLevelTags(policyTags), [policyTags]); | |||
const shouldShowAttendees = useMemo(() => !!policy?.id && (policy?.type === CONST.POLICY.TYPE.CORPORATE || policy?.type === CONST.POLICY.TYPE.TEAM), [policy?.id, policy?.type]); | |||
const shouldShowAttendees = useMemo( | |||
() => iouType === CONST.IOU.TYPE.SUBMIT && !!policy?.id && (policy?.type === CONST.POLICY.TYPE.CORPORATE || policy?.type === CONST.POLICY.TYPE.TEAM), |
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.
I think we can create a utility for shouldShowAttendees
Since this condition is used in several places
But otherwise the changes look good ! |
@SzymczakJ |
@ZhenjaHorbach Kuba is a bit busy with other task so I updated the branch and adjusted to your comments 😉 |
Thanks ! |
LGTM ! |
@Julesssss could you take a look at this one? |
🧪🧪 Use the links below to test this adhoc build on Android, iOS, Desktop, and Web. Happy testing! 🧪🧪 |
d17cada
into
Expensify:feature-attendeeTracking
Details
This Pr adds option to edit attendees n a money request. Keep in mind that request for editing and requesting money with attendees is not working yet, but with onyx optimistic data everything should be easy to test.
Fixed Issues
$ #47173 (comment)
PROPOSAL:
Tests
Offline tests
QA Steps
Same as tests
PR Author Checklist
### Fixed Issues
section aboveTests
sectionOffline steps
sectionQA steps
sectiontoggleReport
and notonIconClick
)myBool && <MyComponent />
.src/languages/*
files and using the translation methodSTYLE.md
) were followedAvatar
, I verified the components usingAvatar
are working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)
)Avatar
is modified, I verified thatAvatar
is working as expected in all cases)Design
label and/or tagged@Expensify/design
so the design team can review the changes.ScrollView
component to make it scrollable when more elements are added to the page.main
branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTest
steps.Screenshots/Videos
Android: Native
android.mov
Android: mWeb Chrome
androidweb.mov
iOS: Native
ios.mov
iOS: mWeb Safari
iosweb.mov
MacOS: Chrome / Safari
web.mov
MacOS: Desktop
desktop.mov