Reorganize files

Signed-off-by: Nikolaos Karaolidis <nick@karaolidis.com>
This commit is contained in:
2023-08-01 14:53:10 +03:00
parent b83407f1f4
commit d2054b028a
33 changed files with 90 additions and 103 deletions

View File

@@ -1,15 +1,7 @@
export {
MemesList,
MemeEditor,
MemeFail,
MemesHeader,
MemeTagSelector,
MemeViewItem,
} from './memes';
export { TagChip, TagEditor, TagPreview, TagRow, TagsHeader } from './tags';
export { default as AnimatedImage } from './animatedImage'; export { default as AnimatedImage } from './animatedImage';
export { default as FloatingActionButton } from './floatingActionButton'; export { default as FloatingActionButton } from './floatingActionButton';
export { default as HideableBottomNavigationBar } from './hideableBottomNavigationBar'; export { default as HideableBottomNavigationBar } from './hideableBottomNavigationBar';
export { default as HideableHeader } from './hideableHeader'; export { default as HideableHeader } from './hideableHeader';
export { default as LoadingView } from './loadingView'; export { default as LoadingView } from './loadingView';
export { default as storageLocationChangeDialog } from './storageLocationChangeDialog'; export { default as MemeFail } from './memeFail';
export { default as TagChip } from './tagChip';

View File

