mirror of
https://github.com/spacedriveapp/spacedrive.git
synced 2026-04-21 15:07:54 -04:00
* Update rspc, prisma-client-rust, axum and tanstack-query - Deleted some unused examples and fully commented out frontend code - Implement many changes required due to the updates - Update most rust dependencies * Re-enable p2p * Fix server * Auto format * Fix injected script format - Update some github actions - Update pnpm lock file * Fix devtools showing up when app opens - Fix million complaining about Sparkles component * Fix sd-server * Fix and improve thumbnails rendering - Fix core always saying a new thumbnail was generated even for files that it skiped thumbnail generation - Rewrite FileThumb and improve related components * Ignore tmp files when running prettier * Improve FileThumb component performance - Rework useExplorerDraggable and useExplorerItemData hooks due to reduce unecessary re-renders * More fixes for thumb component - A couple of minor performance improvements to frontend code * auto format * Fix Thumbnail and QuickPreview * Fix logic for when to show 'fail to load original' error message in QuickPreview - Updated prisma-client-rust, libp2p, tauri, tauri-specta, rspc and hyper * Fix type checking - Format scripts * Add script prettier config * Fix serde missing feature - Use rust-libp2p spacedrive fork again - Update rspc * Autoformat + fix pnpm lock * Fix thumbnail first load again * Autoformat * autoformat * Fix rust-libp2p fork url again? * Remove usePathsInfiniteQuery hook * Update tauri 2.0.6
41 lines
1005 B
TypeScript
41 lines
1005 B
TypeScript
import React, { Component, ReactNode } from 'react';
|
|
|
|
interface ErrorBarrierProps {
|
|
onError: (error: Error, info: React.ErrorInfo) => void;
|
|
children: ReactNode;
|
|
}
|
|
|
|
interface ErrorBarrierState {
|
|
hasError: boolean;
|
|
}
|
|
|
|
export class ErrorBarrier extends Component<ErrorBarrierProps, ErrorBarrierState> {
|
|
constructor(props: ErrorBarrierProps) {
|
|
super(props);
|
|
this.state = { hasError: false };
|
|
}
|
|
|
|
static getDerivedStateFromError(error: Error) {
|
|
// Update state so the next render will show the fallback UI.
|
|
return { hasError: true };
|
|
}
|
|
|
|
componentDidCatch(error: Error, info: React.ErrorInfo) {
|
|
// Call the onError function passed as a prop
|
|
this.props.onError(error, info);
|
|
// Reset the error state after calling onError
|
|
Promise.resolve().then(() => this.setState({ hasError: false }));
|
|
}
|
|
|
|
render() {
|
|
if (this.state.hasError) {
|
|
// Render nothing since the parent component will handle the error
|
|
return null;
|
|
}
|
|
|
|
return this.props.children;
|
|
}
|
|
}
|
|
|
|
export default ErrorBarrier;
|