@@ -23,35 +23,31 @@ import { create_collection, edit_collection } from "./api.js";
2323import { COLOR_RE } from "./constants.js" ;
2424import { Collection , CollectionType } from "./models.js" ;
2525import { Scene , pop_scene , push_scene , scene_stack } from "./scene_manager.js" ;
26- import { cleanHREFinput , isValidHREF , random_hex , random_uuid } from "./utils.js" ;
26+ import { cleanHREFinput , isValidHREF , onCleanHREFinput , random_hex , random_uuid } from "./utils.js" ;
2727
2828/**
29- * @constructor
3029 * @implements {Scene}
31- * @param {string } user
32- * @param {string } password
33- * @param {Collection } collection if it's a principal collection, a new
34- * collection will be created inside of it.
35- * Otherwise the collection will be edited.
3630 */
3731export class CreateEditCollectionScene {
32+ /**
33+ * @param {string } user
34+ * @param {string } password
35+ * @param {Collection } collection if it's a principal collection, a new
36+ * collection will be created inside of it.
37+ * Otherwise the collection will be edited.
38+ */
3839 constructor ( user , password , collection ) {
3940 let edit = collection . type !== CollectionType . PRINCIPAL ;
4041 let html_scene = document . getElementById ( edit ? "editcollectionscene" : "createcollectionscene" ) ;
4142 /** @type {HTMLElement } */ let title_form = edit ? html_scene . querySelector ( "[data-name=title]" ) : null ;
4243 /** @type {HTMLElement } */ let error_form = html_scene . querySelector ( "[data-name=error]" ) ;
4344 /** @type {HTMLInputElement } */ let href_form = html_scene . querySelector ( "[data-name=href]" ) ;
44- /** @type {HTMLElement } */ let href_label = html_scene . querySelector ( "label[for=href]" ) ;
4545 /** @type {HTMLInputElement } */ let displayname_form = html_scene . querySelector ( "[data-name=displayname]" ) ;
46- /** @type {HTMLElement } */ let displayname_label = html_scene . querySelector ( "label[for=displayname]" ) ;
4746 /** @type {HTMLInputElement } */ let description_form = html_scene . querySelector ( "[data-name=description]" ) ;
48- /** @type {HTMLElement } */ let description_label = html_scene . querySelector ( "label[for=description]" ) ;
4947 /** @type {HTMLInputElement } */ let source_form = html_scene . querySelector ( "[data-name=source]" ) ;
5048 /** @type {HTMLElement } */ let source_label = html_scene . querySelector ( "label[for=source]" ) ;
5149 /** @type {HTMLSelectElement } */ let type_form = html_scene . querySelector ( "[data-name=type]" ) ;
52- /** @type {HTMLElement } */ let type_label = html_scene . querySelector ( "label[for=type]" ) ;
5350 /** @type {HTMLInputElement } */ let color_form = html_scene . querySelector ( "[data-name=color]" ) ;
54- /** @type {HTMLElement } */ let color_label = html_scene . querySelector ( "label[for=color]" ) ;
5551 /** @type {HTMLElement } */ let submit_btn = html_scene . querySelector ( "[data-name=submit]" ) ;
5652 /** @type {HTMLElement } */ let cancel_btn = html_scene . querySelector ( "[data-name=cancel]" ) ;
5753
@@ -69,7 +65,7 @@ export class CreateEditCollectionScene {
6965 let color = edit && collection . color ? collection . color : "#" + random_hex ( 6 ) ;
7066
7167 if ( ! edit ) {
72- href_form . addEventListener ( "keydown " , cleanHREFinput ) ;
68+ href_form . addEventListener ( "input " , onCleanHREFinput ) ;
7369 }
7470
7571 function remove_invalid_types ( ) {
@@ -118,7 +114,7 @@ export class CreateEditCollectionScene {
118114 error_form . classList . remove ( "hidden" ) ;
119115 }
120116 error_form . classList . add ( "hidden" ) ;
121- onTypeChange ( ) ;
117+ onTypeChange ( null ) ;
122118 type_form . addEventListener ( "change" , onTypeChange ) ;
123119 }
124120
@@ -172,8 +168,10 @@ export class CreateEditCollectionScene {
172168 return false ;
173169 }
174170
175-
176- function onTypeChange ( e ) {
171+ /**
172+ * @param {Event } _e
173+ */
174+ function onTypeChange ( _e ) {
177175 if ( type_form . value == CollectionType . WEBCAL ) {
178176 source_label . classList . remove ( "hidden" ) ;
179177 source_form . classList . remove ( "hidden" ) ;
0 commit comments