15 | );
16 | };
17 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # See https://help.github.com/articles/ignoring-files/ for more about ignoring files.
2 |
3 | #Junk
4 | .vscode/
5 | .idea/
6 |
7 | # dependencies
8 | /node_modules
9 | /.pnp
10 | .pnp.js
11 |
12 | # testing
13 | /coverage
14 |
15 | # production
16 | /build
17 |
18 | # misc
19 | .DS_Store
20 | .env.local
21 | .env.development.local
22 | .env.test.local
23 | .env.production.local
24 |
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 |
--------------------------------------------------------------------------------
/src/index.css:
--------------------------------------------------------------------------------
1 | @import-normalize; /* bring in normalize.css styles */
2 |
3 | body {
4 | margin: 0;
5 | font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
6 | 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
7 | sans-serif;
8 | -webkit-font-smoothing: antialiased;
9 | -moz-osx-font-smoothing: grayscale;
10 | }
11 |
12 | code {
13 | font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
14 | monospace;
15 | }
16 |
--------------------------------------------------------------------------------
/.github/workflows/deploy.yml:
--------------------------------------------------------------------------------
1 | name: Build and deploy to GitHub Pages
2 |
3 | on:
4 | push:
5 | branches: [main]
6 |
7 | jobs:
8 | build-and-deploy:
9 | runs-on: ubuntu-latest
10 | steps:
11 | - name: Checkout 🛎️
12 | uses: actions/checkout@v2.3.1
13 |
14 | - name: Install, lint, build 🔧
15 | run: |
16 | npm install
17 | npm run lint:js
18 | npm run build
19 |
20 | - name: Deploy 🚀
21 | uses: JamesIves/github-pages-deploy-action@4.1.0
22 | with:
23 | branch: gh-pages
24 | folder: build
25 |
--------------------------------------------------------------------------------
/public/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "short_name": "React App",
3 | "name": "Create React App Sample",
4 | "icons": [
5 | {
6 | "src": "favicon.ico",
7 | "sizes": "64x64 32x32 24x24 16x16",
8 | "type": "image/x-icon"
9 | },
10 | {
11 | "src": "logo192.png",
12 | "type": "image/png",
13 | "sizes": "192x192"
14 | },
15 | {
16 | "src": "logo512.png",
17 | "type": "image/png",
18 | "sizes": "512x512"
19 | }
20 | ],
21 | "start_url": ".",
22 | "display": "standalone",
23 | "theme_color": "#000000",
24 | "background_color": "#ffffff"
25 | }
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-homework-template",
3 | "version": "0.1.0",
4 | "private": true,
5 | "homepage": "https://goitacademy.github.io/react-homework-template/",
6 | "dependencies": {
7 | "@testing-library/jest-dom": "^5.16.3",
8 | "@testing-library/react": "^12.1.4",
9 | "@testing-library/user-event": "^13.5.0",
10 | "react": "^18.1.0",
11 | "react-dom": "^18.1.0",
12 | "react-scripts": "5.0.1",
13 | "web-vitals": "^2.1.3"
14 | },
15 | "scripts": {
16 | "start": "react-scripts start",
17 | "build": "react-scripts build",
18 | "test": "react-scripts test",
19 | "eject": "react-scripts eject",
20 | "lint:js": "eslint src/**/*.{js,jsx}"
21 | },
22 | "eslintConfig": {
23 | "extends": [
24 | "react-app",
25 | "react-app/jest"
26 | ]
27 | },
28 | "browserslist": {
29 | "production": [
30 | ">0.2%",
31 | "not dead",
32 | "not op_mini all"
33 | ],
34 | "development": [
35 | "last 1 chrome version",
36 | "last 1 firefox version",
37 | "last 1 safari version"
38 | ]
39 | }
40 | }
41 |
--------------------------------------------------------------------------------
/public/404.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Single Page Apps for GitHub Pages
6 |
48 |
49 |
50 |
51 |
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
12 |
13 |
17 |
18 |
27 | React App
28 |
29 |
30 |
58 |
59 |
60 |
61 |
62 |
63 |
73 |
74 |
75 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # React homework template
2 |
3 | Этот проект был создан при помощи
4 | [Create React App](https://github.com/facebook/create-react-app). Для знакомства
5 | и настройки дополнительных возможностей
6 | [обратись к документации](https://facebook.github.io/create-react-app/docs/getting-started).
7 |
8 | ## Создание репозитория по шаблону
9 |
10 | Используй этот репозиторий организации GoIT как шаблон для создания репозитория
11 | своего проекта. Для этого нажми на кнопку `«Use this template»` и выбери опцию
12 | `«Create a new repository»`, как показано на изображении.
13 |
14 | 
15 |
16 | На следующем шаге откроется страница создания нового репозитория. Заполни поле
17 | его имени, убедись что репозиторий публичный, после чего нажми кнопку
18 | `«Create repository from template»`.
19 |
20 | 
21 |
22 | Теперь у тебя есть личный репозиторий проекта, со структурой файлов и папок
23 | репозитория-шаблона. Далее работай с ним как с любым другим личным репозиторием,
24 | клонируй его себе на компьютер, пиши код, делай коммиты и отправляй их на
25 | GitHub.
26 |
27 | ## Подготовка к работе
28 |
29 | 1. Убедись что на компьютере установлена LTS-версия Node.js.
30 | [Скачай и установи](https://nodejs.org/en/) её если необходимо.
31 | 2. Установи базовые зависимости проекта командой `npm install`.
32 | 3. Запусти режим разработки, выполнив команду `npm start`.
33 | 4. Перейди в браузере по адресу [http://localhost:3000](http://localhost:3000).
34 | Эта страница будет автоматически перезагружаться после сохранения изменений в
35 | файлах проекта.
36 |
37 | ## Деплой
38 |
39 | Продакшн версия проекта будет автоматически проходить линтинг, собираться и
40 | деплоиться на GitHub Pages, в ветку `gh-pages`, каждый раз когда обновляется
41 | ветка `main`. Например, после прямого пуша или принятого пул-реквеста. Для этого
42 | необходимо в файле `package.json` отредактировать поле `homepage`, заменив
43 | `your_username` и `your_repo_name` на свои, и отправить изменения на GitHub.
44 |
45 | ```json
46 | "homepage": "https://your_username.github.io/your_repo_name/"
47 | ```
48 |
49 | Далее необходимо зайти в настройки GitHub-репозитория (`Settings` > `Pages`) и
50 | выставить раздачу продакшн версии файлов из папки `/root` ветки `gh-pages`, если
51 | это небыло сделано автоматически.
52 |
53 | 
54 |
55 | ### Статус деплоя
56 |
57 | Статус деплоя крайнего коммита отображается иконкой возле его идентификатора.
58 |
59 | - **Желтый цвет** - выполняется сборка и деплой проекта.
60 | - **Зеленый цвет** - деплой завершился успешно.
61 | - **Красный цвет** - во время линтинга, сборки или деплоя произошла ошибка.
62 |
63 | Более детальную информацию о статусе можно посмотреть кликнув по иконке, и в
64 | выпадающем окне перейти по ссылке `Details`.
65 |
66 | 
67 |
68 | ### Живая страница
69 |
70 | Через какое-то время, обычно пару минут, живую страницу можно будет посмотреть
71 | по адресу указанному в отредактированном свойстве `homepage`. Например, вот
72 | ссылка на живую версию для этого репозитория
73 | [https://goitacademy.github.io/react-homework-template](https://goitacademy.github.io/react-homework-template).
74 |
75 | Если открывается пустая страница, убедись что во вкладке `Console` нет ошибок
76 | связанных с неправильными путями к CSS и JS файлам проекта (**404**). Скорее
77 | всего у тебя неправильное значение свойства `homepage` в файле `package.json`.
78 |
79 | ### Маршрутизация
80 |
81 | Если приложение использует библиотеку `react-router-dom` для маршрутизации,
82 | необходимо дополнительно настроить компонент ``, передав в пропе
83 | `basename` точное название твоего репозитория. Слеш в начале строки
84 | обязателен.
85 |
86 | ```jsx
87 |
88 |
89 |
90 | ```
91 |
92 | ## Как это работает
93 |
94 | 
95 |
96 | 1. После каждого пуша в ветку `main` GitHub-репозитория, запускается специальный
97 | скрипт (GitHub Action) из файла `.github/workflows/deploy.yml`.
98 | 2. Все файлы репозитория копируются на сервер, где проект инициализируется и
99 | проходит линтинг и сборку перед деплоем.
100 | 3. Если все шаги прошли успешно, собранная продакшн версия файлов проекта
101 | отправляется в ветку `gh-pages`. В противном случае, в логе выполнения
102 | скрипта будет указано в чем проблема.
103 |
--------------------------------------------------------------------------------
/README.en.md:
--------------------------------------------------------------------------------
1 | # React homework template
2 |
3 | This project was created with
4 | [Create React App](https://github.com/facebook/create-react-app). To get
5 | acquainted and configure additional features
6 | [refer to documentation](https://facebook.github.io/create-react-app/docs/getting-started).
7 |
8 | ## Создание репозитория по шаблону
9 |
10 | Используй этот репозиторий организации GoIT как шаблон для создания репозитория
11 | своего проекта. Для этого нажми на кнопку `«Use this template»` и выбери опцию
12 | `«Create a new repository»`, как показано на изображении.
13 |
14 | 
15 |
16 | На следующем шаге откроется страница создания нового репозитория. Заполни поле
17 | его имени, убедись что репозиторий публичный, после чего нажми кнопку
18 | `«Create repository from template»`.
19 |
20 | 
21 |
22 | Теперь у тебя есть личный репозиторий проекта, со структурой файлов и папок
23 | репозитория-шаблона. Далее работай с ним как с любым другим личным репозиторием,
24 | клонируй его себе на компьютер, пиши код, делай коммиты и отправляй их на
25 | GitHub.
26 |
27 | ## Подготовка к работе
28 |
29 | 1. Make sure you have an LTS version of Node.js installed on your computer.
30 | [Download and install](https://nodejs.org/en/) if needed.
31 | 2. Install the project's base dependencies with the `npm install` command.
32 | 3. Start development mode by running the `npm start` command.
33 | 4. Go to [http://localhost:3000](http://localhost:3000) in your browser. This
34 | page will automatically reload after saving changes to the project files.
35 |
36 | ## Deploy
37 |
38 | The production version of the project will automatically be linted, built, and
39 | deployed to GitHub Pages, in the `gh-pages` branch, every time the `main` branch
40 | is updated. For example, after a direct push or an accepted pull request. To do
41 | this, you need to edit the `homepage` field in the `package.json` file,
42 | replacing `your_username` and `your_repo_name` with your own, and submit the
43 | changes to GitHub.
44 |
45 | ```json
46 | "homepage": "https://your_username.github.io/your_repo_name/"
47 | ```
48 |
49 | Next, you need to go to the settings of the GitHub repository (`Settings` >
50 | `Pages`) and set the distribution of the production version of files from the
51 | `/root` folder of the `gh-pages` branch, if this was not done automatically.
52 |
53 | 
54 |
55 | ### Deployment status
56 |
57 | The deployment status of the latest commit is displayed with an icon next to its
58 | ID.
59 |
60 | - **Yellow color** - the project is being built and deployed.
61 | - **Green color** - deployment completed successfully.
62 | - **Red color** - an error occurred during linting, build or deployment.
63 |
64 | More detailed information about the status can be viewed by clicking on the
65 | icon, and in the drop-down window, follow the link `Details`.
66 |
67 | 
68 |
69 | ### Live page
70 |
71 | After some time, usually a couple of minutes, the live page can be viewed at the
72 | address specified in the edited `homepage` property. For example, here is a link
73 | to a live version for this repository
74 | [https://goitacademy.github.io/react-homework-template](https://goitacademy.github.io/react-homework-template).
75 |
76 | If a blank page opens, make sure there are no errors in the `Console` tab
77 | related to incorrect paths to the CSS and JS files of the project (**404**). You
78 | most likely have the wrong value for the `homepage` property in the
79 | `package.json` file.
80 |
81 | ### Routing
82 |
83 | If your application uses the `react-router-dom` library for routing, you must
84 | additionally configure the `` component by passing the exact name
85 | of your repository in the `basename` prop. Slashes at the beginning and end of
86 | the line are required.
87 |
88 | ```jsx
89 |
90 |
91 |
92 | ```
93 |
94 | ## How it works
95 |
96 | 
97 |
98 | 1. After each push to the `main` branch of the GitHub repository, a special
99 | script (GitHub Action) is launched from the `.github/workflows/deploy.yml`
100 | file.
101 | 2. All repository files are copied to the server, where the project is
102 | initialized and linted and built before deployment.
103 | 3. If all steps are successful, the built production version of the project
104 | files is sent to the `gh-pages` branch. Otherwise, the script execution log
105 | will indicate what the problem is.
106 |
--------------------------------------------------------------------------------
/README.pl.md:
--------------------------------------------------------------------------------
1 | **Read in other languages: [rosyjski](README.md), [polski](README.pl.md).**
2 |
3 | # React homework template
4 |
5 | Ten projekt został stworzony przy pomocy
6 | [Create React App](https://github.com/facebook/create-react-app). W celu
7 | zapoznania się z ustawieniami dodatkowych opcji
8 | [zobacz dokumentację](https://facebook.github.io/create-react-app/docs/getting-started).
9 |
10 | ## Utworzenie repozytorium zgodnie z szablonem
11 |
12 | Wykorzystaj to repozytorium organizacji GoIT jako szablon do utworzenia repozytorium własnego projektu. W tym celu kliknij na przycisk `"Use this template"` i wybierz opcję `"Create a new repository"`, jak pokazano na rysunku.
13 |
14 | 
15 |
16 | W następnym kroku otworzy się strona utworzenia nowego repozytorium. Wypełnij pole nazwy i upewnij się, że repozytorium jest publiczne, a następnie kliknij na przycisk `"Create repository from template"`.
17 |
18 | 
19 |
20 | Teraz masz własne repozytorium projektu, ze strukturą folderów i plików jak w szablonie. Pracuj z nim jak z innymi repozytoriami, klonuj je na swój komputer, pisz kod, rób commity i wysyłaj na GitHub.
21 |
22 | ## Przygotowanie do pracy
23 |
24 | 1. Upewnij się, że na komputerze zainstalowana jest wersja LTS Node.js.
25 | [Ściągnij i zainstaluj](https://nodejs.org/en/), jeżeli trzeba.
26 | 2. Utwórz bazowe zależności projektu przy pomocy polecenia `npm install`.
27 | 3. Włącz tryb pracy, wykonując polecenie `npm start`.
28 | 4. Przejdź w przeglądarce pod adres
29 | [http://localhost:3000](http://localhost:3000). Ta strona będzie
30 | automatycznie przeładowywać się po zapisaniu zmian w plikach projektu.
31 |
32 | ## Deployment
33 |
34 | Produkcyjna wersja projektu będzie automatycznie poddana pracy lintera, budowana
35 | i deployowana na GitHub Pages, w gałęzi `gh-pages` za każdym razem, gdy
36 | aktualizuje się gałąź `main`, na przykład po bezpośrednim pushu lub przyjętym
37 | pull requeście. W tym celu należy w pliku `package.json` zredagować pole
38 | `homepage`, zamieniając `your_username` i `your_repo_name` na swoje nazwy i
39 | wysłać zmiany do GitHub.
40 |
41 | ```json
42 | "homepage": "https://your_username.github.io/your_repo_name/"
43 | ```
44 |
45 | Następnie należy przejść do ustawień repozytorium GitHub (`Settings` > `Pages`)
46 | i wydystrybuować wersję produkcyjną plików z folderu `/root` gałęzi `gh-pages`,
47 | jeśli nie zostało to wykonane automatycznie.
48 |
49 | 
50 |
51 | ### Status deploymentu
52 |
53 | Status deploymentu ostatniego commitu wyświetla się jako ikona obok jego
54 | identyfikatora.
55 |
56 | - **Żółty kolor** - wykonuje się zbudowanie i deployment projektu.
57 | - **Zielony kolor** - deploymnt zakończył się sukcesem.
58 | - **Czerwony kolor** - podczas pracy lintera, budowania lub deploymentu wystąpił
59 | błąd.
60 |
61 | Bardziej szczegółowe informacje o statusie można zobaczyć po kliknięciu na
62 | ikonkę i przejściu w wyskakującym oknie do odnośnika `Details`.
63 |
64 | 
65 |
66 | ### Deployowana strona
67 |
68 | Po jakimś czasie, zazwyczaj kilku minut, zdeployowaną stronę będzie można
69 | zobaczyć pod adresem wskazanym w zredagowanej właściwości `homepage`. Tutaj na
70 | przykład znajduje się odnośnik do zdeployowanej strony w wersji dla tego
71 | repozytorium
72 | [https://goitacademy.github.io/react-homework-template](https://goitacademy.github.io/react-homework-template).
73 |
74 | Jeżeli otwiera się pusta strona, upewnij się, że w zakładce `Console` nie ma
75 | błędów związanych z nieprawidłowymi ścieżkami do plików CSS i JS projektu
76 | (**404**). Najprawdopodobniej wprowadzona została niewłaściwa wartość
77 | właściwości `homepage` w pliku `package.json`.
78 |
79 | ### Trasowanie
80 |
81 | Jeżeli aplikacja wykorzystuje bibliotekę `react-router-dom` dla trasowania,
82 | należy uzupełniająco skonfigurować komponent ``, przekazując w
83 | propsie `basename` dokładną nazwę twojego repozytorium. Slash na początku i na
84 | końcu łańcucha jest obowiązkowy.
85 |
86 | ```jsx
87 |
88 |
89 |
90 | ```
91 |
92 | ## Jak to działa
93 |
94 | 
95 |
96 | 1. Po każdym pushu do gałęzi `main` repozytorium GitHub, uruchamia się specjalny
97 | skrypt (GitHub Action) z pliku `.github/workflows/deploy.yml`.
98 | 2. Wszystkie pliki repozytorium kopiują się na serwer, gdzie projekt zostaje
99 | zainicjowany i przechodzi pracę lintera oraz zbudowanie przed deploymentem.
100 | 3. Jeżeli wszystkie kroki zakończyły się sukcesem, zbudowana wersja produkcyjna
101 | plików projektu wysyłana jest do gałęzi `gh-pages`. W przeciwnym razie, w
102 | logu wykonania skryptu zostanie wskazane z czym jest problem.
103 |
--------------------------------------------------------------------------------
/README.es.md:
--------------------------------------------------------------------------------
1 | # React homework template
2 |
3 | Este proyecto fue creado con la ayuda de
4 | [Create React App](https://github.com/facebook/create-react-app).
5 | [Consulte la documentación](https://facebook.github.io/create-react-app/docs/getting-started)
6 | para familiarizarse con las funciones opcionales y configurarlas.
7 |
8 | ## Создание репозитория по шаблону
9 |
10 | Используй этот репозиторий организации GoIT как шаблон для создания репозитория
11 | своего проекта. Для этого нажми на кнопку `«Use this template»` и выбери опцию
12 | `«Create a new repository»`, как показано на изображении.
13 |
14 | 
15 |
16 | На следующем шаге откроется страница создания нового репозитория. Заполни поле
17 | его имени, убедись что репозиторий публичный, после чего нажми кнопку
18 | `«Create repository from template»`.
19 |
20 | 
21 |
22 | Теперь у тебя есть личный репозиторий проекта, со структурой файлов и папок
23 | репозитория-шаблона. Далее работай с ним как с любым другим личным репозиторием,
24 | клонируй его себе на компьютер, пиши код, делай коммиты и отправляй их на
25 | GitHub.
26 |
27 | ## Подготовка к работе
28 |
29 | 1. Asegúrate de que la versión LTS de Node.js está instalada en tu computador.
30 | [Descárguela e instálela](https://nodejs.org/en/) de ser necesario.
31 | 2. Instala las dependencias base del proyecto con el comando `npm install`.
32 | 3. Inicia el modo de desarrollo ejecutando el comando `npm start`.
33 | 4. En tu navegador, ve a la dirección
34 | [http://localhost:3000](http://localhost:3000). Esta página se recargará
35 | automáticamente después de guardar los cambios en los archivos del proyecto.
36 |
37 | ## Implementación
38 |
39 | La versión de producción del proyecto se verificará, compilará y desplegará
40 | automáticamente en GitHub Pages, en la rama `gh-pages`, cada vez que se
41 | actualice la rama `main`. Por ejemplo, después de un Push directo o de una
42 | Pool-request aceptada. Para ello, edita el campo `homepage` del archivo
43 | `package.json`, sustituyendo `your_username` y `your_repo_name` por los tuyos
44 | propios, y envía los cambios a GitHub.
45 |
46 | ```json
47 | "homepage": "https://your_username.github.io/your_repo_name/"
48 | ```
49 |
50 | A continuación, ve a la configuración del repositorio de GitHub (`Settings` >
51 | `Pages`) y selecciona distribuir la versión de producción de los archivos desde
52 | la carpeta `/root` de la rama `gh-pages`, si no se ha hecho automáticamente.
53 |
54 | 
55 |
56 | ### Estado de la implantación
57 |
58 | El estado del último commit se indica con un icono junto al ID del commit.
59 |
60 | - **Color amarillo** - el proyecto está compilado e implementado.
61 | - **Color verde** - La implementación se completó con éxito.
62 | - **Color rojo** - Se ha producido un error durante la verificación, la
63 | compilación o la implementación
64 |
65 | Se puede ver información de estado más detallada haciendo clic en el icono y en
66 | la ventana desplegable del enlace `Detalles`.
67 |
68 | 
69 |
70 | ### Página activa
71 |
72 | Después de un tiempo, normalmente un par de minutos, la página real se puede ver
73 | en la dirección especificada en la propiedad `homepage`. Por ejemplo, aquí está
74 | el enlace a la versión activa de este repositorio
75 | [https://goitacademy.github.io/react-homework-template](https://goitacademy.github.io/react-homework-template).
76 |
77 | Si se abre una página en blanco, asegúrate de que no haya errores en la pestaña
78 | `Console` relacionados con rutas incorrectas de archivos CSS y JS del proyecto
79 | (**404**). Probablemente tienes un valor incorrecto para la propiedad `homepage`
80 | en el archivo `package.json`.
81 |
82 | ### Enrutamiento
83 |
84 | Si la aplicación utiliza la librería `react-router-dom` para el enrutamiento, el
85 | componente `` debe ser configurado adicionalmente pasando en la
86 | prop `basename`, el nombre exacto de tu repositorio. Las barras inclinadas al
87 | principio y al final de la cadena son obligatorias.
88 |
89 | ```jsx
90 |
91 |
92 |
93 | ```
94 |
95 | ## ¿Cómo funciona?
96 |
97 | 
98 |
99 | 1. Después de cada push a la rama `main` del repositorio GitHub, se ejecuta un
100 | script especial (GitHub Action) del archivo `.github/workflows/deploy.yml`.
101 | 2. Todos los archivos del repositorio se copian en el servidor, donde el
102 | proyecto se inicializa, se verifica y se compila antes de ser implementado.
103 | 3. Si todos los pasos tienen éxito, la versión de producción compilada de los
104 | archivos del proyecto se envía a la rama `gh-pages`. De lo contrario, el
105 | registro de ejecución del script indicará cuál es el problema.
106 |
--------------------------------------------------------------------------------