-
Notifications
You must be signed in to change notification settings - Fork 31
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
Conversation
<it-checkbox-example></it-checkbox-example> | ||
|
||
<it-source-display html="<div class="card w-50 mt-2"> | ||
<it-source-display html=" |
There was a problem hiding this comment.
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
?
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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
There was a problem hiding this comment.
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. |
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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):
There was a problem hiding this comment.
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 --> |
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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 @@ | |||
|
There was a problem hiding this comment.
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("\}\}", "/\}/\}") $}" > |
There was a problem hiding this comment.
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.
# [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)
Descrizione
Implementate la componente
it-radio-button
e la direttivait-radio-group
.Checklist