diff --git a/src/components/dialogs/GifSelect.tsx b/src/components/dialogs/GifSelect.tsx
index baff31168b..ad4fbeadea 100644
--- a/src/components/dialogs/GifSelect.tsx
+++ b/src/components/dialogs/GifSelect.tsx
@@ -13,6 +13,8 @@ import {
useSetExternalEmbedPref,
} from '#/state/preferences'
import {Gif, useGifphySearch, useGiphyTrending} from '#/state/queries/giphy'
+import {ErrorScreen} from '#/view/com/util/error/ErrorScreen'
+import {ErrorBoundary} from '#/view/com/util/ErrorBoundary'
import {atoms as a, useBreakpoints, useTheme} from '#/alf'
import * as Dialog from '#/components/Dialog'
import * as TextField from '#/components/forms/TextField'
@@ -54,13 +56,18 @@ export function GifSelectDialog({
break
}
+ const renderErrorBoundary = useCallback(
+ (error: any) => ,
+ [],
+ )
+
return (
- {content}
+ {content}
)
}
@@ -357,3 +364,31 @@ function GiphyConsentPrompt({control}: {control: Dialog.DialogControlProps}) {
)
}
+
+function DialogError({details}: {details?: string}) {
+ const {_} = useLingui()
+ const control = Dialog.useDialogContext()
+
+ return (
+
+
+
+
+
+ )
+}
diff --git a/src/view/com/util/ErrorBoundary.tsx b/src/view/com/util/ErrorBoundary.tsx
index 22fdd606e4..dccd2bbc9b 100644
--- a/src/view/com/util/ErrorBoundary.tsx
+++ b/src/view/com/util/ErrorBoundary.tsx
@@ -1,12 +1,14 @@
import React, {Component, ErrorInfo, ReactNode} from 'react'
-import {ErrorScreen} from './error/ErrorScreen'
-import {CenteredView} from './Views'
import {msg} from '@lingui/macro'
-import {logger} from '#/logger'
import {useLingui} from '@lingui/react'
+import {logger} from '#/logger'
+import {ErrorScreen} from './error/ErrorScreen'
+import {CenteredView} from './Views'
+
interface Props {
children?: ReactNode
+ renderError?: (error: any) => ReactNode
}
interface State {
@@ -30,6 +32,10 @@ export class ErrorBoundary extends Component {
public render() {
if (this.state.hasError) {
+ if (this.props.renderError) {
+ return this.props.renderError(this.state.error)
+ }
+
return (