From 3f932c6f421d45839565f26ea8b109bc3861a68b Mon Sep 17 00:00:00 2001 From: Ricardo Costa Date: Sat, 29 Jun 2024 15:55:12 +0100 Subject: [PATCH] Added ErrorBoundary & Fixes --- code/client/package.json | 1 + code/client/src/App.tsx | 2 +- code/client/src/contexts/error/ErrorContext.tsx | 3 ++- code/client/src/domain/workspaces/tree/utils.ts | 4 ++-- .../sidebar/components/workspace-tree/WorkspaceTree.tsx | 4 ++-- code/server/package.json | 3 +++ 6 files changed, 11 insertions(+), 6 deletions(-) diff --git a/code/client/package.json b/code/client/package.json index b6fe61c9..61497db5 100644 --- a/code/client/package.json +++ b/code/client/package.json @@ -29,6 +29,7 @@ "lodash": "^4.17.21", "react": "^18.3.1", "react-dom": "^18.3.1", + "react-error-boundary": "^4.0.13", "react-icons": "^5.2.1", "react-router-dom": "^6.23.0", "slate": "^0.103.0", diff --git a/code/client/src/App.tsx b/code/client/src/App.tsx index 9deefe6f..ce97652e 100644 --- a/code/client/src/App.tsx +++ b/code/client/src/App.tsx @@ -15,8 +15,8 @@ import Login from '@ui/pages/login/Login'; import Search from '@ui/pages/search/Search'; import CommitHistory from '@ui/pages/document/components/commit-history/CommitHistory'; import Commit from '@ui/pages/document/components/commit/Commit'; -import './App.scss'; import Recent from '@ui/pages/recent/Recent'; +import './App.scss'; function App() { return ( diff --git a/code/client/src/contexts/error/ErrorContext.tsx b/code/client/src/contexts/error/ErrorContext.tsx index fe0cf01b..2d39c431 100644 --- a/code/client/src/contexts/error/ErrorContext.tsx +++ b/code/client/src/contexts/error/ErrorContext.tsx @@ -1,6 +1,7 @@ import * as React from 'react'; import { useState, createContext, useEffect, useCallback } from 'react'; import ErrorComponent from '@ui/components/error/Error'; +import { ErrorBoundary } from 'react-error-boundary'; const ERROR_TIMEOUT = 5000; @@ -39,7 +40,7 @@ export function ErrorProvider({ children }: { children: React.ReactNode }) { return ( {error && } - {children} + {children} ); } diff --git a/code/client/src/domain/workspaces/tree/utils.ts b/code/client/src/domain/workspaces/tree/utils.ts index ae82812a..35e16024 100644 --- a/code/client/src/domain/workspaces/tree/utils.ts +++ b/code/client/src/domain/workspaces/tree/utils.ts @@ -1,10 +1,10 @@ import { TreeNode } from '@domain/workspaces/tree/types'; import { Resources } from '@/contexts/workspace/WorkspaceContext'; -export function getTree(id: string, nodes: Resources): TreeNode { +export function traverseWorkspaceTree(id: string, nodes: Resources): TreeNode { const node = nodes[id]; return { node, - children: node.children.map(id => getTree(id, nodes)), + children: node.children.map(id => traverseWorkspaceTree(id, nodes)), }; } diff --git a/code/client/src/ui/components/sidebar/components/workspace-tree/WorkspaceTree.tsx b/code/client/src/ui/components/sidebar/components/workspace-tree/WorkspaceTree.tsx index 5482f04a..b6f742b0 100644 --- a/code/client/src/ui/components/sidebar/components/workspace-tree/WorkspaceTree.tsx +++ b/code/client/src/ui/components/sidebar/components/workspace-tree/WorkspaceTree.tsx @@ -1,6 +1,6 @@ import TreeResourceView from '@ui/components/sidebar/components/workspace-tree/TreeResourceView'; import { WorkspaceMeta } from '@notespace/shared/src/workspace/types/workspace'; -import { getTree } from '@domain/workspaces/tree/utils'; +import { traverseWorkspaceTree } from '@domain/workspaces/tree/utils'; import { ResourceType } from '@notespace/shared/src/workspace/types/resource'; import { DragEvent, useState } from 'react'; import { Resources, WorkspaceOperations } from '@/contexts/workspace/WorkspaceContext'; @@ -49,7 +49,7 @@ function WorkspaceTree({ workspace, resources, operations }: WorkspaceTreeProps)