Skip to content

Commit e951d08

Browse files
authored
DEV: Update linting config and run gjs-codemod (#48)
* DEV: Update linting config and run gjs-codemod * DEV: Update linting config and run gjs-codemod
1 parent 8f39081 commit e951d08

File tree

6 files changed

+514
-1049
lines changed

6 files changed

+514
-1049
lines changed

.discourse-compatibility

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
< 3.5.0.beta5-dev: 8f390815349bd8e930e511907c3031e3d4fb14b8
12
< 3.5.0.beta1-dev: 59869be98ccaeb37fc23043c11e7d2f8f151732a
23
< 3.4.0.beta1-dev: a5bc3c041209463b2333035b87daaad1c6c56b2d
34
< 3.3.0.beta1-dev: df9044b21463d73bb61689945e37160c24def133

Gemfile.lock

Lines changed: 23 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -14,42 +14,44 @@ GEM
1414
securerandom (>= 0.3)
1515
tzinfo (~> 2.0, >= 2.0.5)
1616
uri (>= 0.13.1)
17-
ast (2.4.2)
18-
base64 (0.2.0)
19-
benchmark (0.4.0)
20-
bigdecimal (3.1.9)
17+
ast (2.4.3)
18+
base64 (0.3.0)
19+
benchmark (0.4.1)
20+
bigdecimal (3.2.1)
2121
concurrent-ruby (1.3.5)
22-
connection_pool (2.5.0)
23-
drb (2.2.1)
22+
connection_pool (2.5.3)
23+
drb (2.2.3)
2424
i18n (1.14.7)
2525
concurrent-ruby (~> 1.0)
26-
json (2.10.2)
27-
language_server-protocol (3.17.0.4)
26+
json (2.12.2)
27+
language_server-protocol (3.17.0.5)
2828
lint_roller (1.1.0)
29-
logger (1.6.6)
29+
logger (1.7.0)
3030
minitest (5.25.5)
31-
parallel (1.26.3)
32-
parser (3.3.7.1)
31+
parallel (1.27.0)
32+
parser (3.3.8.0)
3333
ast (~> 2.4.1)
3434
racc
3535
prettier_print (1.2.1)
36+
prism (1.4.0)
3637
racc (1.8.1)
37-
rack (3.1.12)
38+
rack (3.1.15)
3839
rainbow (3.1.1)
3940
regexp_parser (2.10.0)
40-
rubocop (1.74.0)
41+
rubocop (1.76.0)
4142
json (~> 2.3)
4243
language_server-protocol (~> 3.17.0.2)
4344
lint_roller (~> 1.1.0)
4445
parallel (~> 1.10)
4546
parser (>= 3.3.0.2)
4647
rainbow (>= 2.2.2, < 4.0)
4748
regexp_parser (>= 2.9.3, < 3.0)
48-
rubocop-ast (>= 1.38.0, < 2.0)
49+
rubocop-ast (>= 1.45.0, < 2.0)
4950
ruby-progressbar (~> 1.7)
5051
unicode-display_width (>= 2.4.0, < 4.0)
51-
rubocop-ast (1.39.0)
52-
parser (>= 3.3.1.0)
52+
rubocop-ast (1.45.0)
53+
parser (>= 3.3.7.2)
54+
prism (~> 1.4)
5355
rubocop-capybara (2.22.1)
5456
lint_roller (~> 1.1)
5557
rubocop (~> 1.72, >= 1.72.1)
@@ -65,13 +67,13 @@ GEM
6567
rubocop-factory_bot (2.27.1)
6668
lint_roller (~> 1.1)
6769
rubocop (~> 1.72, >= 1.72.1)
68-
rubocop-rails (2.30.3)
70+
rubocop-rails (2.32.0)
6971
activesupport (>= 4.2.0)
7072
lint_roller (~> 1.1)
7173
rack (>= 1.1)
72-
rubocop (>= 1.72.1, < 2.0)
73-
rubocop-ast (>= 1.38.0, < 2.0)
74-
rubocop-rspec (3.5.0)
74+
rubocop (>= 1.75.0, < 2.0)
75+
rubocop-ast (>= 1.44.0, < 2.0)
76+
rubocop-rspec (3.6.0)
7577
lint_roller (~> 1.1)
7678
rubocop (~> 1.72, >= 1.72.1)
7779
rubocop-rspec_rails (2.31.0)
@@ -98,4 +100,4 @@ DEPENDENCIES
98100
syntax_tree
99101

100102
BUNDLED WITH
101-
2.6.6
103+
2.6.9
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,59 @@
1+
import Component from "@ember/component";
2+
import { classNames } from "@ember-decorators/component";
3+
import icon from "discourse/helpers/d-icon";
4+
15
// Used instead of dasherize for backwards compatibility with stable
26
const getClassName = (text) => {
37
return text.toLowerCase().replace(/\s/g, "-");
48
};
59

6-
export default {
7-
setupComponent() {
10+
@classNames("above-site-header-outlet", "header-submenus")
11+
export default class HeaderSubmenus extends Component {
12+
init() {
13+
super.init(...arguments);
14+
815
try {
916
const splitMenuItems = settings.Menu_items.split("|").filter(Boolean);
1017
const splitSubmenuItems =
1118
settings.Submenu_items.split("|").filter(Boolean);
12-
1319
const menuItemsArray = [];
1420
const SubmenuItemsArray = [];
15-
1621
splitSubmenuItems.forEach((item) => {
1722
const fragments = item.split(",").map((fragment) => fragment.trim());
1823
const parent = fragments[0].toLowerCase();
1924
const text = fragments[1];
20-
2125
if (text.toLowerCase() === "divider") {
2226
const divider = {
2327
parent,
2428
divider: true,
2529
};
2630
return SubmenuItemsArray.push(divider);
2731
}
28-
2932
const className = getClassName(text);
30-
const icon =
33+
const itemIcon =
3134
fragments[2].toLowerCase() === "none"
3235
? ""
3336
: fragments[2].toLowerCase();
3437
const href = fragments[3];
3538
const target = fragments[4] === "blank" ? "_blank" : "";
3639
const title = fragments[5];
37-
3840
const submenuItem = {
3941
parent,
4042
text,
4143
className,
42-
icon,
44+
icon: itemIcon,
4345
href,
4446
target,
4547
title,
4648
};
4749
SubmenuItemsArray.push(submenuItem);
4850
});
49-
5051
splitMenuItems.forEach((item) => {
5152
const fragments = item.split(",").map((fragment) => fragment.trim());
5253
const parentFor = fragments[0].toLowerCase();
5354
const text = fragments[0];
5455
const className = getClassName(text);
55-
const icon =
56+
const itemIcon =
5657
fragments[1].toLowerCase() === "none"
5758
? ""
5859
: fragments[1].toLowerCase();
@@ -61,20 +62,17 @@ export default {
6162
const childItems = SubmenuItemsArray.filter(
6263
(link) => link.parent === parentFor
6364
);
64-
6565
const menuItem = {
6666
text,
6767
className,
68-
icon,
68+
icon: itemIcon,
6969
title,
7070
view,
7171
childItems,
7272
};
7373
menuItemsArray.push(menuItem);
7474
});
75-
7675
const showCaret = settings.Show_caret;
77-
7876
this.setProperties({
7977
menuItems: menuItemsArray,
8078
showCaret,
@@ -86,5 +84,59 @@ export default {
8684
"There's an issue in the Header Submenus Component. Check if your settings are entered correctly"
8785
);
8886
}
89-
},
90-
};
87+
}
88+
89+
<template>
90+
<div id="top-menu" class="top-menu">
91+
<div class="menu-content wrap">
92+
<div class="menu-placeholder">
93+
<div class="menu-item-container">
94+
<div class="menu-items">
95+
{{#each this.menuItems as |item|}}
96+
<a
97+
class="menu-item {{item.view}} {{item.className}}"
98+
title={{item.title}}
99+
>
100+
{{#if item.icon}}
101+
{{icon item.icon}}
102+
{{/if}}
103+
104+
{{item.text}}
105+
106+
{{#if this.showCaret}}
107+
{{icon "caret-right"}}
108+
{{/if}}
109+
110+
<div class="d-header-dropdown">
111+
<ul class="d-dropdown-menu">
112+
{{#each item.childItems as |child|}}
113+
{{#if child.divider}}
114+
<li class="divider"></li>
115+
{{else}}
116+
<li class="submenu-item {{child.className}}">
117+
<a
118+
target={{child.target}}
119+
title={{child.title}}
120+
class="submenu-link"
121+
href={{child.href}}
122+
>
123+
{{#if child.icon}}
124+
{{icon child.icon}}
125+
{{/if}}
126+
127+
{{child.text}}
128+
</a>
129+
</li>
130+
{{/if}}
131+
{{/each}}
132+
</ul>
133+
</div>
134+
</a>
135+
{{/each}}
136+
</div>
137+
</div>
138+
</div>
139+
</div>
140+
</div>
141+
</template>
142+
}

javascripts/discourse/connectors/above-site-header/header-submenus.hbs

Lines changed: 0 additions & 51 deletions
This file was deleted.

package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
{
22
"private": true,
33
"devDependencies": {
4-
"@discourse/lint-configs": "2.11.1",
5-
"ember-template-lint": "7.0.1",
6-
"eslint": "9.22.0",
4+
"@discourse/lint-configs": "2.25.0",
5+
"ember-template-lint": "7.8.1",
6+
"eslint": "9.28.0",
77
"prettier": "3.5.3",
8-
"stylelint": "16.16.0"
8+
"stylelint": "16.20.0"
99
},
1010
"engines": {
1111
"node": ">= 22",

0 commit comments

Comments
 (0)