Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implementazione componente radio button #24

Merged
merged 10 commits into from
Jul 13, 2018

Conversation

ciccio86
Copy link
Contributor

@ciccio86 ciccio86 commented Jul 5, 2018

Descrizione

Implementate la componente it-radio-button e la direttiva it-radio-group.

Checklist

<it-checkbox-example></it-checkbox-example>

<it-source-display html="&lt;div class=&quot;card w-50 mt-2&quot;&gt;
<it-source-display html="
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La butto lì: non è possibile evitare questa esplosione di entities decodificate usando [innerHTML] da qualche parte nel componente SourceDisplayComponent?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Essendo il file checkbox-examples.component.html compilato, trovare un modo elegante per non committarlo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Dal momento che tutti i file compilati da template sono relativi alla pagina di esempi di un componente potrebbe essere sufficiente aggiungere la regola

/**/*-examples.component.html

al file .gitignore

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Inoltre non condividerei neanche il file documentation.json generato da compodoc.


/** Aggiorna il radio button `selected` a seconda del suo _value. */
private _updateSelectedRadioFromValue(): void {
const isAlreadySelected = this._selected !== null && this._selected.value === this._value;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Se isAlreadySelected non è usato, non dovrebbe essere necessario definirlo.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sì esattamente. E' frutto di un refactoring e per qualche motivo il linter non l'ha segnalato.

if (newCheckedState && this.radioGroup && this.radioGroup.value !== this.value) {
this.radioGroup.selected = this;
} else if (!newCheckedState && this.radioGroup && this.radioGroup.value === this.value) {
this.radioGroup.selected = null;
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Giusto per capire: questa situazione identifica un caso in cui nessun radio button del gruppo è selezionato? Come può avvenire?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nel caso in cui il valore checked di un radio button venga modificato programmaticamente, si deve aggiornare anche il valore dell'intero gruppo a null.

E' presente anche un test a riguardo nel file radio.component.spec.ts dal nome dovrebbe aggiornare il radio button selezionato nel gruppo a null quando questo viene deselezionato programmaticamente

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grazie, tutto chiaro! 🙇

@@ -0,0 +1,55 @@
/**
* @license
* Copyright Google LLC All Rights Reserved.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ruphy siamo tranquilli con l'inclusione di pezzi di codice tipo questo? Grazie.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

La licenza è molto permissiva (MIT style):

https://angular.io/license

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

possiamo includerli MA dobbiamo rispettare la licenza.
--> MIT richiede citazione e la distribuzione del testo della licenza stessa. Si può aprire un paragrafo "componenti esterni" nel README o aggiungere un file ulteriore

<div [innerHTML]="component.description"></div>
</div>
<div class="tab-pane p-3 fade" id="radio-api-tab-content" role="tabpanel" aria-labelledby="radio-api-tab-content">
<!-- TODO: da spostare in una componente ad hoc -->
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In questo file ci sono un paio di TODO to do. 😄
Nel caso questa lavorazione non sia parte di questo task, che ne dite di creare una issue separata?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concordo nella creazione di un task a parte

@@ -0,0 +1,97 @@

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Un po' troppi return?


<it-radio-example></it-radio-example>

<it-source-display html="{$ html | replace("\{\{", "/\{/\{") | replace("\}\}", "/\}/\}") $}" typescript="{$ typescript | replace("\{\{", "/\{/\{") | replace("\}\}", "/\}/\}") $}" >
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Solo un bad smell: tutta la parte che sta attorno all'it-source-display mi sembra poco comprensibile e manutenibile a causa di passaggi di encoding complesso. Sarebbe da trovare un modo più chiaro di trattare la cosa.

@giuseppe-santoro giuseppe-santoro merged commit 650fa8b into master Jul 13, 2018
td-machineuser pushed a commit that referenced this pull request Jul 25, 2018
# [0.1.0](v0.0.0...v0.1.0) (2018-07-25)

### Bug Fixes

* **componente:** aggiungi esplicitamente il tipo del campo disabled del checkbox ([1955e11](1955e11))
* **SourceDisplay:** Permetti al componente SourceDisplay di poter comparire più volte in una pagina. ([352362f](352362f)), closes [#21](#21)

### Features

* **checkbox:** aggiungi la checkbox ([e8f13b2](e8f13b2)), closes [#2](#2)
* **checkbox:** configura test e2e ([d4734e4](d4734e4)), closes [#7](#7)
* **checkbox:** configura test unitari ([238f421](238f421)), closes [#6](#6)
* **RadioButton:** implementazione componente radio button ([#24](#24)) ([650fa8b](650fa8b)), closes [#16](#16)
* **toggle:** Inizia implementazione e documentazione del toggle button ([9370e06](9370e06)), closes [#17](#17)
@ciccio86 ciccio86 deleted the feature/16-radiobutton branch September 17, 2018 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants