Skip to content

Commit c19e940

Browse files
committed
fix: fix issue with widget not selecting place
The issue with the widget not selecting a place was due to the event listener on blur. The blur event was happening before the "combobox-commit" event which is the one that sets the place. A fix for this was to add event listener to the `mousedown` event instead of the `click` event in the combobox code. That was solved with a patch using `patch-package`. Also mentioned in this issue: github/combobox-nav#54 Also fixed an issue that showed "undefined" if selected place did not have a locality.
1 parent 39727ba commit c19e940

File tree

13 files changed

+584
-410
lines changed

13 files changed

+584
-410
lines changed

Diff for: package.json

+4-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,8 @@
1818
"generate": "graphql-codegen",
1919
"prestart": "yarn generate",
2020
"predev": "yarn generate",
21-
"generate-widget-version": "sh ./scripts/build-widget.sh"
21+
"generate-widget-version": "sh ./scripts/build-widget.sh",
22+
"postinstall": "patch-package"
2223
},
2324
"dependencies": {
2425
"@apollo/client": "^3.8.8",
@@ -82,6 +83,8 @@
8283
"graphql-tag": "^2.12.6",
8384
"happy-dom": "^12.10.3",
8485
"next-router-mock": "^0.9.10",
86+
"patch-package": "^8.0.0",
87+
"postinstall-postinstall": "^2.1.0",
8588
"prettier": "^3.1.1",
8689
"rimraf": "^5.0.1",
8790
"typescript": "5.3.3",

Diff for: patches/@github+combobox-nav+2.3.0.patch

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
diff --git a/node_modules/@github/combobox-nav/dist/index.js b/node_modules/@github/combobox-nav/dist/index.js
2+
index d86de71..3956688 100644
3+
--- a/node_modules/@github/combobox-nav/dist/index.js
4+
+++ b/node_modules/@github/combobox-nav/dist/index.js
5+
@@ -34,7 +34,7 @@ export default class Combobox {
6+
this.input.addEventListener('compositionend', this.compositionEventHandler);
7+
this.input.addEventListener('input', this.inputHandler);
8+
this.input.addEventListener('keydown', this.keyboardEventHandler);
9+
- this.list.addEventListener('click', commitWithElement);
10+
+ this.list.addEventListener('mousedown', commitWithElement);
11+
this.indicateDefaultOption();
12+
}
13+
stop() {
14+
@@ -44,7 +44,7 @@ export default class Combobox {
15+
this.input.removeEventListener('compositionend', this.compositionEventHandler);
16+
this.input.removeEventListener('input', this.inputHandler);
17+
this.input.removeEventListener('keydown', this.keyboardEventHandler);
18+
- this.list.removeEventListener('click', commitWithElement);
19+
+ this.list.removeEventListener('mousedown', commitWithElement);
20+
}
21+
indicateDefaultOption() {
22+
var _a;

Diff for: public/widget/GYJwhgtkA/2.6.0/planner-web.mjs

+115-118
Large diffs are not rendered by default.

Diff for: public/widget/GYJwhgtkA/2.6.0/planner-web.umd.js

+8-8
Large diffs are not rendered by default.

Diff for: public/widget/HYMw1kA/2.6.0/planner-web.mjs

+115-118
Large diffs are not rendered by default.

Diff for: public/widget/HYMw1kA/2.6.0/planner-web.umd.js

+8-8
Large diffs are not rendered by default.

Diff for: public/widget/IYFwRkA/2.6.0/planner-web.mjs

+115-118
Large diffs are not rendered by default.

Diff for: public/widget/IYFwRkA/2.6.0/planner-web.umd.js

+8-8
Large diffs are not rendered by default.

Diff for: src/page-modules/widget/available-widgets/GYJwhgtkA/manifest.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"latest": {
33
"version": "2.6.0",
4-
"created": "2023-12-21T11:45:28.198Z",
4+
"created": "2023-12-13T10:54:28.898Z",
55
"urls": {
66
"umd": "/widget/GYJwhgtkA/2.6.0/planner-web.umd.js",
77
"esm": "/widget/GYJwhgtkA/2.6.0/planner-web.mjs",
@@ -11,7 +11,7 @@
1111
"all": [
1212
{
1313
"version": "2.6.0",
14-
"created": "2023-12-21T11:45:28.198Z",
14+
"created": "2023-12-13T10:54:28.898Z",
1515
"urls": {
1616
"umd": "/widget/GYJwhgtkA/2.6.0/planner-web.umd.js",
1717
"esm": "/widget/GYJwhgtkA/2.6.0/planner-web.mjs",
@@ -20,7 +20,7 @@
2020
},
2121
{
2222
"version": "2.2.2",
23-
"created": "2023-12-21T11:45:28.198Z",
23+
"created": "2023-12-13T10:54:28.898Z",
2424
"urls": {
2525
"umd": "/widget/GYJwhgtkA/2.2.2/planner-web.umd.js",
2626
"esm": "/widget/GYJwhgtkA/2.2.2/planner-web.mjs",
@@ -29,7 +29,7 @@
2929
},
3030
{
3131
"version": "2.1.0",
32-
"created": "2023-12-21T11:45:28.198Z",
32+
"created": "2023-12-13T10:54:28.898Z",
3333
"urls": {
3434
"umd": "/widget/GYJwhgtkA/2.1.0/planner-web.umd.js",
3535
"esm": "/widget/GYJwhgtkA/2.1.0/planner-web.mjs",
@@ -38,7 +38,7 @@
3838
},
3939
{
4040
"version": "2.0.0",
41-
"created": "2023-12-21T11:45:28.198Z",
41+
"created": "2023-12-13T10:54:28.898Z",
4242
"urls": {
4343
"umd": "/widget/GYJwhgtkA/2.0.0/planner-web.umd.js",
4444
"esm": "/widget/GYJwhgtkA/2.0.0/planner-web.mjs",
@@ -47,7 +47,7 @@
4747
},
4848
{
4949
"version": "1.0.0",
50-
"created": "2023-12-21T11:45:28.198Z",
50+
"created": "2023-12-13T10:54:28.898Z",
5151
"urls": {
5252
"umd": "/widget/GYJwhgtkA/1.0.0/planner-web.umd.js",
5353
"esm": "/widget/GYJwhgtkA/1.0.0/planner-web.mjs",
@@ -56,7 +56,7 @@
5656
},
5757
{
5858
"version": "0.2.0",
59-
"created": "2023-12-21T11:45:28.198Z",
59+
"created": "2023-12-13T10:54:28.898Z",
6060
"urls": {
6161
"umd": "/widget/GYJwhgtkA/0.2.0/planner-web.umd.js",
6262
"esm": "/widget/GYJwhgtkA/0.2.0/planner-web.mjs",

Diff for: src/page-modules/widget/available-widgets/HYMw1kA/manifest.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"latest": {
33
"version": "2.6.0",
4-
"created": "2023-12-21T11:45:28.200Z",
4+
"created": "2023-12-13T10:54:28.899Z",
55
"urls": {
66
"umd": "/widget/HYMw1kA/2.6.0/planner-web.umd.js",
77
"esm": "/widget/HYMw1kA/2.6.0/planner-web.mjs",
@@ -11,7 +11,7 @@
1111
"all": [
1212
{
1313
"version": "2.6.0",
14-
"created": "2023-12-21T11:45:28.200Z",
14+
"created": "2023-12-13T10:54:28.899Z",
1515
"urls": {
1616
"umd": "/widget/HYMw1kA/2.6.0/planner-web.umd.js",
1717
"esm": "/widget/HYMw1kA/2.6.0/planner-web.mjs",
@@ -20,7 +20,7 @@
2020
},
2121
{
2222
"version": "2.2.2",
23-
"created": "2023-12-21T11:45:28.200Z",
23+
"created": "2023-12-13T10:54:28.899Z",
2424
"urls": {
2525
"umd": "/widget/HYMw1kA/2.2.2/planner-web.umd.js",
2626
"esm": "/widget/HYMw1kA/2.2.2/planner-web.mjs",
@@ -29,7 +29,7 @@
2929
},
3030
{
3131
"version": "2.1.0",
32-
"created": "2023-12-21T11:45:28.200Z",
32+
"created": "2023-12-13T10:54:28.899Z",
3333
"urls": {
3434
"umd": "/widget/HYMw1kA/2.1.0/planner-web.umd.js",
3535
"esm": "/widget/HYMw1kA/2.1.0/planner-web.mjs",
@@ -38,7 +38,7 @@
3838
},
3939
{
4040
"version": "2.0.0",
41-
"created": "2023-12-21T11:45:28.200Z",
41+
"created": "2023-12-13T10:54:28.899Z",
4242
"urls": {
4343
"umd": "/widget/HYMw1kA/2.0.0/planner-web.umd.js",
4444
"esm": "/widget/HYMw1kA/2.0.0/planner-web.mjs",
@@ -47,7 +47,7 @@
4747
},
4848
{
4949
"version": "1.0.0",
50-
"created": "2023-12-21T11:45:28.200Z",
50+
"created": "2023-12-13T10:54:28.899Z",
5151
"urls": {
5252
"umd": "/widget/HYMw1kA/1.0.0/planner-web.umd.js",
5353
"esm": "/widget/HYMw1kA/1.0.0/planner-web.mjs",
@@ -56,7 +56,7 @@
5656
},
5757
{
5858
"version": "0.2.0",
59-
"created": "2023-12-21T11:45:28.200Z",
59+
"created": "2023-12-13T10:54:28.899Z",
6060
"urls": {
6161
"umd": "/widget/HYMw1kA/0.2.0/planner-web.umd.js",
6262
"esm": "/widget/HYMw1kA/0.2.0/planner-web.mjs",

Diff for: src/page-modules/widget/available-widgets/IYFwRkA/manifest.json

+7-7
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"latest": {
33
"version": "2.6.0",
4-
"created": "2023-12-21T11:45:28.202Z",
4+
"created": "2023-12-13T10:54:28.899Z",
55
"urls": {
66
"umd": "/widget/IYFwRkA/2.6.0/planner-web.umd.js",
77
"esm": "/widget/IYFwRkA/2.6.0/planner-web.mjs",
@@ -11,7 +11,7 @@
1111
"all": [
1212
{
1313
"version": "2.6.0",
14-
"created": "2023-12-21T11:45:28.202Z",
14+
"created": "2023-12-13T10:54:28.899Z",
1515
"urls": {
1616
"umd": "/widget/IYFwRkA/2.6.0/planner-web.umd.js",
1717
"esm": "/widget/IYFwRkA/2.6.0/planner-web.mjs",
@@ -20,7 +20,7 @@
2020
},
2121
{
2222
"version": "2.2.2",
23-
"created": "2023-12-21T11:45:28.202Z",
23+
"created": "2023-12-13T10:54:28.899Z",
2424
"urls": {
2525
"umd": "/widget/IYFwRkA/2.2.2/planner-web.umd.js",
2626
"esm": "/widget/IYFwRkA/2.2.2/planner-web.mjs",
@@ -29,7 +29,7 @@
2929
},
3030
{
3131
"version": "2.1.0",
32-
"created": "2023-12-21T11:45:28.202Z",
32+
"created": "2023-12-13T10:54:28.899Z",
3333
"urls": {
3434
"umd": "/widget/IYFwRkA/2.1.0/planner-web.umd.js",
3535
"esm": "/widget/IYFwRkA/2.1.0/planner-web.mjs",
@@ -38,7 +38,7 @@
3838
},
3939
{
4040
"version": "2.0.0",
41-
"created": "2023-12-21T11:45:28.202Z",
41+
"created": "2023-12-13T10:54:28.899Z",
4242
"urls": {
4343
"umd": "/widget/IYFwRkA/2.0.0/planner-web.umd.js",
4444
"esm": "/widget/IYFwRkA/2.0.0/planner-web.mjs",
@@ -47,7 +47,7 @@
4747
},
4848
{
4949
"version": "1.0.0",
50-
"created": "2023-12-21T11:45:28.202Z",
50+
"created": "2023-12-13T10:54:28.899Z",
5151
"urls": {
5252
"umd": "/widget/IYFwRkA/1.0.0/planner-web.umd.js",
5353
"esm": "/widget/IYFwRkA/1.0.0/planner-web.mjs",
@@ -56,7 +56,7 @@
5656
},
5757
{
5858
"version": "0.2.0",
59-
"created": "2023-12-21T11:45:28.202Z",
59+
"created": "2023-12-13T10:54:28.899Z",
6060
"urls": {
6161
"umd": "/widget/IYFwRkA/0.2.0/planner-web.umd.js",
6262
"esm": "/widget/IYFwRkA/0.2.0/planner-web.mjs",

Diff for: src/widget/widget.ts

+10-6
Original file line numberDiff line numberDiff line change
@@ -387,11 +387,7 @@ function createOutput({ URL_BASE }: SettingConstants, texts: Texts) {
387387
fetcher(e.target as HTMLInputElement),
388388
);
389389
input.addEventListener('focus', () => toggleList(true));
390-
input.addEventListener(
391-
'blur',
392-
// Blur after properly selecting
393-
debounce(() => toggleList(false), 100),
394-
);
390+
input.addEventListener('blur', () => toggleList(false));
395391
document.addEventListener('click', (e) => {
396392
if (!hasParent(e.target as HTMLElement, this)) {
397393
toggleList(false);
@@ -403,7 +399,15 @@ function createOutput({ URL_BASE }: SettingConstants, texts: Texts) {
403399
'data-feature-id',
404400
);
405401
const item = itemId ? self.getItem(itemId) : undefined;
406-
input.value = item ? `${item.name}, ${item.locality}` : input.value;
402+
let newValue = input.value;
403+
if (item) {
404+
newValue = `${item.name}`;
405+
406+
if (item.locality) {
407+
newValue += `, ${item.locality}`;
408+
}
409+
}
410+
input.value = newValue;
407411
document.dispatchEvent(
408412
new CustomEvent('search-selected', {
409413
bubbles: true,

0 commit comments

Comments
 (0)