@@ -43,4 +43,4 @@ We want to get rid of the ng-container by writing :
The list is empty !!
```
-The goal is to **improve the ngFor directive**
+The goal is to **improve the ngFor directive**.
diff --git a/docs/src/content/docs/challenges/angular/4-context-outlet-typed.md b/docs/src/content/docs/challenges/angular/4-context-outlet-typed.md
index 43f8a2d..88d4e5b 100644
--- a/docs/src/content/docs/challenges/angular/4-context-outlet-typed.md
+++ b/docs/src/content/docs/challenges/angular/4-context-outlet-typed.md
@@ -17,9 +17,9 @@ However the context of **NgTemplateOutlet** type is **Object**. But with the hel
## Statement
-In this exercice, we want to learn how to strongly type our ng-template in our AppComponent.
+In this exercise, we want to learn how to strongly type our ng-template in our AppComponent.
-This exercice has two levels of complexity.
+This exercise has two levels of complexity.
### Level 1: known Interface
diff --git a/docs/src/content/docs/challenges/angular/44-view-transition.md b/docs/src/content/docs/challenges/angular/44-view-transition.md
index 46ae580..6dbf211 100644
--- a/docs/src/content/docs/challenges/angular/44-view-transition.md
+++ b/docs/src/content/docs/challenges/angular/44-view-transition.md
@@ -6,7 +6,6 @@ challengeNumber: 44
command: angular-view-transition
sidebar:
order: 208
- badge: New
---
## Information
diff --git a/docs/src/content/docs/challenges/angular/45-react-in-angular.md b/docs/src/content/docs/challenges/angular/45-react-in-angular.md
new file mode 100644
index 0000000..96443c7
--- /dev/null
+++ b/docs/src/content/docs/challenges/angular/45-react-in-angular.md
@@ -0,0 +1,77 @@
+---
+title: 🔴 React in angular
+description: Challenge 45 is about learning how to benefit from the numerous libraries in React
+author: wandrille-guesdon
+challengeNumber: 45
+command: angular-react-in-angular
+sidebar:
+ order: 209
+ badge: New
+---
+
+The goal of this challenge is to use a React component inside an Angular application.
+
+Many components are available in React, and it can be interesting to use them in an Angular application. The goal is to create a React component and use it in an Angular application.
+
+## Information
+
+In this challenge, we have a simple application and a react component `ReactPost` in `app/react` to illustrate a react component from a library.
+
+## Statement
+
+- Your task is to display the posts with the React component `ReactPost`.
+- When you select a post, the post should be highlighted.
+
+In order to play with the react component, you should start by installing the react dependencies.
+
+```bash
+npm i --save react react-dom
+npm i --save-dev @types/react @types/react-dom
+```
+
+## Constraints
+
+- Do not transform the react component in an angular component. The React component is pretty simple and can be written with ease in Angular. But **the goal is to use the React component**.
+
+### Hint
+
+
+ Hint 1 - Configuration
+ Allow the React files in tsconfig.json
+
+```
+{
+...
+"compilerOptions": {
+ ...
+ "jsx": "react"
+},
+...
+}
+```
+
+
+
+
+ Hint 2 - Initialization
+ Create a react root with `createRoot(...)`
+
+
+
+ Hint 3 - Display
+ To render the component, it should look like this:
+
+ ```
+ .render(
+
+ ...
+
+ )
+ ```
+
+
+
+
+ Hint 4 - Design
+ Do not forget to allow the react file in Tailwind.
+
diff --git a/docs/src/content/docs/challenges/angular/5-crud.md b/docs/src/content/docs/challenges/angular/5-crud.md
index dfc909f..9d34d5a 100644
--- a/docs/src/content/docs/challenges/angular/5-crud.md
+++ b/docs/src/content/docs/challenges/angular/5-crud.md
@@ -14,7 +14,7 @@ Communicating and having a global/local state in sync with your backend is the h
## Statement
-In this exercice, you have a small CRUD application, which get a list of TODOS, update and delete some todos.
+In this exercise, you have a small CRUD application, which get a list of TODOS, update and delete some todos.
Currently we have a working example but filled with lots of bad practices.
diff --git a/docs/src/content/docs/challenges/ngrx/2-effect-selector.md b/docs/src/content/docs/challenges/ngrx/2-effect-selector.md
index f571bbf..ea7914b 100644
--- a/docs/src/content/docs/challenges/ngrx/2-effect-selector.md
+++ b/docs/src/content/docs/challenges/ngrx/2-effect-selector.md
@@ -9,7 +9,7 @@ sidebar:
order: 113
---
-For this exercice, you will have a dashboard of activities displaying the name, the main teacher and a list of subtitutes.
+For this exercise, you will have a dashboard of activities displaying the name, the main teacher and a list of subtitutes.
## Information
diff --git a/docs/src/content/docs/es/index.mdx b/docs/src/content/docs/es/index.mdx
index e164844..ce07092 100644
--- a/docs/src/content/docs/es/index.mdx
+++ b/docs/src/content/docs/es/index.mdx
@@ -23,16 +23,16 @@ hero:
import { Card, CardGrid } from '@astrojs/starlight/components';
import MyIcon from '../../../components/MyIcon.astro';
-import SubscriptionForm from '../../../components/SubscriptionForm.astro'
+import SubscriptionForm from '../../../components/SubscriptionForm.astro';
-
- Este repositorio contiene 44 desafíos relacionados con Angular, Nx, RxJS, Ngrx y Typescript.
+
+ Este repositorio contiene 45 Desafíos relacionados con Angular, Nx, RxJS, Ngrx y Typescript.
Estos desafíos se resuelven en torno a problemas de la vida real o características específicas para mejorar tus habilidades.
-
+
@@ -57,7 +57,8 @@ import SubscriptionForm from '../../../components/SubscriptionForm.astro'
- Completar estos desafíos te preparará para cualquier desafío técnico que puedas encontrar en un rol de frontend durante las entrevistas.
+ Completar estos desafíos te preparará para cualquier desafío técnico que
+ puedas encontrar en un rol de frontend durante las entrevistas.
diff --git a/docs/src/content/docs/fr/index.mdx b/docs/src/content/docs/fr/index.mdx
index 892cda6..2388d8d 100644
--- a/docs/src/content/docs/fr/index.mdx
+++ b/docs/src/content/docs/fr/index.mdx
@@ -25,15 +25,15 @@ hero:
import { Card, CardGrid } from '@astrojs/starlight/components';
import MyIcon from '../../../components/MyIcon.astro';
-import SubscriptionForm from '../../../components/SubscriptionForm.astro'
+import SubscriptionForm from '../../../components/SubscriptionForm.astro';
-
- Ce répertoire rassemble 44 défis liés à Angular, Nx, RxJS, Ngrx et Typescript. Ces défis portent sur des problèmes réels ou des fonctionnalités spécifiques pour améliorer vos compétences.
+
+ Ce répertoire rassemble 45 Défis liés à Angular, Nx, RxJS, Ngrx et Typescript. Ces défis portent sur des problèmes réels ou des fonctionnalités spécifiques pour améliorer vos compétences.
-
+
diff --git a/docs/src/content/docs/index.mdx b/docs/src/content/docs/index.mdx
index 968084a..b9a5715 100644
--- a/docs/src/content/docs/index.mdx
+++ b/docs/src/content/docs/index.mdx
@@ -13,7 +13,7 @@ hero:
icon: right-arrow
variant: primary
- text: Go to the latest Challenge
- link: /challenges/angular/44-view-transition/
+ link: /challenges/angular/45-react-in-angular/
icon: rocket
- text: Give a star
link: https://github.com/tomalaforge/angular-challenges
@@ -24,17 +24,16 @@ hero:
import { Card, CardGrid } from '@astrojs/starlight/components';
import MyIcon from '../../components/MyIcon.astro';
-import SubscriptionForm from '../../components/SubscriptionForm.astro'
-
+import SubscriptionForm from '../../components/SubscriptionForm.astro';
-
- This repository gathers 44 Challenges related to Angular, Nx, RxJS, Ngrx and Typescript.
+
+ This repository gathers 45 Challenges related to Angular, Nx, RxJS, Ngrx and Typescript.
These challenges resolve around real-life issues or specific features to elevate your skills.
-
+
diff --git a/docs/src/content/docs/pt/challenges/angular/3-directive-enhancement.md b/docs/src/content/docs/pt/challenges/angular/3-directive-enhancement.md
new file mode 100644
index 0000000..808f997
--- /dev/null
+++ b/docs/src/content/docs/pt/challenges/angular/3-directive-enhancement.md
@@ -0,0 +1,46 @@
+---
+title: 🟠 Aprimoramento de Diretiva
+description: Desafio 3 é sobre o aprimoramento de uma diretiva nativa
+author: thomas-laforge
+challengeNumber: 3
+command: angular-ngfor-enhancement
+blogLink: https://medium.com/@thomas.laforge/ngfor-enhancement-716b44656a6c
+sidebar:
+ order: 101
+---
+
+:::note[Nota]
+Este exercício pode ser obsoleto com o novo controle de fluxo e do bloco de empty state dentro do bloco `@for`. No entanto, **diretivas estruturais** não serão removidas tão cedo, por isso você ainda pode aprender bastante com este exercício.
+:::
+
+## Informação
+
+Diretiva é uma ferramente poderosa oferecida pelo framework Angular. Você pode usar o princípio DRY compartilhando a lógica dentro de uma diretiva e aplicando ela em qualquer componente que quiser.
+
+Mas a verdadeira vantagem é que você consegue melhorar uma diretiva pré-existente que não **pertence** a você.
+
+## Declaração
+
+Neste exercício, queremos mostrar uma lista de pessoas. Se a lista está vazio, você deve mostrar _" the list is empty !! "_.
+
+Atualmente, temos:
+
+```typescript
+ 0; else emptyList">
+
+ {{ person.name }}
+
+
+ The list is empty !!
+```
+
+Queremos nos livrar do `ng-container` escrevendo:
+
+```typescript
+
+ {{ person.name }}
+
+ The list is empty !!
+```
+
+Objetivo é **melhorar a diretiva ngFor**.
diff --git a/docs/src/content/docs/pt/challenges/angular/44-view-transition.md b/docs/src/content/docs/pt/challenges/angular/44-view-transition.md
index 7391bb4..ead29d4 100644
--- a/docs/src/content/docs/pt/challenges/angular/44-view-transition.md
+++ b/docs/src/content/docs/pt/challenges/angular/44-view-transition.md
@@ -6,7 +6,6 @@ challengeNumber: 44
command: angular-view-transition
sidebar:
order: 208
- badge: New
---
## Informação
diff --git a/docs/src/content/docs/pt/index.mdx b/docs/src/content/docs/pt/index.mdx
index 3004dae..a2bd9bb 100644
--- a/docs/src/content/docs/pt/index.mdx
+++ b/docs/src/content/docs/pt/index.mdx
@@ -23,19 +23,20 @@ hero:
import { Card, CardGrid } from '@astrojs/starlight/components';
import MyIcon from '../../../components/MyIcon.astro';
-import SubscriptionForm from '../../../components/SubscriptionForm.astro'
+import SubscriptionForm from '../../../components/SubscriptionForm.astro';
-
- Este repositório possui 44 desafios relacionados a Angular, Nx, RxJS,
+
+ Este repositório possui 45 Desafios relacionados a Angular, Nx, RxJS,
Ngrx e Typescript.
Esses desafios são voltados para problemas reais ou funcionalidades específicas afim de
melhorar suas habilidades.
-
-
-
+{' '}
+
+
+
{' '}
diff --git a/docs/src/content/docs/ru/index.mdx b/docs/src/content/docs/ru/index.mdx
index ac0cb90..349ac70 100644
--- a/docs/src/content/docs/ru/index.mdx
+++ b/docs/src/content/docs/ru/index.mdx
@@ -23,36 +23,38 @@ hero:
import { Card, CardGrid } from '@astrojs/starlight/components';
import MyIcon from '../../../components/MyIcon.astro';
-import SubscriptionForm from '../../../components/SubscriptionForm.astro'
+import SubscriptionForm from '../../../components/SubscriptionForm.astro';
-
- Этот репозиторий содержит 44 испытания, связанных с Angular, Nx, RxJS, Ngrx and Typescript.
+
+ Этот репозиторий содержит 45 Испытания, связанных с Angular, Nx, RxJS, Ngrx and Typescript.
Испытания основаны на реальных задачах или инструментах для того, чтобы прокачать вас.
-
+
- Одна из целей этого репозитория снизить барьер для разработки
- открытого программного обеспечения (OSS). Решив эти задачи, вы поймете,
- как начать вносить свой вклад в любой другой проект с открытым исходным кодом.
+ Одна из целей этого репозитория снизить барьер для разработки открытого
+ программного обеспечения (OSS). Решив эти задачи, вы поймете, как начать
+ вносить свой вклад в любой другой проект с открытым исходным кодом.
- Изучение и использование нового фреймворка всегда сопряжено с трудностями.
- В этом наборе испытаний содержатся реальные примеры задач, чтобы закрепить на практике то, чему вы научились.
- Любой может оставить комментарий или предложить помощь.
+ Изучение и использование нового фреймворка всегда сопряжено с трудностями. В
+ этом наборе испытаний содержатся реальные примеры задач, чтобы закрепить на
+ практике то, чему вы научились. Любой может оставить комментарий или
+ предложить помощь.
- Учиться одному - здорово, но обучение вместе с другими поможет вам добиться большего.
+ Учиться одному - здорово, но обучение вместе с другими поможет вам добиться
+ большего.
У вас есть идея или интересный баг? Не стесняйтесь;{' '}
- Создавайте свои собственные испытания не теряя времени.
+ Создавайте свои собственные испытания не теряя времени.
@@ -61,8 +63,9 @@ import SubscriptionForm from '../../../components/SubscriptionForm.astro'
- Это бесплатный проект, и он будет оставаться таковым как можно дольше.
- Однако вся работа ведется в мое свободное время, включая создание новых испытаний и ревью их решений(PRs).
+ Это бесплатный проект, и он будет оставаться таковым как можно дольше. Однако
+ вся работа ведется в мое свободное время, включая создание новых испытаний и
+ ревью их решений(PRs).
Спонсорство может поддержать меня и способствовать развитию проекта.