Skip to content
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

[HOLD for payment 2024-04-05] Convert internal PDF preview into a public library #22998

Closed
6 tasks done
rezkiy37 opened this issue Jul 17, 2023 · 118 comments
Closed
6 tasks done
Assignees
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Internal Requires API changes or must be handled by Expensify staff NewFeature Something to build that is a new item. ring0 Weekly KSv2

Comments

@rezkiy37
Copy link
Contributor

rezkiy37 commented Jul 17, 2023

If you haven’t already, check out our contributing guidelines for onboarding and email contributors@expensify.com to request to join our Slack channel!


Action Performed:

  1. Open an initial issue - [HOLD for payment 2023-08-21] [HOLD for payment 2023-08-17] [$1000] mweb - Chat - Conversation freezes when sending a large PDF file #19918
  2. Read a proposal - [HOLD for payment 2023-08-21] [HOLD for payment 2023-08-17] [$1000] mweb - Chat - Conversation freezes when sending a large PDF file #19918 (comment)
  3. Read important comments, starts from the next one- [HOLD for payment 2023-08-21] [HOLD for payment 2023-08-17] [$1000] mweb - Chat - Conversation freezes when sending a large PDF file #19918 (comment)

Expected Result:

Actually, the Expensify app already uses react-pdf to preview PDF files. However, it does not support the large PDF files. The idea is to create, own and maintain a package. It should support the large PDF files. It is helpful to the community, if the package can be widely used for performance improved PDF viewer. The Expensify application uses the package instead of an internal implementation.

Actual Result:

This is an internal implementation. Recently, we fixed and improved the previewing of large PDF files, directly updating our own codebase - #22760.

Workaround:

The user still can use Expensify without this being fixed.

Area issue was found in:

I was found during the investigating/fixing the next issue - #19918.

Failed WCAG checkpoints

N/A

User impact:

It does not affect the user. It has an impact on the community.

Suggested resolution:

  1. Create a repository within the Expensify organisation.
  2. Implement own PDF previewer based on react-pdf and react-window.
  3. Add and use the previewer in the Expensify app.
  4. Publish the package.

Platforms:

Which of our officially supported platforms is this issue occurring on?

  • Android / native
  • Android / Chrome
  • iOS / native
  • iOS / Safari
  • MacOS / Chrome / Safari
  • MacOS / Desktop

Version Number: N/A
Reproducible in staging?: N/A
Reproducible in production?: N/A
Email or phone of affected tester (no customers): N/A
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
N/A
Expensify/Expensify Issue URL: N/A
Issue reported by: Mykhailo Kravchenko - Callstack
Slack conversation: N/A

View all open jobs on GitHub

Upwork Automation - Do Not Edit
  • Upwork Job URL: https://www.upwork.com/jobs/~01f329b3f580153b04
  • Upwork Job ID: 1683525690767454208
  • Last Price Increase: 2023-07-24
Issue OwnerCurrent Issue Owner: @anmurali
@rezkiy37
Copy link
Contributor Author

Hi, @allroundexperts!
In order of our agreement, could you please:

  1. Create a repository within the Expensify organisation. We will work there.
  2. Describe how we create own package step by step.

Thank you!

@allroundexperts
Copy link
Contributor

Hi @rezkiy37!
My understanding was that the package would be created in my git account. I don't really have access to create a repository inside the Expensify organisation. We might want to confirm this again in the bug report?

@melvin-bot melvin-bot bot added the Monthly KSv2 label Jul 20, 2023
@AndrewGable
Copy link
Contributor

What is the repository name? I can get one made with correct permissions. Thank you

@rezkiy37
Copy link
Contributor Author

What is the repository name? I can get one made with correct permissions. Thank you

@AndrewGable, are you able to create a repository within Expensify organisation?

@rezkiy37
Copy link
Contributor Author

rezkiy37 commented Jul 24, 2023

We haven't considered names yet. I believe react-fast-pdf would be cool one.

@allroundexperts
Copy link
Contributor

Agreed!

@AndrewGable AndrewGable added Internal Requires API changes or must be handled by Expensify staff ring0 labels Jul 24, 2023
@melvin-bot
Copy link

melvin-bot bot commented Jul 24, 2023

Triggered auto assignment to @nathanmetcalf (ring0), see https://stackoverflow.com/c/expensify/questions/6102 for more details.

@melvin-bot
Copy link

melvin-bot bot commented Jul 24, 2023

Job added to Upwork: https://www.upwork.com/jobs/~01f329b3f580153b04

@melvin-bot
Copy link

melvin-bot bot commented Jul 24, 2023

Triggered auto assignment to Contributor Plus for review of internal employee PR - @s77rt (Internal)

@AndrewGable
Copy link
Contributor

@nathanmetcalf - Please create an public Expensify repository named react-fast-pdf.

We will publish under npm under @Expensify/react-fast-pdf. Please ping me once it's ready to publish on npm.

cc @puneetlath @mountiny

@nathanmetcalf
Copy link
Contributor

Can I please have a licence type, and a Description for this new repo?

@nathanmetcalf
Copy link
Contributor

Otherwise, I've created it. I'm not sure what permissions if any we need.
https://github.com/Expensify/react-fast-pdf

@rezkiy37
Copy link
Contributor Author

and a Description for this new repo?

@nathanmetcalf, do you mean this? If yes, I will prepare and post text.

Screenshot 2023-07-25 at 11 31 09

@AndrewGable
Copy link
Contributor

MIT license please, can we leave the description blank for now? If not, just saying: react-fast-pdf seems fine for now.

@rezkiy37
Copy link
Contributor Author

@nathanmetcalf, I am not able to fork the repo, because it is empty entirely. Could someone push at lease 1 commit there?

Screenshot 2023-07-25 at 17 06 41

@AndrewGable
Copy link
Contributor

Looks like we will have to wait for @nathanmetcalf to fix this as I don't have permission to push to main or my own branch.

Screenshot 2023-07-25 at 9 21 01 AM

@nathanmetcalf
Copy link
Contributor

What permissions should be granted to this repo? I don't think we want to leave it open to everyone?

@rezkiy37
Copy link
Contributor Author

rezkiy37 commented Jul 26, 2023

What permissions should be granted to this repo? I don't think we want to leave it open to everyone?

External developers would work with own forks. Internal developers would follow your internal rules and approaches.
That's my understanding. Please correct me if I am wrong 🙂

@AndrewGable
Copy link
Contributor

@nathanmetcalf - Same permissions as App or Bedrock. Open source read, write for any internal employees.

@nathanmetcalf
Copy link
Contributor

These are the groups in App:
image

And these are the groups from that list that I think we would have needed. Do we need to add any further?

image

@AndrewGable
Copy link
Contributor

We will probably need the Expensify.cash OSS bots too.

@AndrewGable
Copy link
Contributor

@nathanmetcalf - Can you change default branch to main?

https://github.com/Expensify/react-fast-pdf/tree/main - there is a commit now, try to fork please @rezkiy37

@rezkiy37
Copy link
Contributor Author

rezkiy37 commented Jul 27, 2023

@nathanmetcalf - Can you change default branch to main?

https://github.com/Expensify/react-fast-pdf/tree/main - there is a commit now, try to fork please @rezkiy37

I've forked successfully 👍
Thank you!

@nathanmetcalf
Copy link
Contributor

Thanks Andrew, I've added Expensify.cash OSS bots, and set the default branch to main.

Please reopen this if there is anything further you need :)

@melvin-bot melvin-bot bot added Weekly KSv2 and removed Monthly KSv2 labels Mar 25, 2024
Copy link

melvin-bot bot commented Mar 25, 2024

⚠️ It looks like this issue is labelled as a New Feature but not tied to any GitHub Project. Keep in mind that all new features should be tied to GitHub Projects in order to properly track external CAP software time ⚠️

@rezkiy37
Copy link
Contributor Author

The last exected PR was merged. We finally connected the package to the app.

@melvin-bot melvin-bot bot added Weekly KSv2 Awaiting Payment Auto-added when associated PR is deployed to production and removed Weekly KSv2 labels Mar 29, 2024
@melvin-bot melvin-bot bot changed the title Convert internal PDF preview into a public library [HOLD for payment 2024-04-05] Convert internal PDF preview into a public library Mar 29, 2024
Copy link

melvin-bot bot commented Mar 29, 2024

Reviewing label has been removed, please complete the "BugZero Checklist".

@melvin-bot melvin-bot bot removed the Reviewing Has a PR in review label Mar 29, 2024
Copy link

melvin-bot bot commented Mar 29, 2024

The solution for this issue has been 🚀 deployed to production 🚀 in version 1.4.57-5 and is now subject to a 7-day regression period 📆. Here is the list of pull requests that resolve this issue:

If no regressions arise, payment will be issued on 2024-04-05. 🎊