@@ -2,7 +2,7 @@ import React, { ComponentProps } from 'react';
import { StyleSheet, View } from 'react-native'; import { StyleSheet, View } from 'react-native';
import { useTheme } from 'react-native-paper'; import { useTheme } from 'react-native-paper';
import FontAwesome5 from 'react-native-vector-icons/FontAwesome5'; import FontAwesome5 from 'react-native-vector-icons/FontAwesome5';
import { rgbToRgba } from '../../utilities'; import { rgbToRgba } from '../utilities';
const memeFailStyles = StyleSheet.create({ const memeFailStyles = StyleSheet.create({
view: { view: {

View File

@@ -1,6 +0,0 @@
export { default as MemesList } from './memesList/memesList';
export { default as MemeEditor } from './memeEditor';
export { default as MemeFail } from './memeFail';
export { default as MemesHeader } from './memesHeader';
export { default as MemeTagSelector } from './memeTagSelector/memeTagSelector';
export { default as MemeViewItem } from './memeViewItem';

View File

@@ -1,9 +1,9 @@
import React, { ComponentProps, useMemo } from 'react'; import React, { ComponentProps, useMemo } from 'react';
import { getContrastColor } from '../../utilities';
import { Chip, useTheme } from 'react-native-paper'; import { Chip, useTheme } from 'react-native-paper';
import { Tag } from '../../database';
import FontAwesome5 from 'react-native-vector-icons/FontAwesome5'; import FontAwesome5 from 'react-native-vector-icons/FontAwesome5';
import { StyleSheet } from 'react-native'; import { StyleSheet } from 'react-native';
import { getContrastColor } from '../utilities';
import { Tag } from '../database';
const tagChipStyles = StyleSheet.create({ const tagChipStyles = StyleSheet.create({
chip: { chip: {

View File

@@ -1,5 +0,0 @@
export { default as TagChip } from './tagChip';
export { default as TagEditor } from './tagEditor';
export { default as TagPreview } from './tagPreview';
export { default as TagRow } from './tagRow';
export { default as TagsHeader } from './tagsHeader';

View File

@@ -1,5 +1,5 @@
import { BSON, Object, ObjectSchema } from 'realm'; import { BSON, Object, ObjectSchema } from 'realm';
import { Tag } from './tag'; import { Tag } from '.';
enum MEME_TYPE { enum MEME_TYPE {
IMAGE = 'Image', IMAGE = 'Image',

View File

@@ -1,5 +1,5 @@
import { BSON, Object, ObjectSchema } from 'realm'; import { BSON, Object, ObjectSchema } from 'realm';
import { Meme } from './meme'; import { Meme } from '.';
import { generateRandomColor } from '../utilities'; import { generateRandomColor } from '../utilities';
class Tag extends Object<Tag> { class Tag extends Object<Tag> {

View File

@@ -15,17 +15,17 @@ import {
ROUTE, ROUTE,
RootStackParamList, RootStackParamList,
StagingMeme, StagingMeme,
} from '../../types'; } from '../../../types';
import { Meme, Tag } from '../../database'; import { Meme, Tag } from '../../../database';
import { RootState } from '../../state'; import { RootState } from '../../../state';
import { import {
allowedMimeTypes, allowedMimeTypes,
getMemeTypeFromMimeType, getMemeTypeFromMimeType,
guessMimeType, guessMimeType,
validateMemeTitle, validateMemeTitle,
} from '../../utilities'; } from '../../../utilities';
import { MemeEditor } from '../../components'; import MemeEditor from './memeEditor';
import editorStyles from './editorStyles'; import editorStyles from '../editorStyles';
const AddMeme = ({ const AddMeme = ({
route, route,

View File

@@ -6,12 +6,12 @@ import { NativeStackScreenProps } from '@react-navigation/native-stack';
import { useObject, useRealm } from '@realm/react'; import { useObject, useRealm } from '@realm/react';
import { useDeviceOrientation } from '@react-native-community/hooks'; import { useDeviceOrientation } from '@react-native-community/hooks';
import { BSON } from 'realm'; import { BSON } from 'realm';
import { RootStackParamList, ROUTE, StagingMeme } from '../../types';
import { pickSingle } from 'react-native-document-picker'; import { pickSingle } from 'react-native-document-picker';
import { AndroidScoped, FileSystem } from 'react-native-file-access'; import { AndroidScoped, FileSystem } from 'react-native-file-access';
import { extension } from 'react-native-mime-types'; import { extension } from 'react-native-mime-types';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { Meme } from '../../database'; import { RootStackParamList, ROUTE, StagingMeme } from '../../../types';
import { Meme } from '../../../database';
import { import {
allowedMimeTypes, allowedMimeTypes,
deleteMeme, deleteMeme,
@@ -20,10 +20,10 @@ import {
guessMimeType, guessMimeType,
noOp, noOp,
validateMemeTitle, validateMemeTitle,
} from '../../utilities'; } from '../../../utilities';
import { MemeEditor } from '../../components'; import { RootState } from '../../../state';
import editorStyles from './editorStyles'; import MemeEditor from './memeEditor';
import { RootState } from '../../state'; import editorStyles from '../editorStyles';
const EditMeme = ({ const EditMeme = ({
route, route,

View File

@@ -2,16 +2,17 @@ import React, { useMemo } from 'react';
import { HelperText, Text, TextInput, useTheme } from 'react-native-paper'; import { HelperText, Text, TextInput, useTheme } from 'react-native-paper';
import { Image, LayoutAnimation } from 'react-native'; import { Image, LayoutAnimation } from 'react-native';
import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { LoadingView, MemeFail, MemeTagSelector } from '..'; import Video from 'react-native-video';
import { LoadingView, MemeFail } from '../../../components';
import { import {
getFilenameFromUri, getFilenameFromUri,
getMemeTypeFromMimeType, getMemeTypeFromMimeType,
validateMemeTitle, validateMemeTitle,
} from '../../utilities'; } from '../../../utilities';
import { StagingMeme } from '../../types'; import { StagingMeme } from '../../../types';
import { useMemeDimensions } from '../../hooks'; import { useMemeDimensions } from '../../../hooks';
import { MEME_TYPE } from '../../database'; import { MEME_TYPE } from '../../../database';
import Video from 'react-native-video'; import MemeTagSelector from './memeTagSelector/memeTagSelector';
const memeEditorStyles = { const memeEditorStyles = {
media: { media: {

View File

@@ -4,10 +4,10 @@ import { Chip, Modal, Portal, Searchbar, useTheme } from 'react-native-paper';
import { LayoutAnimation, StyleSheet } from 'react-native'; import { LayoutAnimation, StyleSheet } from 'react-native';
import { FlashList } from '@shopify/flash-list'; import { FlashList } from '@shopify/flash-list';
import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { TAG_SORT, tagSortQuery } from '../../../types'; import { TAG_SORT, tagSortQuery } from '../../../../types';
import { TagChip } from '../../tags'; import { TagChip } from '../../../../components';
import { Tag } from '../../../database'; import { Tag } from '../../../../database';
import { validateTagName } from '../../../utilities'; import { validateTagName } from '../../../../utilities';
const memeTagSearchModalStyles = StyleSheet.create({ const memeTagSearchModalStyles = StyleSheet.create({
modal: { modal: {

View File

@@ -3,8 +3,8 @@ import { LayoutAnimation, StyleSheet, View } from 'react-native';
import { Chip } from 'react-native-paper'; import { Chip } from 'react-native-paper';
import { FlashList } from '@shopify/flash-list'; import { FlashList } from '@shopify/flash-list';
import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { TagChip } from '../../tags'; import { TagChip } from '../../../../components';
import { Tag } from '../../../database'; import { Tag } from '../../../../database';
import MemeTagSearchModal from './memeTagSearchModal'; import MemeTagSearchModal from './memeTagSearchModal';
const memeTagSelectorStyles = StyleSheet.create({ const memeTagSelectorStyles = StyleSheet.create({

View File

@@ -8,11 +8,11 @@ import {
generateRandomColor, generateRandomColor,
validateColor, validateColor,
validateTagName, validateTagName,
} from '../../utilities'; } from '../../../utilities';
import { Tag } from '../../database'; import { Tag } from '../../../database';
import { TagEditor } from '../../components'; import { StagingTag } from '../../../types';
import editorStyles from './editorStyles'; import TagEditor from './tagEditor';
import { StagingTag } from '../../types'; import editorStyles from '../editorStyles';
const AddTag = () => { const AddTag = () => {
const { goBack } = useNavigation(); const { goBack } = useNavigation();

View File

@@ -6,11 +6,11 @@ import { NativeStackScreenProps } from '@react-navigation/native-stack';
import { BSON } from 'realm'; import { BSON } from 'realm';
import { useObject, useRealm } from '@realm/react'; import { useObject, useRealm } from '@realm/react';
import { useDeviceOrientation } from '@react-native-community/hooks'; import { useDeviceOrientation } from '@react-native-community/hooks';
import { TagEditor } from '../../components'; import { ROUTE, RootStackParamList, StagingTag } from '../../../types';
import { ROUTE, RootStackParamList, StagingTag } from '../../types'; import { Tag } from '../../../database';
import { Tag } from '../../database'; import { deleteTag, validateColor, validateTagName } from '../../../utilities';
import { deleteTag, validateColor, validateTagName } from '../../utilities'; import TagEditor from './tagEditor';
import editorStyles from './editorStyles'; import editorStyles from '../editorStyles';
const EditTag = ({ const EditTag = ({
route, route,

View File

@@ -1,12 +1,12 @@
import React, { useEffect, useRef } from 'react'; import React, { useEffect, useRef } from 'react';
import { HelperText, TextInput } from 'react-native-paper'; import { HelperText, TextInput } from 'react-native-paper';
import TagPreview from './tagPreview';
import { import {
generateRandomColor, generateRandomColor,
validateColor, validateColor,
validateTagName, validateTagName,
} from '../../utilities'; } from '../../../utilities';
import { StagingTag } from '../../types'; import { StagingTag } from '../../../types';
import TagPreview from './tagPreview';
const TagEditor = ({ const TagEditor = ({
staging, staging,

View File

@@ -2,7 +2,7 @@ import React, { useMemo } from 'react';
import { StyleSheet, View } from 'react-native'; import { StyleSheet, View } from 'react-native';
import FontAwesome5 from 'react-native-vector-icons/FontAwesome5'; import FontAwesome5 from 'react-native-vector-icons/FontAwesome5';
import { Chip, useTheme } from 'react-native-paper'; import { Chip, useTheme } from 'react-native-paper';
import { getContrastColor } from '../../utilities'; import { getContrastColor } from '../../../utilities';
const tagPreviewStyles = StyleSheet.create({ const tagPreviewStyles = StyleSheet.create({
view: { view: {

View File

@@ -1,9 +1,9 @@
export { default as AddMeme } from './editors/addMeme'; export { default as AddMeme } from './editors/meme/addMeme';
export { default as AddTag } from './editors/addTag'; export { default as AddTag } from './editors/tag/addTag';
export { default as EditMeme } from './editors/editMeme'; export { default as EditMeme } from './editors/meme/editMeme';
export { default as EditTag } from './editors/editTag'; export { default as EditTag } from './editors/tag/editTag';
export { default as Memes } from './memes'; export { default as Memes } from './memes/memes';
export { default as MemeView } from './memeView'; export { default as MemeView } from './memeView/memeView';
export { default as Settings } from './settings'; export { default as Settings } from './settings/settings';
export { default as Tags } from './tags'; export { default as Tags } from './tags/tags';
export { default as Welcome } from './welcome'; export { default as Welcome } from './welcome';

View File

@@ -12,9 +12,9 @@ import {
RootStackParamList, RootStackParamList,
ROUTE, ROUTE,
SORT_DIRECTION, SORT_DIRECTION,
} from '../types'; } from '../../types';
import { Meme } from '../database'; import { Meme } from '../../database';
import { LoadingView, MemeViewItem } from '../components'; import { LoadingView } from '../../components';
import { import {
copyMeme, copyMeme,
deleteMeme, deleteMeme,
@@ -22,8 +22,9 @@ import {
favoriteMeme, favoriteMeme,
multipleIdQuery, multipleIdQuery,
shareMeme, shareMeme,
} from '../utilities'; } from '../../utilities';
import { RootState } from '../state'; import { RootState } from '../../state';
import MemeViewItem from './memeViewItem';
const memeViewStyles = StyleSheet.create({ const memeViewStyles = StyleSheet.create({
// eslint-disable-next-line react-native/no-color-literals // eslint-disable-next-line react-native/no-color-literals

View File

@@ -3,11 +3,11 @@ import { StyleSheet, View } from 'react-native';
import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { AndroidScoped } from 'react-native-file-access'; import { AndroidScoped } from 'react-native-file-access';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import Video from 'react-native-video';
import { MEME_TYPE, Meme } from '../../database'; import { MEME_TYPE, Meme } from '../../database';
import { RootState } from '../../state'; import { RootState } from '../../state';
import { AnimatedImage, LoadingView, MemeFail } from '..'; import { AnimatedImage, LoadingView, MemeFail } from '../../components';
import { useMemeDimensions } from '../../hooks'; import { useMemeDimensions } from '../../hooks';
import Video from 'react-native-video';
const memeViewItemStyles = StyleSheet.create({ const memeViewItemStyles = StyleSheet.create({
view: { view: {

View File

@@ -17,11 +17,13 @@ import {
useNavigation, useNavigation,
} from '@react-navigation/native'; } from '@react-navigation/native';
import { NativeStackNavigationProp } from '@react-navigation/native-stack'; import { NativeStackNavigationProp } from '@react-navigation/native-stack';
import { ROUTE, SORT_DIRECTION, memesSortQuery } from '../types';
import { RootState, setNavVisible } from '../state';
import { Meme } from '../database';
import { HideableHeader, MemesHeader, MemesList } from '../components';
import { useDeviceOrientation } from '@react-native-community/hooks'; import { useDeviceOrientation } from '@react-native-community/hooks';
import { ROUTE, SORT_DIRECTION, memesSortQuery } from '../../types';
import { RootState, setNavVisible } from '../../state';
import { Meme } from '../../database';
import { HideableHeader } from '../../components';
import MemesHeader from './memesHeader';
import MemesList from './memesList/memesList';
const memesStyles = StyleSheet.create({ const memesStyles = StyleSheet.create({
listView: { listView: {

View File

@@ -5,7 +5,7 @@ import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { AndroidScoped } from 'react-native-file-access'; import { AndroidScoped } from 'react-native-file-access';
import { MEME_TYPE, Meme } from '../../../database'; import { MEME_TYPE, Meme } from '../../../database';
import { RootState } from '../../../state'; import { RootState } from '../../../state';
import { MemeFail } from '..'; import { MemeFail } from '../../../components';
import { getFontAwesome5IconSize } from '../../../utilities'; import { getFontAwesome5IconSize } from '../../../utilities';
import { useMemeDimensions } from '../../../hooks'; import { useMemeDimensions } from '../../../hooks';

View File

@@ -5,7 +5,7 @@ import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { AndroidScoped } from 'react-native-file-access'; import { AndroidScoped } from 'react-native-file-access';
import { useSelector } from 'react-redux'; import { useSelector } from 'react-redux';
import { MEME_TYPE, Meme } from '../../../database'; import { MEME_TYPE, Meme } from '../../../database';
import { MemeFail } from '..'; import { MemeFail } from '../../../components';
import { RootState } from '../../../state'; import { RootState } from '../../../state';
import { useMemeDimensions } from '../../../hooks'; import { useMemeDimensions } from '../../../hooks';

View File

@@ -5,7 +5,7 @@ import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { AndroidScoped } from 'react-native-file-access'; import { AndroidScoped } from 'react-native-file-access';
import { MEME_TYPE, Meme } from '../../../database'; import { MEME_TYPE, Meme } from '../../../database';
import { RootState } from '../../../state'; import { RootState } from '../../../state';
import { MemeFail } from '..'; import { MemeFail } from '../../../components';
import { getFontAwesome5IconSize } from '../../../utilities'; import { getFontAwesome5IconSize } from '../../../utilities';
import { useMemeDimensions } from '../../../hooks'; import { useMemeDimensions } from '../../../hooks';

View File

@@ -11,6 +11,8 @@ import {
} from 'react-native-paper'; } from 'react-native-paper';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import type {} from 'redux-thunk/extend-redux'; import type {} from 'redux-thunk/extend-redux';
import { useRealm } from '@realm/react';
import { FileSystem, FileStat } from 'react-native-file-access';
import { import {
RootState, RootState,
setAutofocusMemesSearch, setAutofocusMemesSearch,
@@ -19,11 +21,9 @@ import {
setMasonryColumns, setMasonryColumns,
setNoMedia, setNoMedia,
setSnackbarMessage, setSnackbarMessage,
} from '../state'; } from '../../state';
import StorageLocationChangeDialog from '../components/storageLocationChangeDialog'; import { Meme } from '../../database';
import { useRealm } from '@realm/react'; import StorageLocationChangeDialog from './storageLocationChangeDialog';
import { FileSystem, FileStat } from 'react-native-file-access';
import { Meme } from '../database';
const settingsStyles = StyleSheet.create({ const settingsStyles = StyleSheet.create({
scrollView: { scrollView: {

View File

@@ -4,8 +4,8 @@ import { Dialog, ProgressBar, Text } from 'react-native-paper';
import { openDocumentTree } from 'react-native-scoped-storage'; import { openDocumentTree } from 'react-native-scoped-storage';
import { useDispatch, useSelector } from 'react-redux'; import { useDispatch, useSelector } from 'react-redux';
import { AndroidScoped, FileSystem } from 'react-native-file-access'; import { AndroidScoped, FileSystem } from 'react-native-file-access';
import { RootState, setStorageUri } from '../state'; import { RootState, setStorageUri } from '../../state';
import { clearPermissions, isPermissionForPath, noOp } from '../utilities'; import { clearPermissions, isPermissionForPath, noOp } from '../../utilities';
const storageLocationChangeDialogStyles = StyleSheet.create({ const storageLocationChangeDialogStyles = StyleSheet.create({
progressBar: { progressBar: {

View File

@@ -13,10 +13,12 @@ import { FlashList } from '@shopify/flash-list';
import { useFocusEffect } from '@react-navigation/native'; import { useFocusEffect } from '@react-navigation/native';
import { useDeviceOrientation } from '@react-native-community/hooks'; import { useDeviceOrientation } from '@react-native-community/hooks';
import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { useSafeAreaFrame } from 'react-native-safe-area-context';
import { HideableHeader, TagRow, TagsHeader } from '../components'; import { HideableHeader } from '../../components';
import { Tag } from '../database'; import { Tag } from '../../database';
import { RootState, setNavVisible } from '../state'; import { RootState, setNavVisible } from '../../state';
import { SORT_DIRECTION, tagSortQuery } from '../types'; import { SORT_DIRECTION, tagSortQuery } from '../../types';
import TagsHeader from './tagsHeader';
import TagRow from './tagsList/tagRow';
const tagsStyles = StyleSheet.create({ const tagsStyles = StyleSheet.create({
listView: { listView: {

View File

@@ -2,9 +2,9 @@ import React from 'react';
import { StyleSheet, View } from 'react-native'; import { StyleSheet, View } from 'react-native';
import { TouchableRipple, Text } from 'react-native-paper'; import { TouchableRipple, Text } from 'react-native-paper';
import { useNavigation, NavigationProp } from '@react-navigation/native'; import { useNavigation, NavigationProp } from '@react-navigation/native';
import { Tag } from '../../database'; import { Tag } from '../../../database';
import { ROUTE, RootStackParamList } from '../../types'; import { ROUTE, RootStackParamList } from '../../../types';
import { TagChip } from '.'; import { TagChip } from '../../../components';
const tagRowStyles = StyleSheet.create({ const tagRowStyles = StyleSheet.create({
view: { view: {

View File

@@ -1,6 +1,6 @@
import { DocumentPickerResponse } from 'react-native-document-picker'; import { DocumentPickerResponse } from 'react-native-document-picker';
import { getFilenameFromUri } from '../utilities'; import { getFilenameFromUri } from '../utilities';
import { SharedItem } from './share'; import { SharedItem } from '.';
enum ROUTE { enum ROUTE {
MAIN = 'Main', MAIN = 'Main',

View File

@@ -4,7 +4,7 @@ import Share from 'react-native-share';
import Clipboard from '@react-native-clipboard/clipboard'; import Clipboard from '@react-native-clipboard/clipboard';
import { Meme } from '../database'; import { Meme } from '../database';
import { ROUTE, RootStackParamList } from '../types'; import { ROUTE, RootStackParamList } from '../types';
import { noOp } from './constants'; import { noOp } from '.';
const favoriteMeme = (realm: Realm, meme: Meme) => { const favoriteMeme = (realm: Realm, meme: Meme) => {
realm.write(() => { realm.write(() => {

View File

@@ -1,4 +1,4 @@
import { isHexColor, isRgbColor } from './color'; import { isHexColor, isRgbColor } from '.';
interface StringValidationResult { interface StringValidationResult {
valid: boolean; valid: boolean;