Skip to content

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

Description

@rezkiy37

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

Metadata

Metadata

Labels

Awaiting PaymentAuto-added when associated PR is deployed to productionInternalRequires API changes or must be handled by Expensify staffNewFeatureSomething to build that is a new item.WeeklyKSv2ring0

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions