Loading...
(function(){<br />
let canvas = document.createElement('canvas'),<br />
ctx = canvas.getContext('2d'),<br />
w = canvas.width = innerWidth,<br />
h = canvas.height = innerHeight,<br />
particles = [],<br />
properties = {<br />
bgColor : 'rgba(17, 17, 19, 1)',<br />
particleColor : 'rgba(255, 40, 40, 1)',<br />
particleRadius : 3,<br />
particleCount : 60,<br />
particleMaxVelocity : 0.5,<br />
lineLength : 150,<br />
particleLife : 6,<br />
};<br />
<br />
document.querySelector('body').appendChild(canvas);<br />
<br />
window.onresize = function() {<br />
w = canvas.width = innerWidth;<br />
h = canvas.height = innerHeight;<br />
}<br />
<br />
class Particle {<br />
constructor() {<br />
this.x = Math.random()*w;<br />Loading...
This is my version of an Error Boundary component adapted for an application using functional components. I implemented navigation back to the previous page using the universal window.history.back(), but React Router should have its own method for this.
Documentation
React https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary
Next https://nextjs.org/docs/pages/building-your-application/configuring/error-handling
1import React, { Component } from "react";2import { ReactComponent as Icon } from "../../commons/svg/emojiError2.svg";3import "./index.scss";45const ErrorComponent = () => {6 const onClick = () => {7 window.history.back();8 setTimeout(() => {9 window.location.reload();10 }, 400);11 };1213 return (14 <div className="error_boundry">15 <p className="title"> Oops! Something went wrong...</p>16 <div className="error_emoji">17 <Icon />18 </div>19 <div className="flex flex--align-items-end">20 <button21 className="btn btn--blue"22 type="button"23 onClick={onClick}24 >25 Go back26 </button>27 <a className="btn" href="/">28 Back to Home29 </a>30 </div>31 </div>32 );33};3435export default class ErrorBoundry extends Component {36 constructor(props) {37 super(props);38 this.state = { hasError: false };39 }4041 // You can also log the error to an error reporting service42 // componentDidCatch(error, info) {43 // logErrorToMyService(error, info);44 // }4546 static getDerivedStateFromError(error) {47 // Update state so the next render will show the fallback UI.48 return { hasError: true };49 }5051 render() {52 if (this.state.hasError) {53 // You can render any custom fallback UI54 return <ErrorComponent />;55 }56 return this.props.children;57 }58}59
Wrapping the App with Error Boundary
1import * as ReactDOMClient from "react-dom/client";2import ErrorBoundary from './components/error-boundary';34const container = document.getElementById("root");5const root = ReactDOMClient.createRoot(container);67root.render(8 <Provider store={store}>9 <ErrorBoundary>10 <App />11 </ErrorBoundary>12 </Provider>13);