Skip to content

Commit

Permalink
feat: add path alias to imports with more than 2 levels on presentati…
Browse files Browse the repository at this point in the history
…on layer
  • Loading branch information
sunderhus committed Dec 14, 2023
1 parent 51b6811 commit cb7c502
Show file tree
Hide file tree
Showing 6 changed files with 75 additions and 75 deletions.
16 changes: 8 additions & 8 deletions src/main/factories/views/home-factory.tsx
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import React from 'react'
import Home from '../../../presentation/pages/Home'
import { makeRemoteSearchRepository } from '../use-cases/remote-search-repository-factory'
import { RequiredFieldValidator } from '../../../validation/RequiredFieldValidator'
import { makeCacheLoadRepositories } from '../use-cases/cache-load-repositories-factory'
import { makeCacheSaveRepositories } from '../use-cases/cache-save-repositories-factory'
import React from "react";
import Home from "@/presentation/pages/Home";
import { makeRemoteSearchRepository } from "../use-cases/remote-search-repository-factory";
import { RequiredFieldValidator } from "@/validation/RequiredFieldValidator";
import { makeCacheLoadRepositories } from "../use-cases/cache-load-repositories-factory";
import { makeCacheSaveRepositories } from "../use-cases/cache-save-repositories-factory";

export const makeHome: React.FC = () => {
return (
Expand All @@ -13,5 +13,5 @@ export const makeHome: React.FC = () => {
loadRepositories={makeCacheLoadRepositories()}
saveRepositories={makeCacheSaveRepositories()}
/>
)
}
);
};
12 changes: 6 additions & 6 deletions src/main/factories/views/repository-details-factory.tsx
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
import React from 'react'
import RepositoryDetailsPage from '../../../presentation/pages/RepositoryDetails'
import { makeRemoteGetRepositoryDetails } from '../use-cases/remote-get-repository-details-factory'
import { makeRemoteGetRepositoryIssues } from '../use-cases/remote-get-repository-issues-factory'
import React from "react";
import RepositoryDetailsPage from "@/presentation/pages/RepositoryDetails";
import { makeRemoteGetRepositoryDetails } from "../use-cases/remote-get-repository-details-factory";
import { makeRemoteGetRepositoryIssues } from "../use-cases/remote-get-repository-issues-factory";

export const makeRepositoryDetails: React.FC = () => {
return (
<RepositoryDetailsPage
getRepositoryDetails={makeRemoteGetRepositoryDetails()}
getRepositoryIssues={makeRemoteGetRepositoryIssues()}
/>
)
}
);
};
18 changes: 9 additions & 9 deletions src/presentation/components/RepositoriesList/index.tsx
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
import React from 'react'
import { FiChevronRight } from 'react-icons/fi'
import { Link } from 'react-router-dom'
import { Repository } from '../../../domain/models/Repository'
import { Container } from './styles'
import React from "react";
import { FiChevronRight } from "react-icons/fi";
import { Link } from "react-router-dom";
import { Repository } from "@/domain/models/Repository";
import { Container } from "./styles";

interface Props {
repositories: Repository[]
repositories: Repository[];
}
const RepositoriesList: React.FC<Props> = ({ repositories }: Props) => {
return (
Expand All @@ -21,7 +21,7 @@ const RepositoriesList: React.FC<Props> = ({ repositories }: Props) => {
</Link>
))}
</Container>
)
}
);
};

export default RepositoriesList
export default RepositoriesList;
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { render, screen } from "@testing-library/react";
import { describe, it, expect } from "vitest";
import { BrowserRouter } from "react-router-dom";
import RepositoryList from ".";
import { Repository } from "../../../domain/models/Repository";
import { Repository } from "@/domain/models/Repository";

type sutParams = {
repositoriesMock: Repository[];
Expand Down
90 changes: 45 additions & 45 deletions src/presentation/pages/Home/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@ import React, {
useCallback,
useEffect,
useState,
} from 'react'

import { SearchRepository } from '../../../domain/use-cases/SearchRepository'
import logoImage from '../../assets/logo.svg'
import Footer from '../../components/Footer'
import { Error, Form, Title } from './styles'
import { Validation } from '../../protocols/validation'
import { LoadRepositories } from '../../../domain/use-cases/LoadRepositories'
import { SaveRepositories } from '../../../domain/use-cases/SaveRepositories'
import RepositoriesList from '../../components/RepositoriesList'
import { Repository } from '../../../domain/models/Repository'
} from "react";

