Skip to content

Commit 7aeeb17

Browse files
Merge pull request #30 from fga-eps-mds/develop
Final Release
2 parents d87e3e2 + 7e4e939 commit 7aeeb17

File tree

16 files changed

+134
-32
lines changed

16 files changed

+134
-32
lines changed

app.config.js

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
export default {
22
expo: {
3-
name: 'multilind-frontend',
4-
slug: 'multilind-frontend',
3+
name: 'Multilind',
4+
slug: 'Multilind',
55
version: '1.0.0',
66
orientation: 'portrait',
7-
icon: './assets/icon.png',
7+
icon: './src/assets/images/icon.png',
88
splash: {
9-
image: './assets/splash.png',
9+
image: './src/assets/images/splash.png',
1010
resizeMode: 'contain',
11-
backgroundColor: '#ffffff',
11+
backgroundColor: '#338BAE',
1212
},
1313
updates: {
1414
fallbackToCacheTimeout: 0,
@@ -20,8 +20,8 @@ export default {
2020
android: {
2121
permissions: ['ACCESS_BACKGROUND_LOCATION'],
2222
adaptiveIcon: {
23-
foregroundImage: './assets/adaptive-icon.png',
24-
backgroundColor: '#FFFFFF',
23+
foregroundImage: './src/assets/images/adaptive-icon.png',
24+
backgroundColor: '#338BAE',
2525
},
2626
package: 'com.gabrieldvpereira.multilindfrontend',
2727
},

src/assets/images/adaptive-icon.png

55.3 KB
Loading

src/assets/images/icon.png

53.1 KB
Loading

src/assets/images/splash.png

51.8 KB
Loading
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import React, { useState, useEffect } from 'react';
2+
import { View, Text } from 'react-native';
3+
import { Ionicons } from '@expo/vector-icons';
4+
import { DialetoService } from '../../services';
5+
import styles from './styles';
6+
7+
export function LanguageInfo({ language, style }) {
8+
const [dialeto, setDialeto] = useState([]);
9+
10+
useEffect(() => {
11+
async function getDialetos() {
12+
const response = await DialetoService.getAllDialetos({
13+
idLingua: language.id_lingua,
14+
});
15+
setDialeto(response);
16+
}
17+
getDialetos();
18+
}, []);
19+
20+
const list = () =>
21+
dialeto.map((etnia) => (
22+
<View key={etnia.etnia.id_etnia} style={styles.scrollView}>
23+
<Text style={styles.thirdtext}>Etnias Falantes: </Text>
24+
25+
<View style={styles.textlist}>
26+
<View>
27+
<Text style={styles.text}>
28+
<Ionicons name="ios-people" size={20} color="gray" />
29+
{' '}
30+
{etnia.etnia.nome}
31+
</Text>
32+
</View>
33+
</View>
34+
</View>
35+
));
36+
return (
37+
<View style={[styles.textcontainer, style]}>
38+
{language?.nomes_alternativos && (
39+
<Text style={styles.firsttext}>
40+
Nome(s) Alternativos: {language?.nomes_alternativos}
41+
</Text>
42+
)}
43+
<Text style={styles.firsttext}>
44+
Família Linguística: {language?.tronco?.nome ?? 'Isolada'}
45+
</Text>
46+
<View style={{ top: '2%' }}>{list()}</View>
47+
</View>
48+
);
49+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
import { StyleSheet } from 'react-native';
2+
import { MONTSERRAT_SEMIBOLD, GRAY } from '../../constants';
3+
4+
const styles = StyleSheet.create({
5+
textcontainer: {
6+
display: 'flex',
7+
flexDirection: 'column',
8+
justifyContent: 'space-around',
9+
width: '90%',
10+
},
11+
firsttext: {
12+
fontFamily: MONTSERRAT_SEMIBOLD,
13+
fontSize: 16,
14+
color: GRAY,
15+
paddingTop: '2%',
16+
},
17+
textlist: {
18+
fontSize: 20,
19+
fontFamily: MONTSERRAT_SEMIBOLD,
20+
color: GRAY,
21+
display: 'flex',
22+
justifyContent: 'space-between',
23+
},
24+
text: {
25+
marginLeft: 5,
26+
fontFamily: MONTSERRAT_SEMIBOLD,
27+
fontSize: 16,
28+
color: GRAY,
29+
},
30+
thirdtext: {
31+
fontFamily: MONTSERRAT_SEMIBOLD,
32+
fontSize: 16,
33+
color: GRAY,
34+
paddingTop: '2%',
35+
paddingBottom: '2%',
36+
},
37+
greypercentage: {
38+
fontFamily: MONTSERRAT_SEMIBOLD,
39+
backgroundColor: '#E5E5E5',
40+
width: 277,
41+
height: 27,
42+
borderRadius: 13.5,
43+
},
44+
yellowpercentage: {
45+
fontFamily: MONTSERRAT_SEMIBOLD,
46+
backgroundColor: '#FFC100',
47+
width: 75,
48+
height: '100%',
49+
borderRadius: 13.5,
50+
},
51+
});
52+
export default styles;

src/components/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ export { Loading } from './Loading';
1111
export { SearchBar } from './SearchBar';
1212
export { GoBack } from './GoBack';
1313
export { ImageContainer } from './ImageContainer';
14+
export { LanguageInfo } from './LanguageInformation';
1415
export { Filter } from './Filter';
1516
export { DictOrImage } from './DictOrImage';
1617
export { WordMeaning } from './WordMeaning';

src/contexts/LanguageContext.jsx

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import React, { createContext, useState, useEffect, useContext } from 'react';
22
import { LanguageService } from '../services';
3+
import { sortName } from '../utils';
34

45
const LanguageContext = createContext();
56

@@ -10,7 +11,7 @@ export function LanguageContextProvider({ children }) {
1011
async function getAllLanguages() {
1112
const response = await LanguageService.getAllLanguages();
1213
setLoadingLanguages(false);
13-
setLanguages(response);
14+
setLanguages(sortName(response));
1415
}
1516

1617
useEffect(() => {

src/screens/LanguageInitialScreen/index.jsx

+3-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { useRoute } from '@react-navigation/native';
55
import styles from './styles';
66
import { useLanguage } from '../../contexts';
77
import { portraitImage, dicionaryImage } from '../../assets/images';
8-
import { GoBack, TopBar, DictOrImage } from '../../components';
8+
import { GoBack, TopBar, LanguageInfo, DictOrImage } from '../../components';
99

1010
export function LanguageInitialScreen() {
1111
const route = useRoute();
@@ -19,6 +19,8 @@ export function LanguageInitialScreen() {
1919
<GoBack />
2020
<TopBar>{language.nome}</TopBar>
2121
<View style={styles.container}>
22+
<LanguageInfo language={language} style={styles.LanguageInfo} />
23+
2224
<View style={styles.Dict}>
2325
<DictOrImage
2426
style={styles.dictChildren}

src/screens/LanguagePerFamily/index.jsx

-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ export function LanguagePerFamily() {
2323
const list = () =>
2424
FilterListSearch(listFamily, familySearch).map((tronco, index) => (
2525
<View key={tronco.id_tronco} style={styles.listcontainer}>
26-
{console.log(tronco)}
2726
<TouchableOpacity
2827
style={styles.list}
2928
onPress={() => setExpanded(expanded === index ? null : index)}

src/screens/LanguageScreen/index.jsx

+3-2
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React, { useState } from 'react';
22
import { View, FlatList } from 'react-native';
33
import { SafeAreaView } from 'react-native-safe-area-context';
44
import { useLanguage } from '../../contexts';
5-
import { FilterListSearch, sortName } from '../../utils';
5+
import { FilterListSearch } from '../../utils';
66
import {
77
Language,
88
ModalMod,
@@ -39,6 +39,7 @@ export function LanguageScreen() {
3939
</View>
4040

4141
<FlatList
42+
contentContainerStyle={{ paddingBottom: '90%' }}
4243
ListEmptyComponent={
4344
<View style={styles.loadingOrEmptyContainer}>
4445
<LoadingOrEmptyMessage
@@ -52,7 +53,7 @@ export function LanguageScreen() {
5253
/>
5354
</View>
5455
}
55-
data={sortName(filteredList)}
56+
data={filteredList}
5657
keyExtractor={(item) => String(item.id_lingua)}
5758
renderItem={({ item }) => <Language language={item} />}
5859
/>

src/screens/MapScreen/index.jsx

+1-15
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,11 @@
11
import React, { useState, useCallback } from 'react';
22
import { View } from 'react-native';
3-
import { Entypo } from '@expo/vector-icons';
4-
import { useSafeAreaInsets } from 'react-native-safe-area-context';
53
import { useLocation, useIdiom } from '../../contexts';
6-
import { Input, GoogleMap, ContentBottomModal } from '../../components';
4+
import { GoogleMap, ContentBottomModal } from '../../components';
75

86
import styles from './styles';
9-
import { DARK_GRAY } from '../../constants';
107

118
export function MapScreen() {
12-
const insets = useSafeAreaInsets();
13-
149
const { location, hasLocation } = useLocation();
1510
const { idioms } = useIdiom();
1611
const [bottomModalVisible, setBottomModalVisible] = useState(false);
@@ -23,15 +18,6 @@ export function MapScreen() {
2318

2419
return (
2520
<View style={styles.container}>
26-
<Input
27-
icon={<Entypo name="magnifying-glass" size={30} color={DARK_GRAY} />}
28-
inputContainerStyle={[
29-
styles.searchBar,
30-
{
31-
top: insets.top + 20,
32-
},
33-
]}
34-
/>
3521
{hasLocation && (
3622
<GoogleMap
3723
initialRegion={location}

src/screens/WordScreen/index.jsx

+4-4
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ import {
1010
SearchBar,
1111
LoadingOrEmptyMessage,
1212
} from '../../components';
13-
import { FilterListSearch, sortMeaning } from '../../utils';
13+
import { FilterListSearchWord, sortMeaning } from '../../utils';
1414
import styles from './styles';
1515

1616
export function WordsScreen() {
@@ -29,11 +29,11 @@ export function WordsScreen() {
2929
getWords();
3030
}, []);
3131

32-
const filteredWords = FilterListSearch(words, wordSearch);
32+
const filteredWords = FilterListSearchWord(words, wordSearch);
3333

3434
return (
3535
<SafeAreaView>
36-
<View>
36+
<View style={{ marginBottom: 20 }}>
3737
<GoBack />
3838
<TopBar>Palavras</TopBar>
3939
<SearchBar
@@ -42,7 +42,7 @@ export function WordsScreen() {
4242
/>
4343
</View>
4444
<FlatList
45-
style={styles.listcontainer}
45+
contentContainerStyle={styles.listcontainer}
4646
ListEmptyComponent={
4747
<View style={styles.loadingOrEmptyContainer}>
4848
<LoadingOrEmptyMessage

src/screens/WordScreen/styles.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { StyleSheet } from 'react-native';
22

33
const styles = StyleSheet.create({
4-
listcontainer: { marginTop: 20 },
4+
listcontainer: { paddingBottom: '40%' },
55
loadingOrEmptyContainer: { paddingHorizontal: 10 },
66
});
77

src/utils/FilterWordSearch.js

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
export const FilterListSearchWord = (list, search) =>
2+
list.filter((item) =>
3+
search === '' ||
4+
item.nome.toLowerCase().substring(0, search.length) ===
5+
search.toLowerCase() ||
6+
item.significado.toLowerCase().substring(0, search.length) ===
7+
search.toLowerCase()
8+
? item
9+
: false
10+
);

src/utils/index.js

+1
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
export { sortName, inverseSortName, sortMeaning } from './sortByName';
22
export { FilterListSearch } from './FilterListSearch';
33
export { removeAccent } from './removeAccent';
4+
export { FilterListSearchWord } from './FilterWordSearch';

0 commit comments

Comments
 (0)