feat: create challenge 48 without solution

This commit is contained in:
Timothy Alcaide
2024-04-10 02:06:31 +02:00
committed by thomas
parent 94171adfd1
commit c5dd953193
31 changed files with 462 additions and 30003 deletions

View File

@@ -0,0 +1,48 @@
---
title: 🟠 Save your form's bacon: with the navigation alert
description: Challenge 48 is about Bob 🧙‍♂️ the product owner, he wants to develop a new feature in response to customer complaints about losing form input information.
author: Timothy Alcaide
contributors:
- tomalaforge
challengeNumber: 48
command: angular-dialog-alert-form
sidebar:
order: 121
badge: New
---
:::note
WIP: The following documentation need to be written.
:::
## Context
As a member of the development team, you need to address a specific request from the product owner, Bob 🧙‍♂️ He wants to develop a new feature in response to customer complaints about losing form input information.
## User Story
Here's the feature expressed as a user story (functional expectation)
"As a user, I would like to have an alert dialog box that appears when I attempt to navigate away from the /form page after I have started entering information into the form."
## Acceptance Criteria
1. On the /form page:
- If the input text has been pre-filled, then an alert dialog box opens.
- Otherwise, the user navigates normally.
2. The alert dialog box must be clear and concise, stating: "Caution! You have unsaved information. Do you want to continue and lose them?" with the following button labels:
- Continue without saving
- Stay on page
3. The appearance and behavior of the alert dialog box must comply with W3C conventions, see [alert dialog pattern](https://www.w3.org/WAI/ARIA/apg/patterns/alertdialog/)
4. Maximize the use of the new concepts and syntax in the latest version of Angular.
5. (Bonus) : Try to adopt a declarative approach (for dialog opening, for example).
<details>
<summary>Tips 🤫 (if you really need it and after careful consideration)</summary>
Use the Material CDK Dialog - https://material.angular.io/cdk/dialog/overview
Use the CanDeactivate guard - https://angular.io/api/router/CanDeactivate (use new functionnal approach).
</details>

View File

@@ -9,7 +9,6 @@ challengeNumber: 47
command: typescript-enums-vs-union-types
sidebar:
order: 18
badge: New
---
## Information

View File

@@ -13,7 +13,7 @@ hero:
icon: right-arrow
variant: primary
- text: Ir al Desafío más reciente
link: /es/challenges/typescript/47-enums-vs-union-types/
link: /es/challenges/angular/48-dialog-alert-form/
icon: rocket
- text: Dar una estrella
link: https://github.com/tomalaforge/angular-challenges
@@ -26,8 +26,8 @@ import MyIcon from '../../../components/MyIcon.astro';
import SubscriptionForm from '../../../components/SubscriptionForm.astro';
<CardGrid>
<Card title="47 Desafíos">
Este repositorio contiene 47 Desafíos relacionados con <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>, <b>Ngrx</b> y <b>Typescript</b>.
<Card title="48 Desafíos">
Este repositorio contiene 48 Desafíos relacionados con <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>, <b>Ngrx</b> y <b>Typescript</b>.
Estos desafíos se resuelven en torno a problemas de la vida real o características específicas para mejorar tus habilidades.
</Card>

View File

@@ -13,7 +13,7 @@ hero:
icon: right-arrow
variant: primary
- text: Aller au dernier Challenge
link: /fr/challenges/typescript/47-enums-vs-union-types/
link: /fr/challenges/angular/48-dialog-alert-form/
icon: rocket
- text: Donne une étoile
link: https://github.com/tomalaforge/angular-challenges
@@ -26,8 +26,8 @@ import MyIcon from '../../../components/MyIcon.astro';
import SubscriptionForm from '../../../components/SubscriptionForm.astro';
<CardGrid>
<Card title="47 Défis">
Ce répertoire rassemble 47 Défis liés à <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>, <b>Ngrx</b> et <b>Typescript</b>. Ces défis portent sur des problèmes réels ou des fonctionnalités spécifiques pour améliorer vos compétences.
<Card title="48 Défis">
Ce répertoire rassemble 48 Défis liés à <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>, <b>Ngrx</b> et <b>Typescript</b>. Ces défis portent sur des problèmes réels ou des fonctionnalités spécifiques pour améliorer vos compétences.
</Card>
<Card title="Subscribe to get notify of latest challenges">

View File

@@ -26,10 +26,9 @@ import MyIcon from '../../components/MyIcon.astro';
import SubscriptionForm from '../../components/SubscriptionForm.astro';
<CardGrid>
<Card title="47 Challenges">
This repository gathers 47 Challenges related to <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>, <b>Ngrx</b> and <b>Typescript</b>.
<Card title="48 Challenges">
This repository gathers 48 Challenges related to <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>, <b>Ngrx</b> and <b>Typescript</b>.
These challenges resolve around real-life issues or specific features to elevate your skills.
</Card>

View File

@@ -13,7 +13,7 @@ hero:
icon: right-arrow
variant: primary
- text: Ir para o desafio mais recente
link: /pt/challenges/typescript/47-enums-vs-union-types/
link: /pt/challenges/angular/48-dialog-alert-form/
icon: rocket
- text: Dar uma estrela
link: https://github.com/tomalaforge/angular-challenges
@@ -26,8 +26,8 @@ import MyIcon from '../../../components/MyIcon.astro';
import SubscriptionForm from '../../../components/SubscriptionForm.astro';
<CardGrid>
<Card title="47 Desafios">
Este repositório possui 47 Desafios relacionados a <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>,
<Card title="48 Desafios">
Este repositório possui 48 Desafios relacionados a <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>,
<b>Ngrx</b> e <b>Typescript</b>.
Esses desafios são voltados para problemas reais ou funcionalidades específicas afim de
melhorar suas habilidades.

View File

@@ -13,7 +13,7 @@ hero:
icon: right-arrow
variant: primary
- text: Перейти к последней задаче
link: /ru/challenges/typescript/47-enums-vs-union-types/
link: /ru/challenges/angular/48-dialog-alert-form/
icon: rocket
- text: Добавить звезду
link: https://github.com/tomalaforge/angular-challenges