diff options
author | Claire <claire.github-309c@sitedethib.com> | 2021-06-16 11:24:55 +0200 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2021-06-16 11:24:55 +0200 |
commit | 4aa78027ea747bb932645df31c831d632044e200 (patch) | |
tree | 9d937d5c21246c32ef80178ae637632e840bed38 /app | |
parent | db5baf3d1a93cbf6961f721205cff0beaf71bffd (diff) | |
parent | 8428faa0859d86c97950084658498a2c25e26f15 (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `Gemfile.lock`: upstream-updated dependency (redis) textually too close to glitch-specific one (redcarpet). Ported upstream change.
Diffstat (limited to 'app')
-rw-r--r-- | app/javascript/mastodon/features/ui/components/focal_point_modal.js | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/app/javascript/mastodon/features/ui/components/focal_point_modal.js b/app/javascript/mastodon/features/ui/components/focal_point_modal.js index 3457b7633..edeb281e9 100644 --- a/app/javascript/mastodon/features/ui/components/focal_point_modal.js +++ b/app/javascript/mastodon/features/ui/components/focal_point_modal.js @@ -219,6 +219,10 @@ class FocalPointModal extends ImmutablePureComponent { } handleTextDetection = () => { + this._detectText(); + } + + _detectText = (refreshCache = false) => { const { media } = this.props; this.setState({ detecting: true }); @@ -235,6 +239,7 @@ class FocalPointModal extends ImmutablePureComponent { this.setState({ ocrStatus: 'preparing', progress }); } }, + cacheMethod: refreshCache ? 'refresh' : 'write', }); let media_url = media.get('url'); @@ -247,14 +252,20 @@ class FocalPointModal extends ImmutablePureComponent { } } - (async () => { + return (async () => { await worker.load(); await worker.loadLanguage('eng'); await worker.initialize('eng'); const { data: { text } } = await worker.recognize(media_url); this.setState({ description: removeExtraLineBreaks(text), dirty: true, detecting: false }); await worker.terminate(); - })(); + })().catch((e) => { + if (refreshCache) { + throw e; + } else { + this._detectText(true); + } + }); }).catch((e) => { console.error(e); this.setState({ detecting: false }); |