Convert onSwap widgets to custom elements (issue #18)
Replaces the four onSwap-based widgets with TypeScript custom elements following the pattern from PR #16. Each widget gets a class extending HTMLElement with connectedCallback/disconnectedCallback, typed props via register_element + gen_element_types codegen, and lives in ts/elements/. - range-slider: RangeSliderElement; Python uses _RangeSlider builder - date-range-picker: DateRangePickerElement; Python uses _DateRangePicker builder - search-select: SearchSelectElement; Python uses _SearchSelect builder; data-* attrs become plain attrs (data-name -> name, data-search-url -> search-url, etc.) - filter-bar: FilterBarElement; props carry preset URLs; onclick/onsubmit attrs replaced with data-filter-bar-* sentinel attrs; all window.* globals removed Deletes ts/range_slider.ts, ts/search_select.ts, ts/date_range_picker.ts, ts/filter_bar.ts. Updates all tests and e2e pages to use the new element selectors and script paths (dist/elements/<tag>.js). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
+2
-2
@@ -180,7 +180,7 @@ def add_game(request: HttpRequest) -> HttpResponse:
|
||||
),
|
||||
),
|
||||
title="Add New Game",
|
||||
scripts=ModuleScript("dist/search_select.js")
|
||||
scripts=ModuleScript("dist/elements/search-select.js")
|
||||
+ ModuleScript("dist/add_game.js"),
|
||||
)
|
||||
|
||||
@@ -326,7 +326,7 @@ def edit_game(request: HttpRequest, game_id: int) -> HttpResponse:
|
||||
request,
|
||||
AddForm(form, request=request),
|
||||
title="Edit Game",
|
||||
scripts=ModuleScript("dist/search_select.js"),
|
||||
scripts=ModuleScript("dist/elements/search-select.js"),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -216,7 +216,7 @@ def add_playevent(request: HttpRequest, game_id: int = 0) -> HttpResponse:
|
||||
request,
|
||||
AddForm(form, request=request),
|
||||
title="Add new playthrough",
|
||||
scripts=ModuleScript("dist/search_select.js"),
|
||||
scripts=ModuleScript("dist/elements/search-select.js"),
|
||||
)
|
||||
|
||||
|
||||
@@ -233,7 +233,7 @@ def edit_playevent(request: HttpRequest, playevent_id: int) -> HttpResponse:
|
||||
request,
|
||||
AddForm(form, request=request),
|
||||
title="Edit Play Event",
|
||||
scripts=ModuleScript("dist/search_select.js"),
|
||||
scripts=ModuleScript("dist/elements/search-select.js"),
|
||||
)
|
||||
|
||||
|
||||
|
||||
@@ -301,7 +301,8 @@ def add_purchase(request: HttpRequest, game_id: int = 0) -> HttpResponse:
|
||||
),
|
||||
title="Add New Purchase",
|
||||
scripts=mark_safe(
|
||||
ModuleScript("dist/search_select.js") + ModuleScript("dist/add_purchase.js")
|
||||
ModuleScript("dist/elements/search-select.js")
|
||||
+ ModuleScript("dist/add_purchase.js")
|
||||
),
|
||||
)
|
||||
|
||||
@@ -319,7 +320,8 @@ def edit_purchase(request: HttpRequest, purchase_id: int) -> HttpResponse:
|
||||
AddForm(form, request=request, additional_row=_purchase_additional_row()),
|
||||
title="Edit Purchase",
|
||||
scripts=mark_safe(
|
||||
ModuleScript("dist/search_select.js") + ModuleScript("dist/add_purchase.js")
|
||||
ModuleScript("dist/elements/search-select.js")
|
||||
+ ModuleScript("dist/add_purchase.js")
|
||||
),
|
||||
)
|
||||
|
||||
|
||||
@@ -249,7 +249,7 @@ def add_session(request: HttpRequest, game_id: int = 0) -> HttpResponse:
|
||||
request,
|
||||
AddForm(form, request=request, fields=_session_fields(form), submit_class=""),
|
||||
title="Add New Session",
|
||||
scripts=mark_safe(ModuleScript("dist/search_select.js")),
|
||||
scripts=mark_safe(ModuleScript("dist/elements/search-select.js")),
|
||||
)
|
||||
|
||||
|
||||
@@ -264,7 +264,7 @@ def edit_session(request: HttpRequest, session_id: int) -> HttpResponse:
|
||||
request,
|
||||
AddForm(form, request=request, fields=_session_fields(form), submit_class=""),
|
||||
title="Edit Session",
|
||||
scripts=mark_safe(ModuleScript("dist/search_select.js")),
|
||||
scripts=mark_safe(ModuleScript("dist/elements/search-select.js")),
|
||||
)
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user