Skip to content

Commit 863ee54

Browse files
committed
Make smart facets scrollable & fix deselection bug
1 parent 92082bc commit 863ee54

File tree

4 files changed

+26
-39
lines changed

4 files changed

+26
-39
lines changed

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"description": "The Internet Archive Collection Browser.",
44
"license": "AGPL-3.0-only",
55
"author": "Internet Archive",
6-
"version": "2.18.2",
6+
"version": "2.18.3-alpha-webdev7768.7",
77
"main": "dist/index.js",
88
"module": "dist/index.js",
99
"scripts": {
@@ -28,7 +28,7 @@
2828
"@internetarchive/field-parsers": "^1.0.0",
2929
"@internetarchive/histogram-date-range": "^1.4.0",
3030
"@internetarchive/ia-activity-indicator": "^0.0.6",
31-
"@internetarchive/ia-dropdown": "^1.3.10",
31+
"@internetarchive/ia-dropdown": "1.3.11-alpha-webdev-7768.0",
3232
"@internetarchive/iaux-item-metadata": "^1.0.5",
3333
"@internetarchive/infinite-scroller": "^1.0.1",
3434
"@internetarchive/modal-manager": "^2.0.1",

src/collection-facets/smart-facets/smart-facet-bar.ts

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ export class SmartFacetBar extends LitElement {
161161
.labelPrefix=${fieldPrefixes[facets[0].facets[0].facetType]}
162162
.activeFacetRef=${facets[0].facets[0]}
163163
@facetClick=${this.dropdownOptionClicked}
164-
@dropdownClick=${this.onDropdownClick}
164+
@dropdownClick=${this.dropdownClicked}
165165
></smart-facet-dropdown>
166166
`;
167167
}
@@ -294,7 +294,13 @@ export class SmartFacetBar extends LitElement {
294294
}
295295

296296
this.updateSelectedFacets(
297-
details.map(facet => ({ ...facet, state: newState })),
297+
details.map(facet => ({
298+
...facet,
299+
bucket: {
300+
...facet.bucket,
301+
state: newState,
302+
},
303+
})),
298304
);
299305
}
300306

@@ -327,7 +333,7 @@ export class SmartFacetBar extends LitElement {
327333
}
328334

329335
/**
330-
* Handler for when an option in a smart facet dropdown is selected
336+
* Handler for when an option in a smart facet dropdown menu is selected
331337
*/
332338
private dropdownOptionClicked(e: CustomEvent<SmartFacetEvent>): void {
333339
const existingFacet = this.smartFacets.find(
@@ -348,7 +354,10 @@ export class SmartFacetBar extends LitElement {
348354
this.updateSelectedFacets(e.detail.details);
349355
}
350356

351-
private onDropdownClick(e: CustomEvent<SmartFacetDropdown>): void {
357+
/**
358+
* Handler for when any dropdown is clicked (whether button, caret, or menu item)
359+
*/
360+
private dropdownClicked(e: CustomEvent<SmartFacetDropdown>): void {
352361
log('smart bar: onDropdownClick', e.detail);
353362
this.shadowRoot
354363
?.querySelectorAll('smart-facet-dropdown')
@@ -373,9 +382,11 @@ export class SmartFacetBar extends LitElement {
373382
#smart-facets-container {
374383
display: flex;
375384
align-items: center;
376-
flex-wrap: wrap;
377385
gap: 5px 10px;
378386
padding: 10px 0;
387+
white-space: nowrap;
388+
overflow: scroll hidden;
389+
scrollbar-width: none;
379390
}
380391
381392
#filters-toggle {

src/collection-facets/smart-facets/smart-facet-dropdown.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ export class SmartFacetDropdown extends LitElement {
3535
closeOnEscape
3636
closeOnBackdropClick
3737
includeSelectedOption
38+
usePopover
3839
.options=${this.dropdownOptions}
3940
.selectedOption=${this.activeDropdownOption}
4041
.openViaButton=${false}

yarn.lock

Lines changed: 7 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -334,10 +334,10 @@
334334
dependencies:
335335
lit "^2.8.0"
336336

337-
"@internetarchive/ia-dropdown@^1.3.10":
338-
version "1.3.10"
339-
resolved "https://registry.npmjs.org/@internetarchive/ia-dropdown/-/ia-dropdown-1.3.10.tgz"
340-
integrity sha512-+xGgyfE0O4cV+w4rk61yA5av5KeSqCmojukp6ePbrluIYBIH2UCtfDcfCEQFVsnNSs8AesJOkUb0q3jaW0M4cQ==
337+
"@internetarchive/[email protected].11-alpha-webdev-7768.0":
338+
version "1.3.11-alpha-webdev-7768.0"
339+
resolved "https://registry.yarnpkg.com/@internetarchive/ia-dropdown/-/ia-dropdown-1.3.11-alpha-webdev-7768.0.tgz#91fa0d7f3f86bbbf70439fb65466ecfa65e57e0d"
340+
integrity sha512-G+v5GyZob+AfHobHe/2VJWakgfI6ewXZLJG+2BNrC8UxC5e8/MzNjd2fLuQkPfClMEc48uWnA1gcEMmsKGmWZQ==
341341
dependencies:
342342
lit "^2.8.0"
343343

@@ -5080,16 +5080,7 @@ streamx@^2.15.0, streamx@^2.21.0:
50805080
optionalDependencies:
50815081
bare-events "^2.2.0"
50825082

5083-
"string-width-cjs@npm:string-width@^4.2.0":
5084-
version "4.2.3"
5085-
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
5086-
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
5087-
dependencies:
5088-
emoji-regex "^8.0.0"
5089-
is-fullwidth-code-point "^3.0.0"
5090-
strip-ansi "^6.0.1"
5091-
5092-
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
5083+
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
50935084
version "4.2.3"
50945085
resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
50955086
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
@@ -5155,14 +5146,7 @@ stringify-object@^3.2.1:
51555146
is-obj "^1.0.1"
51565147
is-regexp "^1.0.0"
51575148

5158-
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
5159-
version "6.0.1"
5160-
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
5161-
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
5162-
dependencies:
5163-
ansi-regex "^5.0.1"
5164-
5165-
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
5149+
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
51665150
version "6.0.1"
51675151
resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
51685152
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -5611,7 +5595,7 @@ wordwrapjs@^5.1.0:
56115595
resolved "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-5.1.0.tgz"
56125596
integrity sha512-JNjcULU2e4KJwUNv6CHgI46UvDGitb6dGryHajXTDiLgg1/RiGoPSDw4kZfYnwGtEXf2ZMeIewDQgFGzkCB2Sg==
56135597

5614-
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
5598+
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
56155599
version "7.0.0"
56165600
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
56175601
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
@@ -5629,15 +5613,6 @@ wrap-ansi@^6.2.0:
56295613
string-width "^4.1.0"
56305614
strip-ansi "^6.0.0"
56315615

5632-
wrap-ansi@^7.0.0:
5633-
version "7.0.0"
5634-
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz"
5635-
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
5636-
dependencies:
5637-
ansi-styles "^4.0.0"
5638-
string-width "^4.1.0"
5639-
strip-ansi "^6.0.0"
5640-
56415616
wrap-ansi@^8.1.0:
56425617
version "8.1.0"
56435618
resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz"

0 commit comments

Comments
 (0)