import { SearchRepository } from "@/domain/use-cases/SearchRepository";
import logoImage from "@/presentation/assets/logo.svg";
import Footer from "@/presentation/components/Footer";
import { Error, Form, Title } from "./styles";
import { Validation } from "@/presentation/protocols/validation";
import { LoadRepositories } from "@/domain/use-cases/LoadRepositories";
import { SaveRepositories } from "@/domain/use-cases/SaveRepositories";
import RepositoriesList from "@/presentation/components/RepositoriesList";
import { Repository } from "@/domain/models/Repository";

interface Props {
searchRepository: SearchRepository
validation: Validation
loadRepositories: LoadRepositories
saveRepositories: SaveRepositories
searchRepository: SearchRepository;
validation: Validation;
loadRepositories: LoadRepositories;
saveRepositories: SaveRepositories;
}

const Home: React.FC<Props> = ({
Expand All @@ -29,58 +29,58 @@ const Home: React.FC<Props> = ({
loadRepositories,
saveRepositories,
}: Props) => {
const [searchText, setSearchText] = useState('')
const [formError, setFormError] = useState('')
const [searchText, setSearchText] = useState("");
const [formError, setFormError] = useState("");
const [repositories, setRepositories] = useState<Repository[]>(() => {
const storagedRepositories = loadRepositories.load()
const storagedRepositories = loadRepositories.load();

return storagedRepositories
})
return storagedRepositories;
});

const isDuplicated = useCallback(() => {
const savedRepositories = repositories.map((repo) =>
`${repo.owner.login}/${repo.name}`.toLowerCase(),
)
const parsedSeachText = searchText.toLowerCase()
`${repo.owner.login}/${repo.name}`.toLowerCase()
);
const parsedSeachText = searchText.toLowerCase();

return savedRepositories.includes(parsedSeachText)
}, [repositories, searchText])
return savedRepositories.includes(parsedSeachText);
}, [repositories, searchText]);

const handleChange = useCallback((event: ChangeEvent<HTMLInputElement>) => {
setSearchText(event.target.value)
}, [])
setSearchText(event.target.value);
}, []);

async function handleSubmit(
event: FormEvent<HTMLFormElement>,
event: FormEvent<HTMLFormElement>
): Promise<void> {
event.preventDefault()
event.preventDefault();

const validationError = validation.validate(searchText)
const validationError = validation.validate(searchText);
if (validationError) {
setFormError(validationError.message)
return
setFormError(validationError.message);
return;
}

if (isDuplicated()) {
setFormError('This repository is already listed.')
return
setFormError("This repository is already listed.");
return;
}

try {
const response = await searchRepository.search(`${searchText}`)
setRepositories([...repositories, response])
const response = await searchRepository.search(`${searchText}`);
setRepositories([...repositories, response]);

setSearchText('')
setFormError('')
setSearchText("");
setFormError("");
} catch (error) {
const parsedError = error as Error
setFormError(parsedError.message)
const parsedError = error as Error;
setFormError(parsedError.message);
}
}

useEffect(() => {
saveRepositories.save(repositories)
}, [repositories, saveRepositories])
saveRepositories.save(repositories);
}, [repositories, saveRepositories]);

return (
<>
Expand All @@ -102,7 +102,7 @@ const Home: React.FC<Props> = ({

<Footer />
</>
)
}
);
};

export default Home
export default Home;
12 changes: 6 additions & 6 deletions src/presentation/pages/RepositoryDetails/index.tsx
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import React, { useEffect, useState } from "react";
import { FiChevronLeft, FiChevronRight } from "react-icons/fi";
import { Link, useParams } from "react-router-dom";
import logoImage from "../../assets/logo.svg";
import Footer from "../../components/Footer";
import logoImage from "@/presentation/assets/logo.svg";
import Footer from "@/presentation/components/Footer";

import { Header, Issues, RespositoryInfo } from "./styles";
import { GetRepositoryDetails } from "../../../domain/use-cases/GetRepositoryDetails";
import { RepositoryDetails } from "../../../domain/models/RepositoryDetails";
import { GetRepositoryIssues } from "../../../domain/use-cases/GetRepositoryIssues";
import { RepositoryIssue } from "../../../domain/models/RepositoryIssue";
import { GetRepositoryDetails } from "@/domain/use-cases/GetRepositoryDetails";
import { RepositoryDetails } from "@/domain/models/RepositoryDetails";
import { GetRepositoryIssues } from "@/domain/use-cases/GetRepositoryIssues";
import { RepositoryIssue } from "@/domain/models/RepositoryIssue";

/**
* 👋👨‍💻 Hey there! It's time to make some changes. 🚀
Expand Down

0 comments on commit cb7c502

Please sign in to comment.