Add memes views & searching

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2023-07-23 20:20:11 +03:00
parent e44ee7de34
commit 04661ca356
28 changed files with 737 additions and 247 deletions

View File

@@ -5,11 +5,7 @@ import { useDimensions } from '../../contexts';
import LoadingView from '../loadingView';
import { MemeTagSelector } from '.';
import { Tag } from '../../database';
import {
StringValidationResult,
validateMemeDescription,
validateMemeTitle,
} from '../../utilities';
import { StringValidationResult, validateMemeTitle } from '../../utilities';
const memeEditorStyles = {
image: {
@@ -28,16 +24,12 @@ const MemeEditor = ({
imageUri,
memeTitle,
setMemeTitle,
memeDescription,
setMemeDescription,
memeTags,
setMemeTags,
}: {
imageUri: string;
memeTitle: StringValidationResult;
setMemeTitle: (name: StringValidationResult) => void;
memeDescription: StringValidationResult;
setMemeDescription: (description: StringValidationResult) => void;
memeTags: Map<string, Tag>;
setMemeTags: (tags: Map<string, Tag>) => void;
}) => {
@@ -48,8 +40,12 @@ const MemeEditor = ({
Image.getSize(imageUri, (width, height) => {
const paddedWidth = dimensions.width * 0.92;
const paddedHeight = Math.max(
Math.min((paddedWidth / width) * height, 500),
100,
);
setImageWidth(paddedWidth);
setImageHeight((paddedWidth / width) * height);
setImageHeight(paddedHeight);
});
if (!imageWidth || !imageHeight) return <LoadingView />;
@@ -76,24 +72,13 @@ const MemeEditor = ({
},
memeEditorStyles.image,
]}
resizeMode="contain"
/>
<MemeTagSelector
memeTags={memeTags}
setMemeTags={setMemeTags}
style={memeEditorStyles.memeTagSelector}
/>
<TextInput
mode="outlined"
label="Description"
multiline
numberOfLines={6}
value={memeDescription.raw}
style={memeEditorStyles.description}
onChangeText={description =>
setMemeDescription(validateMemeDescription(description))
}
error={!memeDescription.valid}
/>
</>
);
};