diff --git a/src/components/LinkPreview/LinkPreview.tsx b/src/components/LinkPreview/LinkPreview.tsx index 98b8309..6963de4 100644 --- a/src/components/LinkPreview/LinkPreview.tsx +++ b/src/components/LinkPreview/LinkPreview.tsx @@ -1,9 +1,11 @@ -import { Component, createMemo, Show } from 'solid-js'; +import { Component, createMemo, createSignal, Show } from 'solid-js'; import { useMediaContext } from '../../contexts/MediaContext'; import { hookForDev } from '../../lib/devTools'; import styles from './LinkPreview.module.scss'; +const errorCountLimit = 3; + const LinkPreview: Component<{ preview: any, id?: string, bordered?: boolean, isLast?: boolean }> = (props) => { const media = useMediaContext(); @@ -49,7 +51,11 @@ const LinkPreview: Component<{ preview: any, id?: string, bordered?: boolean, is return k; }; + const [errorCount, setErrorCount] = createSignal(0); + const onError = (event: any) => { + if (errorCount() > errorCountLimit) return; + setErrorCount(v => v + 1); const image = event.target; image.onerror = ''; image.src = props.preview.images[0]; @@ -63,7 +69,7 @@ const LinkPreview: Component<{ preview: any, id?: string, bordered?: boolean, is class={klass()} target="_blank" > - +