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

feat: add error boundary #458

Merged
merged 6 commits into from
Mar 3, 2025

Conversation

danditomaso
Copy link
Collaborator

@danditomaso danditomaso commented Feb 22, 2025

  • Add Error Boundary throughout the app to prevent unhandled errors from causing the application to crash. Due to how each page is wrapped, the error will be caught at the page level leaving the remainder of the application functional.

  • Created a fallback Component which displays a helpful message to the user about what occurred, and a way to file a github issue or navigate back to the root of the application.

image
  • Create a reusable Heading component that supports dynamic heading levels (h1-h5) through the as prop, this enables enabling consistent typography across the application, removed individual H1-H5 components updating references were required.

  • Create a reusable newGithubIssueUrl utility function to generate a properly formatted URL for creating new GitHub issues. It provides a type-safe and flexible way to construct issue URLs with various parameters like title, body, labels, and assignees.

It supports the following parameters:
Title and body text
Labels
Issue templates
User assignments
Custom text fields by id

All fields except user and repo are optional.

Example Usage:

newGithubIssueUrl({
  user: 'meshtastic',
  repo: 'web',
  title: 'Bug: Login not working',
  template: 'bug.yml',
  labels: ['bug', 'high-priority'],
  assignee: 'developer-name',
  body: 'Description of the issue...'
  logs: 'Relevant logs'
});

@danditomaso danditomaso changed the title feat: add error boundary feat: add headings component feat: add error boundary Feb 22, 2025
@danditomaso danditomaso requested a review from fifieldt February 23, 2025 02:28
@danditomaso danditomaso self-assigned this Feb 23, 2025
@danditomaso danditomaso requested a review from KomelT February 24, 2025 16:41
KomelT
KomelT previously requested changes Feb 25, 2025
Copy link
Member

@KomelT KomelT left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There should be page scroll bar when Error details is overflowing.
image

Currently you can't see whole error detail.

@Hunter275
Copy link
Member

Do we have a way to trigger this for testing?

@Hunter275 Hunter275 added enhancement New feature or request major change This is a major change labels Mar 1, 2025
@danditomaso
Copy link
Collaborator Author

danditomaso commented Mar 2, 2025

Do we have a way to trigger this for testing?

Definitely is and should have included it in the PR description. If you toss a throw new Error('something bad') into any component and this error page should render after a refresh. I've found it easy to add it to "Messages.tsx" so it renders after you first connect.

@Hunter275 Hunter275 merged commit 6e3d326 into meshtastic:master Mar 3, 2025
3 checks passed
@danditomaso danditomaso deleted the feat/add-error-boundary branch March 4, 2025 02:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request major change This is a major change
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants