Skip to content

Commit

Permalink
✨ feat: Typescript Errors
Browse files Browse the repository at this point in the history
  • Loading branch information
pedrogomes18 committed Aug 8, 2024
1 parent 247f30d commit 7ecf286
Show file tree
Hide file tree
Showing 17 changed files with 110 additions and 54 deletions.
43 changes: 29 additions & 14 deletions src/components/ContainerCards/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import ISupervisor from '@interfaces/Supervisor';

const Container: React.FC<{
search?: string;
data: Array<ISeller | ISupervisor>;
data: Array<ISeller | ISupervisor> | null;
loading: boolean;
title: string;
media?: { [key: string]: number };
Expand All @@ -21,7 +21,7 @@ const Container: React.FC<{
<S.Cards>
{loading ? (
<LoadingIndicator />
) : filteredData.length > 0 ? (
) : (filteredData ?? []).length > 0 ? (
userType === 'Supervisor' ? (
<>
<S.DivVisita>
Expand All @@ -34,9 +34,12 @@ const Container: React.FC<{
</S.DivMentoria>
</>
) : (
filteredData.map((item, index) => (
<CardItem key={index} item={item} media={media} />
))
filteredData?.map(
(
item: ISeller | ISupervisor,
index: string | number | null | undefined
) => <CardItem key={index} item={item} media={media} />
)
)
) : (
<NoDataMessage title={userType === 'Supervisor' ? '' : 'Dados'} />
Expand All @@ -46,31 +49,43 @@ const Container: React.FC<{
);
};

const filterData = (data, search, userType) => {
const filterData = (
data: any[] | null,
search: string | undefined,
userType: string | undefined
) => {
if (userType === 'Supervisor') return data;

const removeAccents = (str: string) =>
str.normalize('NFD').replace(/[\u0300-\u036f]/g, '');
const searchTerm = search ? removeAccents(search.toLowerCase()) : '';

return data.filter((item) => {
return data?.filter((item) => {
const itemName = removeAccents(item.name.toLowerCase());
return !search || itemName.includes(searchTerm);
});
};

const renderFilteredData = (data, stage, media) => {
const filtered = data.filter(
(item): item is ISeller => 'stage' in item && item.stage === stage
const renderFilteredData = (
data: any[] | null | undefined,
stage: string,
media: { [x: string]: number }
) => {
const filtered = data?.filter(
(item: { stage: any }): item is ISeller =>
'stage' in item && item.stage === stage
);

if (filtered.length === 0) {
if (filtered?.length === 0) {
return <NoDataMessage key="no-data" title={stage} />;
}

return filtered.map((item, index) => (
<CardItem key={index} item={item} media={media} />
));
return filtered?.map(
(
item: ISeller | ISupervisor,
index: string | number | null | undefined
) => <CardItem key={index} item={item} media={media} />
);
};

const LoadingIndicator: React.FC = () => (
Expand Down
4 changes: 2 additions & 2 deletions src/screens/EvaluateMentoring/CompleteMentorship/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -133,7 +133,7 @@ const CompleteMentorship: React.FC = () => {

return (
<>
<StatusBar />
<StatusBar backgroundColor={'#3E63DD'} />
<S.Wrapper>
<HeaderPages title="Avaliar Mentorado" />
<SellerInfo seller={Seller} handleBackHome={handleBackHome} />
Expand Down Expand Up @@ -188,7 +188,7 @@ const ModuleEvaluation: React.FC<ModuleEvaluationProps> = ({ moduleData }) => {
const fetchData = async () => {
try {
const fetchedModule = await ModulesServices.getModuleById(
moduleData?.idModule
moduleData?.idModule ?? ''
);
setModule(fetchedModule);
} catch (error) {
Expand Down
4 changes: 2 additions & 2 deletions src/screens/EvaluateMentoring/ModuloAsk/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -95,12 +95,12 @@ const ModuloAsk: React.FC<Props> = ({ route }) => {
navigation.navigate('CompleteMentoring', {
Seller: seller,
ModulesEvaluate: editedModules,
});
} as never);
};

return (
<>
<StatusBar />
<StatusBar backgroundColor={'#3E63DD'} />
<S.Wrapper>
<HeaderPages title="Avaliar Mentorado" />
<SellerInfo seller={seller} />
Expand Down
29 changes: 25 additions & 4 deletions src/screens/EvaluateMentoring/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -63,7 +63,7 @@ const EvaluateMentoring = () => {

return (
<>
<StatusBar />
<StatusBar backgroundColor={'#3E63DD'} />
<S.Wrapper>
<HeaderPages title="Avaliar Mentoreado" />
<S.Container>
Expand All @@ -80,14 +80,27 @@ const EvaluateMentoring = () => {
);
};

const SellerSelection = ({ sellers, onSelectSeller }) => (
interface SellerSelectionProps {
sellers: ISeller[];
onSelectSeller: (seller: ISeller) => void;
}

const SellerSelection: React.FC<SellerSelectionProps> = ({
sellers,
onSelectSeller,
}) => (
<S.DivContainerSeller>
<S.NameField>Nome do Vendedor</S.NameField>
<Dropdown sellers={sellers} onSelectSeller={onSelectSeller} />
</S.DivContainerSeller>
);

const ModuleList = ({ loading, modules }) => (
interface ModuleListProps {
loading: boolean;
modules: IModule[];
}

const ModuleList: React.FC<ModuleListProps> = ({ loading, modules }) => (
<S.DivContainerSeller>
<S.NameField>Veja quais módulos estão disponíveis</S.NameField>
<S.ContainerButton>
Expand All @@ -106,7 +119,15 @@ const ModuleList = ({ loading, modules }) => (
</S.DivContainerSeller>
);

const EvaluationButton = ({ onPress, disabled }) => (
interface EvaluationButtonProps {
onPress: () => void;
disabled: boolean;
}

const EvaluationButton: React.FC<EvaluationButtonProps> = ({
onPress,
disabled,
}) => (
<S.BtnAvaliar onPress={onPress} disabled={disabled}>
<S.TextBtnAvaliar>Avaliar</S.TextBtnAvaliar>
</S.BtnAvaliar>
Expand Down
3 changes: 3 additions & 0 deletions src/screens/EvaluateVisit/EvaluateVisitManager/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import VisitService from '@services/VisitService';
import ICategories from '@interfaces/Visit/Categories';
import ITemplateVisit from '@interfaces/Visit/TemplateVisit';
import Select from '@components/Select';
import { StatusBar } from 'react-native';

interface VisitGrade {
questionId: string;
Expand Down Expand Up @@ -186,6 +187,8 @@ const EvaluateVisitManager = () => {

return (
<S.WrapperView>
<StatusBar backgroundColor={'#3E63DD'} />

<HeaderPages title="Visita" />
<S.ContainerFields>
<S.ContainerVisit>
Expand Down
3 changes: 2 additions & 1 deletion src/screens/EvaluateVisit/index.tsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import React, { useEffect, useState } from 'react';
import * as S from './styles';
import { ActivityIndicator, Dimensions } from 'react-native';
import { ActivityIndicator, Dimensions, StatusBar } from 'react-native';
import Breadcrumb from '@components/Breadcrumb';
import Dropdown from '@components/Dropdown';
import HeaderPages from '@components/HeaderPages';
Expand Down Expand Up @@ -261,6 +261,7 @@ const EvaluateVisit = () => {
return (
<>
<S.WrapperView>
<StatusBar backgroundColor={'#3E63DD'} />
<HeaderPages title="Visita" />
<S.ContainerFields>
<Breadcrumb
Expand Down
7 changes: 4 additions & 3 deletions src/screens/Home/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,19 @@ import SupervisorServices from '@services/SupervisorServices';
import SellerServices from '@services/SellerServices';
import ModulesServices from '@services/ModuleServices';
import Seller from '@interfaces/Seller';
import Supervisor from '@interfaces/Supervisor';
import { useDataContext } from '../../context/DataContext';

const Home = () => {
const { user } = useAuth();
const { data } = useDataContext();
const [loading, setLoading] = useState(true);
const [sellers, setSellers] = useState([]);
const [supervisors, setSupervisors] = useState([]);
const [sellers, setSellers] = useState<Seller[]>([]);
const [supervisors, setSupervisors] = useState<Supervisor[]>([]);
const [media, setMedia] = useState({});

const fetchMediaData = async (sellersData: Seller[]) => {
const mediaData = {};
const mediaData: { [key: string]: number } = {};
for (const seller of sellersData) {
const moduleGrades = await ModulesServices.getModuleGradesByIdSeller(
seller.id
Expand Down
2 changes: 1 addition & 1 deletion src/screens/Login/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import React from 'react';
const Login = () => {
return (
<S.Wrapper>
<StatusBar />
<StatusBar backgroundColor={'#3E63DD'} />
<S.Header>
<S.TitleHeader>Faça seu login</S.TitleHeader>
<S.ImageHeader source={require('@assets/img/login/mao.png')} />
Expand Down
26 changes: 12 additions & 14 deletions src/screens/MyTeam/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ import { StatusBar } from 'expo-status-bar';
import DivGradient from '@components/DivGradient';
import * as S from './styles';
import { useNavigation } from '@react-navigation/native';
import Seller from '@interfaces/Seller';
import Container from '@components/ContainerCards';
import useAuth from '@hooks/useAuth';
import SellerServices from '@services/SellerServices';
Expand All @@ -18,10 +17,10 @@ const MyTeam = () => {
const { user } = useAuth();
const { data } = useDataContext();
const [loading, setLoading] = useState(true);
const [sellers, setSellers] = useState<ISeller[]>([]);
const [sellers, setSellers] = useState<ISeller[] | null>(null);
const [supervisors, setSupervisors] = useState<ISupervisor[]>([]);
const [search, setSearch] = useState('');
const [media, setMedia] = useState({});
const [media, setMedia] = useState<{ [key: string]: number }>({});
const navigation = useNavigation();

const handlePressAddedSeller = () => {
Expand All @@ -33,18 +32,18 @@ const MyTeam = () => {
setLoading(true);
try {
if (user.job === 'Supervisor') {
const [sellersData] = await Promise.all([
SellerServices.getAllSellerFromSupervisor(user.id),
]);
const mediaData = await fetchMediaData(sellersData);
setSellers(sellersData);
const sellersData = await SellerServices.getAllSellerFromSupervisor(
user.id
);
const mediaData = await fetchMediaData(sellersData as ISeller[]);
setSellers(sellersData || []);
setMedia(mediaData);
} else if (user.job === 'Gerente') {
const [sellersData, supervisorsData] = await Promise.all([
SellerServices.getAllSellerFromManager(user.id),
SupervisorServices.getAllSupervisorsFromManager(user.id),
]);
const mediaData = await fetchMediaData(sellersData);
const mediaData = await fetchMediaData(sellersData as ISeller[]);
setSellers(sellersData);
setSupervisors(supervisorsData);
setMedia(mediaData);
Expand All @@ -58,8 +57,8 @@ const MyTeam = () => {
fetchData();
}, [user.id, user.job, data]);

const fetchMediaData = async (sellersData: Seller[]) => {
const mediaData = {};
const fetchMediaData = async (sellersData: ISeller[]) => {
const mediaData: { [key: string]: number } = {};
for (const seller of sellersData) {
const moduleGrades = await ModulesServices.getModuleGradesByIdSeller(
seller.id
Expand All @@ -82,8 +81,8 @@ const MyTeam = () => {
<HeaderPages title="Minha Equipe" />
<S.DivContainerInput>
<S.InputVendedor
placeholder={'Pesquisar'}
keyboardType={'default'}
placeholder="Pesquisar"
keyboardType="default"
value={search}
onChangeText={(text) => setSearch(text)}
/>
Expand All @@ -100,7 +99,6 @@ const MyTeam = () => {
userType={user.job}
/>
)}

<Container
media={media}
title="Vendedores"
Expand Down
19 changes: 17 additions & 2 deletions src/screens/PlainAction/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,14 @@ const PlainActionTemplate = () => {
);
};

const PlanList = ({
interface PlanListProps {
title: string;
plains: IPlains[];
handleToggleVisibility: (idPlain: string) => void;
handleMarkDone: (idPlain: string) => void;
}

const PlanList: React.FC<PlanListProps> = ({
title,
plains,
handleToggleVisibility,
Expand All @@ -156,7 +163,15 @@ const PlanList = ({
);
};

const CompletedPlanList = ({
interface CompletedPlanListProps {
title: string;
completedPlains: IPlains[];
handleToggleVisibility: (idPlain: string) => void;
handleMarkDone: (idPlain: string) => void;
complete: boolean;
}

const CompletedPlanList: React.FC<CompletedPlanListProps> = ({
title,
completedPlains,
handleToggleVisibility,
Expand Down
4 changes: 2 additions & 2 deletions src/screens/SalesInspector/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -55,9 +55,9 @@ const SalesInspector = ({ route }) => {
const handleDelete = async () => {
try {
setLoading(true);
if (cargo === 'Supervisor') {
if (cargo === 'Supervisor' && supervisors) {
await SupervisorServices.delete(supervisors.id);
} else if (cargo === 'Vendedor') {
} else if (cargo === 'Vendedor' && seller) {
await SellerServices.delete(seller.id);
}
setData({
Expand Down
2 changes: 1 addition & 1 deletion src/screens/SellerAdded/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ const SellerAdded: React.FC = () => {
const handleCreate = async () => {
try {
setLoading(true);
const supervisorId = selectedSupervisor?.id || null;
const supervisorId = selectedSupervisor?.id || undefined;
const companyId = user.companyId;

const seller: ISeller = await SellerService.createSeller({
Expand Down
4 changes: 4 additions & 0 deletions src/services/CompanyService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,10 @@ export default class CompanyServices {
(company) => company.id === idCompany
);

if (company === undefined) {
throw new Error('Company not found');
}

return company;
}
}
4 changes: 3 additions & 1 deletion src/services/ModuleServices.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ export default class ModulesServices {
static async getModuleById(idModule: string): Promise<IModule> {
const moduleResponse: AxiosResponse<IModule[]> =
await api.get('/module/getAll');
const module = moduleResponse.data.find((module) => module.id === idModule);
const module = moduleResponse.data.find(
(module) => module.id === idModule
) as IModule;

return module;
}
Expand Down
Loading

0 comments on commit 7ecf286

Please sign in to comment.