Skip to content

Commit

Permalink
ajustes gerais e correcao pesquisa do forum
Browse files Browse the repository at this point in the history
  • Loading branch information
HenriqueAmorim20 committed Nov 5, 2023
1 parent 36b9414 commit 490c6ed
Show file tree
Hide file tree
Showing 12 changed files with 141 additions and 173 deletions.
7 changes: 2 additions & 5 deletions src/app/components/ModalConfirmation.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@ export default function ModalConfirmation({
<Modal animationType="fade" transparent={true} visible={visible}>
<View style={styles.centeredView}>
<View style={styles.modalView}>
<Text style={styles.modalText}>
{/* Prosseguir com a exclusão da conta? */}
{message}
</Text>
<Text style={styles.modalText}>{message}</Text>
<View style={styles.buttonContainer}>
<Pressable
style={[styles.button, styles.buttonCancel]}
Expand All @@ -34,7 +31,7 @@ export default function ModalConfirmation({
style={[styles.button, styles.buttonClose]}
onPress={() => callbackFn()}
>
<Text style={styles.textStyle}>Apagar</Text>
<Text style={styles.textStyle}>Confirmar</Text>
</Pressable>
</View>
</View>
Expand Down
8 changes: 4 additions & 4 deletions src/app/components/PublicacaoVisualizar.tsx
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
import React from "react";
import { View, Image, Text, StyleSheet } from "react-native";
import { IPublicacao } from "../interfaces/forum.interface";
import { IPublicacaoUsuario } from "../interfaces/forum.interface";
import Icon from "react-native-vector-icons/MaterialCommunityIcons";

interface IProps {
item: IPublicacao;
item: IPublicacaoUsuario;
}

export default function PublicacaoVisualizar({ item }: Readonly<IProps>) {
Expand Down Expand Up @@ -37,8 +37,8 @@ export default function PublicacaoVisualizar({ item }: Readonly<IProps>) {
return (
<View style={styles.postContainer}>
<View style={styles.userInfo}>
{getFoto(item.usuario?.foto)}
<Text style={styles.username}>{item.usuario?.nome}</Text>
{getFoto(item.foto)}
<Text style={styles.username}>{item.nome}</Text>
</View>
<Text style={styles.titulo}>{item.titulo}</Text>
<Text style={styles.descricao}>{item.descricao}</Text>
Expand Down
4 changes: 2 additions & 2 deletions src/app/components/UploadImage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,9 @@ export default function UploadImage({ setFoto, uri = null }: Readonly<Props>) {

const pickImage = () => {
ImagePicker.launchImageLibraryAsync({
mediaTypes: ImagePicker.MediaTypeOptions.All,
mediaTypes: ImagePicker.MediaTypeOptions.Images,
allowsEditing: true,
aspect: [4, 3],
aspect: [1, 1],
base64: true,
quality: 0,
}).then((result) => {
Expand Down
2 changes: 2 additions & 0 deletions src/app/interfaces/forum.interface.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@ export interface IPublicacao extends IPublicacaoBody {
usuario?: IUser;
}

export interface IPublicacaoUsuario extends IPublicacao, IUser {}

export interface IPublicacaoFilter {
titulo?: string;
}
Expand Down
146 changes: 73 additions & 73 deletions src/app/private/pages/editarPublicacao.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -38,15 +38,13 @@ export default function EditarPublicacao() {

const [titulo, setTitulo] = useState(item.titulo);
const [descricao, setDescricao] = useState(item.descricao);
const [categoria, setCategoria] = useState<ECategoriaPublicacao | null>(
item.categoria ?? ECategoriaPublicacao.GERAL,
);
const [categoria, setCategoria] = useState(item.categoria);
const [erros, setErros] = useState<IErrors>({});
const [showErrors, setShowErrors] = useState(false);
const [modalVisible, setModalVisible] = useState(false);
const [showLoading, setShowLoading] = useState(false);
const [showLoadingApagar, setShowLoadingApagar] = useState(false);
const [token, setToken] = useState<string>("");
const [token, setToken] = useState("");

const getToken = () => {
AsyncStorage.getItem("token").then((response) => {
Expand Down Expand Up @@ -89,8 +87,10 @@ export default function EditarPublicacao() {
};

const apagarPublicacao = async () => {
setModalVisible(false);
setShowLoadingApagar(true);

try {
setShowLoadingApagar(true);
const response = await deletePublicacaoById(item.id, token);
Toast.show({
type: "success",
Expand All @@ -110,14 +110,6 @@ export default function EditarPublicacao() {
}
};

const confirmation = () => {
setModalVisible(!modalVisible);
};

const closeModal = () => {
setModalVisible(false);
};

useEffect(() => handleErrors, [titulo, descricao, categoria]);
useEffect(() => getToken());

Expand Down Expand Up @@ -166,7 +158,7 @@ export default function EditarPublicacao() {
};

return (
<ScrollView>
<View>
<View style={styles.header}>
<Pressable onPress={navigate}>
<Icon
Expand All @@ -180,71 +172,79 @@ export default function EditarPublicacao() {
<Text style={styles.tituloheader}>Editar publicação</Text>
</View>

<View style={styles.publicacao}>
<View style={styles.formControl}>
<Text style={styles.inputLabel}>Título</Text>
<TextInput
onChangeText={setTitulo}
value={titulo}
placeholder="Título"
style={styles.input}
/>
<ErrorMessage show={showErrors} text={erros.titulo} />
</View>
<ScrollView>
<View style={styles.publicacao}>
<View style={styles.formControl}>
<Text style={styles.inputLabel}>Título</Text>
<TextInput
onChangeText={setTitulo}
value={titulo}
placeholder="Título"
style={styles.input}
/>
<ErrorMessage show={showErrors} text={erros.titulo} />
</View>

<View style={styles.formControl}>
<Text style={styles.inputLabel}>Descrição</Text>
<TextInput
onChangeText={setDescricao}
value={descricao}
multiline={true}
placeholder="Descrição"
numberOfLines={Platform.OS === "ios" ? undefined : 12}
style={[
styles.input,
{ minHeight: Platform.OS === "ios" && 12 ? 20 * 12 : null },
]}
/>
<ErrorMessage show={showErrors} text={erros.descricao} />
</View>
<View style={styles.formControl}>
<Text style={styles.inputLabel}>Descrição</Text>
<TextInput
onChangeText={setDescricao}
value={descricao}
multiline={true}
placeholder="Descrição"
numberOfLines={Platform.OS === "ios" ? undefined : 12}
style={[
styles.input,
{ minHeight: Platform.OS === "ios" && 12 ? 20 * 12 : null },
]}
/>
<ErrorMessage show={showErrors} text={erros.descricao} />
</View>

<View style={styles.formControl}>
<View style={styles.selectInput}>
<SelectList
data={data}
setSelected={setCategoria}
placeholder="Categoria"
search={false}
defaultOption={{ key: item.categoria, value: item.categoria }}
/>
</View>
<ErrorMessage show={showErrors} text={erros.categoria} />
</View>

<View style={styles.formControl}>
<View style={styles.selectInput}>
<SelectList
data={data}
setSelected={setCategoria}
placeholder="Categoria"
search={false}
defaultOption={{ key: item.categoria, value: item.categoria }}
<View style={styles.linkButton}>
<CustomButton
title="Salvar"
callbackFn={salvar}
showLoading={showLoading}
/>
</View>
<ErrorMessage show={showErrors} text={erros.categoria} />
</View>

<View style={styles.linkButton}>
<CustomButton
title="Salvar"
callbackFn={salvar}
showLoading={showLoading}
/>
</View>
<Pressable onPress={() => setModalVisible(true)}>
{showLoadingApagar && (
<ActivityIndicator
style={styles.apagar}
size="small"
color="#FF7F7F"
/>
)}

<Pressable onPress={confirmation}>
{showLoadingApagar ? (
<ActivityIndicator size="small" color="#FF7F7F" />
) : (
<Text style={styles.apagar}>Apagar Publicação</Text>
)}
</Pressable>
{!showLoadingApagar && (
<Text style={styles.apagar}>Apagar Publicação</Text>
)}
</Pressable>
</View>
</ScrollView>

<ModalConfirmation
visible={modalVisible}
callbackFn={apagarPublicacao}
closeModal={closeModal}
message="Apagar publicação?"
/>
</View>
</ScrollView>
<ModalConfirmation
visible={modalVisible}
callbackFn={apagarPublicacao}
closeModal={() => setModalVisible(false)}
message="Apagar publicação?"
/>
</View>
);
}

Expand Down Expand Up @@ -297,7 +297,7 @@ const styles = StyleSheet.create({
apagar: {
color: "#FF7F7F",
alignSelf: "center",
fontSize: 18,
fontSize: 16,
fontWeight: "600",
margin: 20,
},
Expand Down
46 changes: 11 additions & 35 deletions src/app/private/pages/visualizarPublicacao.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { router, useLocalSearchParams } from "expo-router";
import React, { useEffect, useState } from "react";
import { Pressable, StyleSheet, Text, View } from "react-native";
import { Pressable, ScrollView, StyleSheet, Text, View } from "react-native";
import Icon from "react-native-vector-icons/MaterialCommunityIcons";
import { IPublicacao } from "../../interfaces/forum.interface";
import { IUser } from "../../interfaces/user.interface";
Expand All @@ -10,18 +10,7 @@ import BackButton from "../../components/BackButton";

export default function VisualizarPublicacao() {
const [idUsuario, setIdUsuario] = useState<number | null>(null);

const item = useLocalSearchParams() as unknown as IPublicacao & IUser;
const publicacao = {
...item,
usuario: {
id: item.idUsuario,
foto: item.foto,
admin: item.admin,
nome: item.nome,
email: item.email,
},
};

const getIdUsuario = () => {
AsyncStorage.getItem("usuario").then((response) => {
Expand All @@ -31,11 +20,9 @@ export default function VisualizarPublicacao() {
};

const navigate = () => {
const params = { ...item, ...item.usuario };

router.push({
pathname: "/private/pages/editarPublicacao",
params: params,
params: item,
});
};

Expand All @@ -49,27 +36,16 @@ export default function VisualizarPublicacao() {
<Text style={styles.tituloheader}>Visualizar Publicação</Text>
</View>

<PublicacaoVisualizar item={publicacao as unknown as IPublicacao} />

{idUsuario && publicacao.idUsuario == idUsuario && (
<Pressable onPress={navigate} style={styles.editar}>
<Text style={styles.textoEditar}>Editar</Text>
<Icon name="pencil" size={20} color={"white"} />
</Pressable>
)}
<ScrollView>
<PublicacaoVisualizar item={item} />

{/* <View style={styles.botoes}> */}
{/* Parte relacionado ao incremento */}
{/* {idUsuario && publicacao.idUsuario == idUsuario && (
<View style={styles.botaoResponder}>
<Text style={styles.textoEditar}>Responder</Text>
</View>
)} */}
{/* </View> */}
{/* Parte relacionado ao incremento */}
{/* <View>
<Text style={styles.resposta}>Respostas</Text>
</View> */}
{idUsuario && item.idUsuario == idUsuario && (
<Pressable onPress={navigate} style={styles.editar}>
<Text style={styles.textoEditar}>Editar</Text>
<Icon name="pencil" size={20} color={"white"} />
</Pressable>
)}
</ScrollView>
</View>
);
}
Expand Down
11 changes: 0 additions & 11 deletions src/app/private/tabs/_layout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -85,15 +85,4 @@ const styles = StyleSheet.create({
marginTop: Platform.OS === "ios" ? 10 : 0,
marginBottom: Platform.OS === "ios" ? 0 : -10,
},

shadow: {
shadowColor: "#7F5DF0",
shadowOffset: {
width: 0,
height: 10,
},
shadowOpacity: 0.25,
shadowRadius: 3.5,
elevation: 5,
},
});
Loading

0 comments on commit 490c6ed

Please sign in to comment.