update detected words ui

This commit is contained in:
Abhinav 2022-03-19 20:33:00 +05:30
parent 4d6d441798
commit dece1c5ff2
3 changed files with 52 additions and 31 deletions

View file

@ -1,23 +0,0 @@
import { CodeBlock } from 'components/CodeBlock';
import React, { useState, useEffect } from 'react';
import { EnteFile } from 'types/file';
import mlIDbStorage from 'utils/storage/mlIDbStorage';
export function TextDetection(props: { file: EnteFile }) {
const [text, setText] = useState<string>(null);
useEffect(() => {
let didCancel = false;
const main = async () => {
const text = await mlIDbStorage.getAllTextMap();
const detectedWords = text.get(props.file.id)?.detection.data.text;
!didCancel && setText(detectedWords);
};
main();
return () => {
didCancel = true;
};
}, [props.file]);
return <CodeBlock code={text} />;
}

View file

@ -0,0 +1,44 @@
import { Chip } from 'components/pages/gallery/Collections';
import React, { useState, useEffect } from 'react';
import { EnteFile } from 'types/file';
import mlIDbStorage from 'utils/storage/mlIDbStorage';
export function WordList(props: { file: EnteFile }) {
const [words, setWords] = useState<string[]>([]);
useEffect(() => {
let didCancel = false;
const main = async () => {
const texts = await mlIDbStorage.getAllTextMap();
const uniqueDetectedWords = [
...new Set(
(texts.get(props.file.id) ?? []).map(
(text) => text.detection.word
)
),
];
!didCancel && setWords(uniqueDetectedWords);
};
main();
return () => {
didCancel = true;
};
}, [props.file]);
return (
<div>
{words.map((object) => (
<Chip
active={true}
style={{
paddingLeft: 0,
padding: '5px 10px',
cursor: 'default',
}}
key={object}>
{object}
</Chip>
))}
</div>
);
}

View file

@ -53,7 +53,7 @@ import { sleep } from 'utils/common';
import { PublicCollectionGalleryContext } from 'utils/publicCollectionGallery'; import { PublicCollectionGalleryContext } from 'utils/publicCollectionGallery';
import { GalleryContext } from 'pages/gallery'; import { GalleryContext } from 'pages/gallery';
import { ObjectLabelList } from 'components/MachineLearning/ObjectList'; import { ObjectLabelList } from 'components/MachineLearning/ObjectList';
import { TextDetection } from 'components/MachineLearning/TextDetection'; import { WordList } from 'components/MachineLearning/WordList';
const SmallLoadingSpinner = () => ( const SmallLoadingSpinner = () => (
<EnteSpinner <EnteSpinner
@ -490,7 +490,7 @@ function InfoModal({
</div> </div>
<div> <div>
<Legend>{constants.TEXT}</Legend> <Legend>{constants.TEXT}</Legend>
<TextDetection <WordList
file={items[photoSwipe?.getCurrentIndex()]} file={items[photoSwipe?.getCurrentIndex()]}
/> />
</div> </div>
@ -543,12 +543,12 @@ function PhotoSwipe(props: Iprops) {
updateItems(items); updateItems(items);
}, [items]); }, [items]);
useEffect(() => { // useEffect(() => {
if (photoSwipe) { // if (photoSwipe) {
photoSwipe.options.arrowKeys = !showInfo; // photoSwipe.options.arrowKeys = !showInfo;
photoSwipe.options.escKey = !showInfo; // photoSwipe.options.escKey = !showInfo;
} // }
}, [showInfo]); // }, [showInfo]);
function updateFavButton() { function updateFavButton() {
setIsFav(isInFav(this?.currItem)); setIsFav(isInFav(this?.currItem));