For reference, here are some details about the assignees on this issue:

  • @s77rt requires payment (Needs manual offer from BZ)
  • @allroundexperts requires payment through NewDot Manual Requests
  • @rezkiy37 does not require payment (Contractor)

Copy link

melvin-bot bot commented Mar 29, 2024

BugZero Checklist: The PR adding this new feature has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

  • [@s77rt / @allroundexperts] Please propose regression test steps to ensure the new feature will work correctly on production in further releases.
  • [@anmurali] Link the GH issue for creating/updating the regression test once above steps have been agreed upon.

@s77rt
Copy link
Contributor

s77rt commented Apr 1, 2024

@allroundexperts Will you handle the above checklist as you reviewed the linked PR?

@allroundexperts
Copy link
Contributor

allroundexperts commented Apr 1, 2024

This was a new feature so a checklist is not needed here. However, I propose the following regression test:

  1. On mweb Safari, go to any chat and upload a very large pdf file (More than 10 MB eg 10840-002.pdf).
  2. Open the pdf and verify that you can scroll to the end without any lags / freezes.

Do we 👍 or 👎 ?

@mountiny
Copy link
Contributor

mountiny commented Apr 2, 2024

@allroundexperts Can you define the minimum size for the PDF? Or to be more specific to test this case. Thanks

@allroundexperts
Copy link
Contributor

@mountiny Updated!

@allroundexperts
Copy link
Contributor

I reviewed the following PRs as part of this ticket:

Expensify/react-fast-pdf#1
Expensify/react-fast-pdf#2
Expensify/react-fast-pdf#8
Expensify/react-fast-pdf#12
Expensify/react-fast-pdf#14

#33434

The first two I think were during the time we were paying 1k per bug / review.

@mountiny
Copy link
Contributor

mountiny commented Apr 4, 2024

@allroundexperts @rezkiy37 Just to make sure are we all done here in terms of the steps we planned for the library?

if this ready to pay out and close?

@allroundexperts
Copy link
Contributor

I think yes, we're done here. @rezkiy37 can confirm though.

@rezkiy37
Copy link
Contributor Author

rezkiy37 commented Apr 5, 2024

Yes. The idea was to share the bugfix with the community. The package inherits the previous app behavior with all fixes and improvements. I would say that the 1st version of react-fast-pdf is done. All further changes we should consider are the 2nd version of the package.

We are done with this issue.

cc @mountiny @allroundexperts

@mountiny
Copy link
Contributor

mountiny commented Apr 5, 2024

Thank you, the payment summary would be:

Expensify/react-fast-pdf#1 - $1000
Expensify/react-fast-pdf#2 - $1000
Expensify/react-fast-pdf#8 - $500
Expensify/react-fast-pdf#12 - $500
Expensify/react-fast-pdf#14 - $500
#33434 - $500

So $4000 to @allroundexperts for their work on this project with @rezkiy37 its taken a long time and many hours of testing and review so I think this is reasonable.

@mountiny
Copy link
Contributor

mountiny commented Apr 5, 2024

cc @anmurali

Copy link

melvin-bot bot commented Apr 5, 2024

Payment Summary

Upwork Job

  • ROLE: @s77rt paid $(AMOUNT) via Upwork (LINK)
  • Reviewer: @allroundexperts owed $250 via NewDot
  • Contributor: @rezkiy37 is from an agency-contributor and not due payment

BugZero Checklist (@anmurali)

  • I have verified the correct assignees and roles are listed above and updated the neccesary manual offers
  • I have verified that there are no duplicate or incorrect contracts on Upwork for this job (https://www.upwork.com/ab/applicants/1683525690767454208/hired)
  • I have paid out the Upwork contracts or cancelled the ones that are incorrect
  • I have verified the payment summary above is correct

@melvin-bot melvin-bot bot added the Overdue label Apr 15, 2024
@anmurali
Copy link

Per #22998 (comment)

@melvin-bot melvin-bot bot removed the Overdue label Apr 17, 2024
@s77rt
Copy link
Contributor

s77rt commented Apr 17, 2024

I'm not due payment here. This can be closed

@mountiny
Copy link
Contributor

I believe @allroundexperts will be handled in newdot then, so closing, thanks everyone!

@JmillsExpensify
Copy link

$4,000 approved for @allroundexperts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Awaiting Payment Auto-added when associated PR is deployed to production Internal Requires API changes or must be handled by Expensify staff NewFeature Something to build that is a new item. ring0 Weekly KSv2
Projects
None yet
Development

No branches or pull requests

10 participants