Closed lanitochka17 closed 3 months ago
Triggered auto assignment to @hayata-suenaga (DeployBlockerCash
), see https://stackoverflowteams.com/c/expensify/questions/9980/ for more details.
:wave: Friendly reminder that deploy blockers are time-sensitive ⏱ issues! Check out the open `StagingDeployCash` deploy checklist to see the list of PRs included in this release, then work quickly to do one of the following:
@hayata-suenaga FYI I haven't added the External label as I wasn't 100% sure about this issue. Please take a look and add the label if you agree it's a bug and can be handled by external contributors
missed this. working on it right now
I don't think we have to block deploy for this. removing the deploy blocker label
Job added to Upwork: https://www.upwork.com/jobs/~010e432e93c8345898
Triggered auto assignment to Contributor-plus team member for initial proposal review - @jjcoffee (External
)
Triggered auto assignment to @abekkala (Bug
), see https://stackoverflow.com/c/expensify/questions/14418 for more details. Please add this bug to a GH project, as outlined in the SO.
Web - Categorizing - Folder icon in empty state screen is not centered
SVG icon has space on the right here
Adjust or edit the SVG icon to remove the space on the right.
<BlockingView
icon={Illustrations.EmptyStateExpenses}
- iconWidth={variables.modalTopIconWidth}
+ iconWidth={184}
- iconHeight={variables.modalTopIconHeight}
+ iconHeight={116}
title={translate('workspace.categories.emptyCategories.title')}
subtitle={translate('workspace.categories.emptyCategories.subtitle')}
contentFitImage="contain"
/>
Using an SVG tool, we can adjust the original SCG file, not the width/height to fit the size we need 200/164
because the SVG icon has a size of 184/116 so the contentFitImage="contain"
can't make an SVG bigger than the original size
Web - Categorizing - Folder icon in empty state screen is not centered
Unlike the workspace page, the IOURequestStepCaterogy page has a block view with the contentFitImage
attribute.
We should use the contentFitImage="contain"
<BlockingView
icon={Illustrations.EmptyStateExpenses}
title={translate('workspace.categories.emptyCategories.title')}
subtitle={translate('workspace.categories.emptyCategories.subtitle')}
/>
Web - Categorizing - Folder icon in empty state screen is not centered
The main problem with issue is that we use incorrect width and height
To fix this issue we can use width and height from WorkspaceEmptyStateSection
(In this component we always pass the same image Illustrations.EmptyStateExpenses
)
width={184}
height={116}
NA
In IOURequestStepCategory
, we render the empty category component by using BlockingView with the wrong width and height attribute
We implemented the WorkspaceEmptyStateSection
component to render the empty category component. Thus, we should use WorkspaceEmptyStateSection
instead of BlockingView in IOURequestStepCategory
page
With this approach, we need to adjust some CSS attributes in WorkspaceEmptyStateSection
to use some styles from the parent component like backgroundColor, textColor,...
NA
Proposal
Please re-state the problem that we are trying to solve in this issue.
Web - Categorizing - Folder icon in empty state screen is not centered
What is the root cause of that problem?
SVG icon has space on the right here
What changes do you think we should make in order to solve the problem?
Adjust or edit the SVG icon to remove the space on the right.
<BlockingView icon={Illustrations.EmptyStateExpenses} - iconWidth={variables.modalTopIconWidth} + iconWidth={184} - iconHeight={variables.modalTopIconHeight} + iconHeight={116} title={translate('workspace.categories.emptyCategories.title')} subtitle={translate('workspace.categories.emptyCategories.subtitle')} contentFitImage="contain" />
What alternative solutions did you explore?
Using an SVG tool, we can adjust the original SCG file, not the width/height to fit the size we need 200/164
because the SVG icon has a size of 184/116 so the
contentFitImage="contain"
can't make an SVG bigger than the original size
@dragnoir If you update your proposition and decide to use someone else's solution Please, leave a comment
@ZhenjaHorbach I added the alternative solutions. Did anyone posted using an SVG tools before me?
@ZhenjaHorbach I added the alternative solutions. Did anyone posted using an SVG tools before me?
I'm talking about the main solution )
@ZhenjaHorbach it's the same, I just added the values 184/116 and mentioned the difference.
Adjust or edit the SVG icon to remove the space on the right.
this is my main proposal, I just didn't mention the new values.
@ZhenjaHorbach it's the same, I just added the values 184/116 and mentioned the difference.
Adjust or edit the SVG icon to remove the space on the right.
this is my main proposal, I just didn't mention the new values.
Seriously ?) As for me, you just gave the most abstract solution without any references and without correct values
And then you added a solution like mine after 1 hour
But I don't want to argue
Just take note @jjcoffee When you will check propositions
@dragnoir @ZhenjaHorbach Let's try to keep a good tone here. I know it can be frustrating when you notice edits to other proposals, but these will generally be taken into account by the C+ reviewing. If you feel the C+ has missed something in their review, you're welcome to point it out once the review is complete. Too much back and forth before the review leads to a messy issue that's harder for everyone to read through. Thanks! :pray:
I think @tienifr has provided the tidiest solution here. This bug appeared because of essentially reimplementing WorkspaceEmptyStateSection
with the wrong width attribute, so it makes sense to use it here to prevent future bugs. Happy to go with them!
@dragnoir The SVG doesn't have the wrong width as you claim in your RCA.
@Tony-MK I'm not sure if your solution would help given the wrong width attribute is used.
@ZhenjaHorbach As above, it makes more sense to just use WorkspaceEmptyStateSection
as it reduces duplicate code and avoids the potential for future regressions.
:ribbon::eyes::ribbon: C+ reviewed
Current assignee @hayata-suenaga is eligible for the choreEngineerContributorManagement assigner, not assigning anyone new.
@jjcoffee what do you mean?
The SVG doesn't have the wrong width as you claim in your RCA.
is iconWidth={variables.modalTopIconWidth
wish is equal to 200px
is the correct width?
@jjcoffee we can't use WorkspaceEmptyStateSection
because this component has a background by default styles.cardSectionContainer
If we go with WorkspaceEmptyStateSection
we will need to add props to change the background, spacing, ...and I don't think this is worthy it here. The component is created for other specific needs.
Can you pls check again?
I think @tienifr has provided the tidiest solution here. This bug appeared because of essentially reimplementing
WorkspaceEmptyStateSection
with the wrong width attribute, so it makes sense to use it here to prevent future bugs. Happy to go with them!@dragnoir The SVG doesn't have the wrong width as you claim in your RCA. @Tony-MK I'm not sure if your solution would help given the wrong width attribute is used. @ZhenjaHorbach As above, it makes more sense to just use
WorkspaceEmptyStateSection
as it reduces duplicate code and avoids the potential for future regressions.🎀👀🎀 C+ reviewed
Actually I made this changes inside IOURequestStepCategory
And I think the current sizes are a little incorrect
So we have to fix sizes and use the same sizes as WorkspaceCategoriesPage
But the reason I didn't use WorkspaceEmptyStateSection
is because to make this component valid
We need to pass exactly the same styles as for BlockingView
for WorkspaceEmptyStateSection
And this logic seemed strange to me
What we're trying to do is make a specific component(WorkspaceEmptyStateSection
) look like a generic one(BlockingView
)
But I don't mind the decision to pass styles for WorkspaceEmptyStateSection
😅
Sorry for the quick proposal, but I wanted to mention that we should reuse the WorkspaceEmptyStateSection
.
@tienifr got it 👍 , I think it's the right solution.
Thank you very much everyone for your proposals. We'll go with @tienifr's proposal this time 😄
📣 @jjcoffee 🎉 An offer has been automatically sent to your Upwork account for the Reviewer role 🎉 Thanks for contributing to the Expensify app!
📣 @tienifr 🎉 An offer has been automatically sent to your Upwork account for the Contributor role 🎉 Thanks for contributing to the Expensify app!
Offer link Upwork job Please accept the offer and leave a comment on the Github issue letting us know when we can expect a PR to be ready for review 🧑💻 Keep in mind: Code of Conduct | Contributing 📖
@jjcoffee can you please check https://github.com/Expensify/App/issues/43064#issuecomment-2150117919 !
@jjcoffee can you check the comment above?
@dragnoir The need to adjust styles in that component is mentioned in the proposal that I have selected. The whole point of having a reusable component is so that we can reuse it across the app. Needing to tweak the style is a necessary part of it being reusable across different screens. The benefit of not having to re-declare the icon sizes (what if they change?) far outweighs having to declare the style.
@jjcoffee pls check again
The WorkspaceEmptyStateSection
uses a hard coded width
and height
. Only icons with those sizes will fit, all the other icons will not be centered. Small icons will be on the left and bigger icons will be cutted.
So for this new proposal we will need to:
shouldStyleAsCard
for if it should use a background or notDo you think this is better that just assigning the right width and hight for BlockingView
? We already use BlockingView in many UIs and we assign the width/height.
The problem is the main SVG icon is small, if the design design can update to bigger one, we don't need to change any code!!
Anyway, thanks again for your review. I just think it's not worthy all those changes.
@dragnoir WorkspaceEmptyStateSection
is only used with the Illustrations.EmptyStateExpenses
icon, so it will always have that specific size that is hardcoded in the component. I'm not sure the reason why the icon isn't also hardcoded in the component given the component's name, but this isn't really a generic component for inserting any old icon.
Again it's not much of a trade-off to have to add a few more props to allow the component and thus the empty state icon to be generic enough to be used in other parts of the app. The benefit is clear - if we ever change the icon we only have one place to update the sizing.
Nearly there with the PR, just waiting for an additional screenshot and we should be good to go!
PR approved from my side.
I've been OOO. I approved and merged the PR!
Reviewing
label has been removed, please complete the "BugZero Checklist".
The solution for this issue has been :rocket: deployed to production :rocket: in version 1.4.84-3 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2024-06-24. :confetti_ball:
For reference, here are some details about the assignees on this issue:
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
The solution for this issue has been :rocket: deployed to production :rocket: in version 1.4.85-7 and is now subject to a 7-day regression period :calendar:. Here is the list of pull requests that resolve this issue:
If no regressions arise, payment will be issued on 2024-06-28. :confetti_ball:
For reference, here are some details about the assignees on this issue:
BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:
Regression Test Proposal
Categorize it
from the actionable whisperDo we agree 👍 or 👎
@tienifr @jjcoffee - payments sent and contracts ended - thank you! 🎉
If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!
Version Number: 1.4-79-2 Reproducible in staging?: Y Reproducible in production?: N If this was caught during regression testing, add the test name, ID and link from TestRail: N/A Issue reported by: Applause - Internal Team
Issue found when executing PR https://github.com/Expensify/App/pull/41344
Action Performed:
Expected Result:
The folder icon in empty state screen should be centered
Actual Result:
The folder icon in empty state screen is not centered. It is aligned a bit to the left
Workaround:
Unknown
Platforms:
Which of our officially supported platforms is this issue occurring on?
Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/78819774/31a3b6f8-4a43-4a4b-81e2-2f8c72955078
View all open jobs on GitHub
Upwork Automation - Do Not Edit
Issue Owner
Current Issue Owner: @abekkala