From abe1c0847d7284f993c52308ca062f19a33606db Mon Sep 17 00:00:00 2001 From: Nikolaos Karaolidis Date: Wed, 26 Jul 2023 10:14:01 +0300 Subject: [PATCH] Refactor styles Signed-off-by: Nikolaos Karaolidis --- src/app.tsx | 11 ++- src/components/hideableHeader.tsx | 13 ++- src/components/loadingView.tsx | 20 ++-- src/components/memes/memeTagSearchModal.tsx | 5 +- src/components/memes/memeViewItem.tsx | 16 +++- src/components/memes/memesHeader.tsx | 24 +++-- src/components/memes/memesList/memesList.tsx | 14 +-- .../memes/memesList/memesListItem.tsx | 22 +++-- src/components/tags/tagPreview.tsx | 5 +- src/components/tags/tagsHeader.tsx | 15 ++- src/screens/{ => editors}/addMeme.tsx | 45 ++++----- src/screens/{ => editors}/addTag.tsx | 37 +++----- src/screens/{ => editors}/editMeme.tsx | 22 ++--- src/screens/{ => editors}/editTag.tsx | 22 ++--- src/screens/editors/editorStyles.ts | 34 +++++++ src/screens/index.ts | 8 +- src/screens/memeView.tsx | 5 +- src/screens/memes.tsx | 46 +++++---- src/screens/settings.tsx | 35 ++++--- src/screens/tags.tsx | 71 +++++++------- src/screens/welcome.tsx | 24 ++--- src/styles.tsx | 95 ------------------- 22 files changed, 261 insertions(+), 328 deletions(-) rename src/screens/{ => editors}/addMeme.tsx (83%) rename src/screens/{ => editors}/addTag.tsx (77%) rename src/screens/{ => editors}/editMeme.tsx (87%) rename src/screens/{ => editors}/editTag.tsx (80%) create mode 100644 src/screens/editors/editorStyles.ts delete mode 100644 src/styles.tsx diff --git a/src/app.tsx b/src/app.tsx index f44907a..783ee99 100644 --- a/src/app.tsx +++ b/src/app.tsx @@ -1,5 +1,5 @@ import React, { useEffect, useState } from 'react'; -import { AppState, StatusBar, useColorScheme } from 'react-native'; +import { AppState, StatusBar, useColorScheme, StyleSheet } from 'react-native'; import { PaperProvider } from 'react-native-paper'; import { SafeAreaProvider } from 'react-native-safe-area-context'; import { RealmProvider } from '@realm/react'; @@ -13,7 +13,12 @@ import NavigationContainer from './navigation'; import { store, persistor, validateSettings } from './state'; import { LoadingView } from './components'; import { Welcome } from './screens'; -import styles from './styles'; + +const appStyles = StyleSheet.create({ + gestureHandler: { + flex: 1, + }, +}); const App = () => { const [showWelcome, setShowWelcome] = useState(false); @@ -49,7 +54,7 @@ const App = () => { persistor={persistor} onBeforeLift={onBeforeLift}> - + { const { colors } = useTheme(); return ( + style={[loadingViewStyles.view, { backgroundColor: colors.background }]}> ); diff --git a/src/components/memes/memeTagSearchModal.tsx b/src/components/memes/memeTagSearchModal.tsx index 9a73b22..de60300 100644 --- a/src/components/memes/memeTagSearchModal.tsx +++ b/src/components/memes/memeTagSearchModal.tsx @@ -7,7 +7,6 @@ import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { TAG_SORT, tagSortQuery } from '../../types'; import { TagChip } from '../tags'; import { Tag } from '../../database'; -import styles from '../../styles'; import { validateTagName } from '../../utilities'; const memeTagSearchModalStyles = StyleSheet.create({ @@ -17,6 +16,7 @@ const memeTagSearchModalStyles = StyleSheet.create({ padding: 10, borderTopLeftRadius: 20, borderTopRightRadius: 20, + width: '100%', }, searchbar: { marginBottom: 12, @@ -97,11 +97,10 @@ const MemeTagSearchModal = ({ setVisible(false)}> { const { height, width } = useSafeAreaFrame(); @@ -15,7 +21,7 @@ const MemeViewItem = ({ meme }: { meme: Meme }) => { if (loading || error || !dimensions) return ; return ( - + - - + + setSortMenuVisible(false)} @@ -92,7 +96,7 @@ const MemesHeader = ({ @@ -112,7 +116,7 @@ const MemesHeader = ({ })} - + ( - + No memes found )} @@ -119,9 +117,7 @@ const MemesList = ({ ...memesGridListStyles.flashList, }} ListEmptyComponent={() => ( - + No memes found )} @@ -149,9 +145,7 @@ const MemesList = ({ ...memesListListStyles.flashList, }} ListEmptyComponent={() => ( - + No memes found )} diff --git a/src/components/memes/memesList/memesListItem.tsx b/src/components/memes/memesList/memesListItem.tsx index afe38c6..2b53900 100644 --- a/src/components/memes/memesList/memesListItem.tsx +++ b/src/components/memes/memesList/memesListItem.tsx @@ -4,10 +4,10 @@ import { Text, TouchableRipple } from 'react-native-paper'; import { useSafeAreaFrame } from 'react-native-safe-area-context'; import { useImageDimensions } from '@react-native-community/hooks'; import { Meme } from '../../../database'; -import styles from '../../../styles'; const memesListItemStyles = StyleSheet.create({ view: { + flexDirection: 'row', paddingVertical: 10, }, image: { @@ -16,12 +16,17 @@ const memesListItemStyles = StyleSheet.create({ borderRadius: 5, }, detailsView: { + flexDirection: 'column', marginLeft: 10, }, text: { marginRight: 5, marginBottom: 5, }, + tagsView: { + flexDirection: 'row', + flexWrap: 'wrap', + }, }); const MemesListItem = ({ @@ -42,13 +47,12 @@ const MemesListItem = ({ return ( focusMeme(index)} - style={[memesListItemStyles.view, styles.flexRow]}> + style={memesListItemStyles.view}> <> {meme.title} - - - {meme.dateModified.toLocaleDateString()} • {meme.size / 1000} - KB - - - + + {meme.dateModified.toLocaleDateString()} • {meme.size / 1000} + KB + + {meme.tags.map(tag => ( { const contrastColor = getContrastColor(color); return ( - + { return ; diff --git a/src/components/tags/tagsHeader.tsx b/src/components/tags/tagsHeader.tsx index ee9f388..918cca7 100644 --- a/src/components/tags/tagsHeader.tsx +++ b/src/components/tags/tagsHeader.tsx @@ -1,7 +1,6 @@ import React, { ComponentProps, useState } from 'react'; import { StyleSheet, View } from 'react-native'; import { Button, Divider, Menu, Searchbar } from 'react-native-paper'; -import styles from '../../styles'; import { useDispatch, useSelector } from 'react-redux'; import { RootState, @@ -14,8 +13,13 @@ import { getSortIcon } from '../../utilities'; const tagsHeaderStyles = StyleSheet.create({ buttonView: { + alignItems: 'center', + flexDirection: 'row', height: 50, }, + sortButton: { + flexDirection: 'row-reverse', + }, }); const TagsHeader = ({ @@ -57,12 +61,7 @@ const TagsHeader = ({ setSearch(value); }} /> - + setSortMenuVisible(false)} @@ -70,7 +69,7 @@ const TagsHeader = ({ diff --git a/src/screens/addMeme.tsx b/src/screens/editors/addMeme.tsx similarity index 83% rename from src/screens/addMeme.tsx rename to src/screens/editors/addMeme.tsx index 92d3abe..032976d 100644 --- a/src/screens/addMeme.tsx +++ b/src/screens/editors/addMeme.tsx @@ -1,7 +1,7 @@ import React, { useCallback, useRef, useState } from 'react'; import { Appbar, Button, useTheme } from 'react-native-paper'; import { useNavigation } from '@react-navigation/native'; -import { ScrollView, StyleSheet, View } from 'react-native'; +import { ScrollView, View } from 'react-native'; import { NativeStackScreenProps } from '@react-navigation/native-stack'; import { useRealm } from '@realm/react'; import { BSON } from 'realm'; @@ -13,23 +13,16 @@ import { DocumentPickerResponse, pickSingle, } from 'react-native-document-picker'; -import styles from '../styles'; -import { ROUTE, RootStackParamList } from '../types'; -import { Meme, Tag } from '../database'; -import { RootState } from '../state'; -import { allowedMimeTypes, getMemeType, validateMemeTitle } from '../utilities'; -import { MemeEditor } from '../components'; - -const addMemeStyles = StyleSheet.create({ - saveAndAddButton: { - flex: 1, - marginRight: 5, - }, - saveButton: { - flex: 1, - marginLeft: 5, - }, -}); +import { ROUTE, RootStackParamList } from '../../types'; +import { Meme, Tag } from '../../database'; +import { RootState } from '../../state'; +import { + allowedMimeTypes, + getMemeType, + validateMemeTitle, +} from '../../utilities'; +import { MemeEditor } from '../../components'; +import editorStyles from './editorStyles'; const AddMeme = ({ route, @@ -104,15 +97,13 @@ const AddMeme = ({ - + - + diff --git a/src/screens/addTag.tsx b/src/screens/editors/addTag.tsx similarity index 77% rename from src/screens/addTag.tsx rename to src/screens/editors/addTag.tsx index cd91e92..9716b23 100644 --- a/src/screens/addTag.tsx +++ b/src/screens/editors/addTag.tsx @@ -1,28 +1,17 @@ import React, { useCallback, useState } from 'react'; -import { ScrollView, StyleSheet, View } from 'react-native'; +import { ScrollView, View } from 'react-native'; import { Appbar, Button, useTheme } from 'react-native-paper'; import { useNavigation } from '@react-navigation/native'; import { useRealm } from '@realm/react'; import { useDeviceOrientation } from '@react-native-community/hooks'; -import styles from '../styles'; import { generateRandomColor, validateColor, validateTagName, -} from '../utilities'; -import { Tag } from '../database'; -import { TagEditor } from '../components'; - -const addTagStyles = StyleSheet.create({ - saveAndAddButton: { - flex: 1, - marginRight: 5, - }, - saveButton: { - flex: 1, - marginLeft: 5, - }, -}); +} from '../../utilities'; +import { Tag } from '../../database'; +import { TagEditor } from '../../components'; +import editorStyles from './editorStyles'; const AddTag = () => { const { goBack } = useNavigation(); @@ -57,15 +46,13 @@ const AddTag = () => { - + { setTagColor={setTagColor} /> - + diff --git a/src/screens/editMeme.tsx b/src/screens/editors/editMeme.tsx similarity index 87% rename from src/screens/editMeme.tsx rename to src/screens/editors/editMeme.tsx index 0dc3d43..3c69f8c 100644 --- a/src/screens/editMeme.tsx +++ b/src/screens/editors/editMeme.tsx @@ -6,11 +6,11 @@ import { NativeStackScreenProps } from '@react-navigation/native-stack'; import { useObject, useRealm } from '@realm/react'; import { useDeviceOrientation } from '@react-native-community/hooks'; import { BSON } from 'realm'; -import styles from '../styles'; -import { RootStackParamList, ROUTE } from '../types'; -import { Tag, Meme } from '../database'; -import { deleteMeme, favoriteMeme, validateMemeTitle } from '../utilities'; -import { MemeEditor } from '../components'; +import { RootStackParamList, ROUTE } from '../../types'; +import { Tag, Meme } from '../../database'; +import { deleteMeme, favoriteMeme, validateMemeTitle } from '../../utilities'; +import { MemeEditor } from '../../components'; +import editorStyles from './editorStyles'; const EditMeme = ({ route, @@ -80,15 +80,13 @@ const EditMeme = ({ - + - + - + Hide media from gallery { ); return ( - + <> { }} /> - } - contentContainerStyle={{ - paddingTop: - flashListPadding + - height * (orientation === 'portrait' ? 0.02 : 0.04), - ...tagsStyles.flashList, - }} - ItemSeparatorComponent={() => } - ListEmptyComponent={() => ( - - No tags found - - )} - onScroll={handleScroll} - fadingEdgeLength={100} - /> - + + } + contentContainerStyle={{ + paddingTop: + flashListPadding + + height * (orientation === 'portrait' ? 0.02 : 0.04), + ...tagsStyles.flashList, + }} + ItemSeparatorComponent={() => } + ListEmptyComponent={() => ( + + No tags found + + )} + onScroll={handleScroll} + fadingEdgeLength={100} + /> + + ); }; diff --git a/src/screens/welcome.tsx b/src/screens/welcome.tsx index 071b679..e96816a 100644 --- a/src/screens/welcome.tsx +++ b/src/screens/welcome.tsx @@ -3,14 +3,19 @@ import { StyleSheet, View } from 'react-native'; import { Button, Text, useTheme } from 'react-native-paper'; import { useDispatch } from 'react-redux'; import { openDocumentTree } from 'react-native-scoped-storage'; -import { useDeviceOrientation } from '@react-native-community/hooks'; -import styles from '../styles'; import { noOp } from '../utilities'; import { setStorageUri } from '../state'; const welcomeStyles = StyleSheet.create({ + view: { + paddingHorizontal: '4%', + alignItems: 'center', + justifyContent: 'center', + flex: 1, + }, text: { marginBottom: 30, + textAlign: 'center', }, button: { marginBottom: 100, @@ -19,7 +24,6 @@ const welcomeStyles = StyleSheet.create({ const Welcome = ({ onWelcomeComplete }: { onWelcomeComplete: () => void }) => { const { colors } = useTheme(); - const orientation = useDeviceOrientation(); const dispatch = useDispatch(); const selectStorageLocation = async () => { @@ -30,18 +34,8 @@ const Welcome = ({ onWelcomeComplete }: { onWelcomeComplete: () => void }) => { }; return ( - - + + Welcome to Terminally Online!