diff --git a/app/assets/javascripts/discourse/app/components/sidebar.hbs b/app/assets/javascripts/discourse/app/components/sidebar.hbs
index 6de60c3aceb..b1b130f45d1 100644
--- a/app/assets/javascripts/discourse/app/components/sidebar.hbs
+++ b/app/assets/javascripts/discourse/app/components/sidebar.hbs
@@ -2,7 +2,8 @@
{{#if this.currentUser}}
{{else}}
-
+
{{/if}}
+
diff --git a/app/assets/javascripts/discourse/app/components/sidebar/anonymous/community-section.js b/app/assets/javascripts/discourse/app/components/sidebar/anonymous/community-section.js
new file mode 100644
index 00000000000..faef94d5dc6
--- /dev/null
+++ b/app/assets/javascripts/discourse/app/components/sidebar/anonymous/community-section.js
@@ -0,0 +1,24 @@
+import SidebarCommonCommunitySection from "discourse/components/sidebar/common/community-section";
+import EverythingSectionLink from "discourse/lib/sidebar/common/community-section/everything-section-link";
+import AboutSectionLink from "discourse/lib/sidebar/common/community-section/about-section-link";
+import FAQSectionLink from "discourse/lib/sidebar/common/community-section/faq-section-link";
+import GroupsSectionLink from "discourse/lib/sidebar/common/community-section/groups-section-link";
+import UsersSectionLink from "discourse/lib/sidebar/common/community-section/users-section-link";
+import BadgesSectionLink from "discourse/lib/sidebar/common/community-section/badges-section-link";
+
+export default class SidebarAnonymousCommunitySection extends SidebarCommonCommunitySection {
+ constructor() {
+ super(...arguments);
+
+ this.defaultMoreSectionLinks = [GroupsSectionLink, BadgesSectionLink];
+
+ this.defaultMoreSecondarySectionLinks = [];
+
+ this.defaultMainSectionLinks = [
+ EverythingSectionLink,
+ UsersSectionLink,
+ AboutSectionLink,
+ FAQSectionLink,
+ ];
+ }
+}
diff --git a/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.hbs b/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.hbs
index cc088f932db..68ea9dde5b3 100644
--- a/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.hbs
+++ b/app/assets/javascripts/discourse/app/components/sidebar/anonymous/sections.hbs
@@ -1,6 +1,8 @@
diff --git a/app/assets/javascripts/discourse/app/components/sidebar/user/community-section.hbs b/app/assets/javascripts/discourse/app/components/sidebar/common/community-section.hbs
similarity index 83%
rename from app/assets/javascripts/discourse/app/components/sidebar/user/community-section.hbs
rename to app/assets/javascripts/discourse/app/components/sidebar/common/community-section.hbs
index f709e645313..f66246864ce 100644
--- a/app/assets/javascripts/discourse/app/components/sidebar/user/community-section.hbs
+++ b/app/assets/javascripts/discourse/app/components/sidebar/common/community-section.hbs
@@ -1,8 +1,8 @@
{{#each this.sectionLinks as |sectionLink|}}
diff --git a/app/assets/javascripts/discourse/app/components/sidebar/common/community-section.js b/app/assets/javascripts/discourse/app/components/sidebar/common/community-section.js
new file mode 100644
index 00000000000..333a29f5d46
--- /dev/null
+++ b/app/assets/javascripts/discourse/app/components/sidebar/common/community-section.js
@@ -0,0 +1,66 @@
+import Component from "@glimmer/component";
+import { inject as service } from "@ember/service";
+
+import {
+ customSectionLinks,
+ secondaryCustomSectionLinks,
+} from "discourse/lib/sidebar/custom-community-section-links";
+
+export default class SidebarCommunitySection extends Component {
+ @service router;
+ @service topicTrackingState;
+ @service currentUser;
+ @service appEvents;
+ @service siteSettings;
+
+ // Override in child
+ defaultMainSectionLinks = [];
+ defaultAdminMainSectionLinks = [];
+ defaultMoreSectionLinks = [];
+ defaultMoreSecondarySectionLinks = [];
+ headerActionsIcon;
+ headerActions;
+
+ get moreSectionLinks() {
+ return [...this.defaultMoreSectionLinks, ...customSectionLinks].map(
+ (sectionLinkClass) => {
+ return this.#initializeSectionLink(sectionLinkClass);
+ }
+ );
+ }
+
+ get moreSecondarySectionLinks() {
+ return [
+ ...this.defaultMoreSecondarySectionLinks,
+ ...secondaryCustomSectionLinks,
+ ].map((sectionLinkClass) => {
+ return this.#initializeSectionLink(sectionLinkClass);
+ });
+ }
+
+ get mainSectionLinks() {
+ return this.currentUser?.staff
+ ? [...this.defaultMainSectionLinks, ...this.defaultAdminMainSectionLinks]
+ : [...this.defaultMainSectionLinks];
+ }
+
+ get sectionLinks() {
+ return this.mainSectionLinks.map((sectionLinkClass) => {
+ return this.#initializeSectionLink(sectionLinkClass);
+ });
+ }
+
+ willDestroy() {
+ this.sectionLinks.forEach((sectionLink) => sectionLink.teardown());
+ }
+
+ #initializeSectionLink(sectionLinkClass) {
+ return new sectionLinkClass({
+ topicTrackingState: this.topicTrackingState,
+ currentUser: this.currentUser,
+ appEvents: this.appEvents,
+ router: this.router,
+ siteSettings: this.siteSettings,
+ });
+ }
+}
diff --git a/app/assets/javascripts/discourse/app/components/sidebar/user/community-section.js b/app/assets/javascripts/discourse/app/components/sidebar/user/community-section.js
index c219723f585..2c46db8a403 100644
--- a/app/assets/javascripts/discourse/app/components/sidebar/user/community-section.js
+++ b/app/assets/javascripts/discourse/app/components/sidebar/user/community-section.js
@@ -1,70 +1,50 @@
-import Component from "@glimmer/component";
+import I18n from "I18n";
+
import Composer from "discourse/models/composer";
import { getOwner } from "discourse-common/lib/get-owner";
import PermissionType from "discourse/models/permission-type";
-import {
- customSectionLinks,
- secondaryCustomSectionLinks,
-} from "discourse/lib/sidebar/user/custom-community-section-links";
-import EverythingSectionLink from "discourse/lib/sidebar/user/community-section/everything-section-link";
+import EverythingSectionLink from "discourse/lib/sidebar/common/community-section/everything-section-link";
import TrackedSectionLink from "discourse/lib/sidebar/user/community-section/tracked-section-link";
import MyPostsSectionLink from "discourse/lib/sidebar/user/community-section/my-posts-section-link";
-import GroupsSectionLink from "discourse/lib/sidebar/user/community-section/groups-section-link";
-import UsersSectionLink from "discourse/lib/sidebar/user/community-section/users-section-link";
-import AboutSectionLink from "discourse/lib/sidebar/user/community-section/about-section-link";
-import FAQSectionLink from "discourse/lib/sidebar/user/community-section/faq-section-link";
+import GroupsSectionLink from "discourse/lib/sidebar/common/community-section/groups-section-link";
+import UsersSectionLink from "discourse/lib/sidebar/common/community-section/users-section-link";
+import AboutSectionLink from "discourse/lib/sidebar/common/community-section/about-section-link";
+import FAQSectionLink from "discourse/lib/sidebar/common/community-section/faq-section-link";
import AdminSectionLink from "discourse/lib/sidebar/user/community-section/admin-section-link";
-import BadgesSectionLink from "discourse/lib/sidebar/user/community-section/badges-section-link";
+import BadgesSectionLink from "discourse/lib/sidebar/common/community-section/badges-section-link";
+import SidebarCommonCommunitySection from "discourse/components/sidebar/common/community-section";
-import { inject as service } from "@ember/service";
import { action } from "@ember/object";
import { next } from "@ember/runloop";
-const MAIN_SECTION_LINKS = [
- EverythingSectionLink,
- TrackedSectionLink,
- MyPostsSectionLink,
-];
+export default class SidebarUserCommunitySection extends SidebarCommonCommunitySection {
+ constructor() {
+ super(...arguments);
-const ADMIN_MAIN_SECTION_LINKS = [AdminSectionLink];
+ this.defaultMoreSectionLinks = [
+ GroupsSectionLink,
+ UsersSectionLink,
+ BadgesSectionLink,
+ ];
-const MORE_SECTION_LINKS = [
- GroupsSectionLink,
- UsersSectionLink,
- BadgesSectionLink,
-];
-const MORE_SECONDARY_SECTION_LINKS = [AboutSectionLink, FAQSectionLink];
+ this.defaultMoreSecondarySectionLinks = [AboutSectionLink, FAQSectionLink];
-export default class SidebarUserCommunitySection extends Component {
- @service router;
- @service topicTrackingState;
- @service currentUser;
- @service appEvents;
- @service siteSettings;
+ this.defaultMainSectionLinks = [
+ EverythingSectionLink,
+ TrackedSectionLink,
+ MyPostsSectionLink,
+ ];
- moreSectionLinks = [...MORE_SECTION_LINKS, ...customSectionLinks].map(
- (sectionLinkClass) => {
- return this.#initializeSectionLink(sectionLinkClass);
- }
- );
+ this.defaultAdminMainSectionLinks = [AdminSectionLink];
- moreSecondarySectionLinks = [
- ...MORE_SECONDARY_SECTION_LINKS,
- ...secondaryCustomSectionLinks,
- ].map((sectionLinkClass) => {
- return this.#initializeSectionLink(sectionLinkClass);
- });
+ this.headerActionsIcon = "plus";
- #mainSectionLinks = this.currentUser.staff
- ? [...MAIN_SECTION_LINKS, ...ADMIN_MAIN_SECTION_LINKS]
- : [...MAIN_SECTION_LINKS];
-
- sectionLinks = this.#mainSectionLinks.map((sectionLinkClass) => {
- return this.#initializeSectionLink(sectionLinkClass);
- });
-
- willDestroy() {
- this.sectionLinks.forEach((sectionLink) => sectionLink.teardown());
+ this.headerActions = [
+ {
+ action: this.composeTopic,
+ title: I18n.t("sidebar.sections.community.header_action_title"),
+ },
+ ];
}
@action
@@ -85,14 +65,4 @@ export default class SidebarUserCommunitySection extends Component {
getOwner(this).lookup("controller:composer").open(composerArgs);
});
}
-
- #initializeSectionLink(sectionLinkClass) {
- return new sectionLinkClass({
- topicTrackingState: this.topicTrackingState,
- currentUser: this.currentUser,
- appEvents: this.appEvents,
- router: this.router,
- siteSettings: this.siteSettings,
- });
- }
}
diff --git a/app/assets/javascripts/discourse/app/components/sidebar/user/sections.js b/app/assets/javascripts/discourse/app/components/sidebar/user/sections.js
index dfbda910117..36428e17a8b 100644
--- a/app/assets/javascripts/discourse/app/components/sidebar/user/sections.js
+++ b/app/assets/javascripts/discourse/app/components/sidebar/user/sections.js
@@ -1,5 +1,5 @@
import Component from "@glimmer/component";
-import { customSections as sidebarCustomSections } from "discourse/lib/sidebar/user/custom-sections";
+import { customSections as sidebarCustomSections } from "discourse/lib/sidebar/custom-sections";
import { getOwner, setOwner } from "@ember/application";
import { inject as service } from "@ember/service";
diff --git a/app/assets/javascripts/discourse/app/lib/plugin-api.js b/app/assets/javascripts/discourse/app/lib/plugin-api.js
index 6d7e232645f..bc36114503f 100644
--- a/app/assets/javascripts/discourse/app/lib/plugin-api.js
+++ b/app/assets/javascripts/discourse/app/lib/plugin-api.js
@@ -95,8 +95,8 @@ import {
import { CUSTOM_USER_SEARCH_OPTIONS } from "select-kit/components/user-chooser";
import { downloadCalendar } from "discourse/lib/download-calendar";
import { consolePrefix } from "discourse/lib/source-identifier";
-import { addSectionLink as addCustomCommunitySectionLink } from "discourse/lib/sidebar/user/custom-community-section-links";
-import { addSidebarSection } from "discourse/lib/sidebar/user/custom-sections";
+import { addSectionLink as addCustomCommunitySectionLink } from "discourse/lib/sidebar/custom-community-section-links";
+import { addSidebarSection } from "discourse/lib/sidebar/custom-sections";
import DiscourseURL from "discourse/lib/url";
import { registerNotificationTypeRenderer } from "discourse/lib/notification-types-manager";
import { registerUserMenuTab } from "discourse/lib/user-menu/tab";
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/base-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/base-community-section-link.js
similarity index 94%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/base-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/base-community-section-link.js
index 7bb26101ddb..65af90de12e 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/base-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/base-community-section-link.js
@@ -1,7 +1,7 @@
/**
- * Base class representing a sidebar topics section link interface.
+ * Base class representing a sidebar communtiy section link interface.
*/
-export default class BaseSectionLink {
+export default class BaseCommunitySectionLink {
constructor({
topicTrackingState,
currentUser,
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/base-custom-sidebar-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/base-custom-sidebar-section-link.js
similarity index 100%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/base-custom-sidebar-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/base-custom-sidebar-section-link.js
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/base-custom-sidebar-section.js b/app/assets/javascripts/discourse/app/lib/sidebar/base-custom-sidebar-section.js
similarity index 100%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/base-custom-sidebar-section.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/base-custom-sidebar-section.js
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/about-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/about-section-link.js
similarity index 75%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/about-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/about-section-link.js
index 8952425c951..0e7ff66016f 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/about-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/about-section-link.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
export default class AboutSectionLink extends BaseSectionLink {
get name() {
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/badges-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/badges-section-link.js
similarity index 75%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/badges-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/badges-section-link.js
index 2db8d3575b0..7ec4d209ad8 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/badges-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/badges-section-link.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
export default class BadgesSectionLink extends BaseSectionLink {
get name() {
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/everything-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/everything-section-link.js
similarity index 80%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/everything-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/everything-section-link.js
index 1f1793497b0..8071140d03a 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/everything-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/everything-section-link.js
@@ -2,7 +2,7 @@ import I18n from "I18n";
import { tracked } from "@glimmer/tracking";
import { bind } from "discourse-common/utils/decorators";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
export default class EverythingSectionLink extends BaseSectionLink {
@tracked totalUnread = 0;
@@ -12,15 +12,19 @@ export default class EverythingSectionLink extends BaseSectionLink {
constructor() {
super(...arguments);
- this.callbackId = this.topicTrackingState.onStateChange(
- this._refreshCounts
- );
+ if (this.currentUser) {
+ this.callbackId = this.topicTrackingState.onStateChange(
+ this._refreshCounts
+ );
- this._refreshCounts();
+ this._refreshCounts();
+ }
}
teardown() {
- this.topicTrackingState.offStateChange(this.callbackId);
+ if (this.callbackId) {
+ this.topicTrackingState.offStateChange(this.callbackId);
+ }
}
@bind
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/faq-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/faq-section-link.js
similarity index 77%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/faq-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/faq-section-link.js
index 4a496ffc10e..2fe5d646759 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/faq-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/faq-section-link.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
export default class FAQSectionLink extends BaseSectionLink {
get name() {
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/groups-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/groups-section-link.js
similarity index 79%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/groups-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/groups-section-link.js
index ddc97a5dd7e..d6ad8b78cfd 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/groups-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/groups-section-link.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
export default class GroupsSectionLink extends BaseSectionLink {
get name() {
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/users-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/users-section-link.js
similarity index 78%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/users-section-link.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/users-section-link.js
index b98ca6ea229..019eaddb2a6 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/users-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/common/community-section/users-section-link.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
export default class UsersSectionLink extends BaseSectionLink {
get name() {
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/custom-community-section-links.js b/app/assets/javascripts/discourse/app/lib/sidebar/custom-community-section-links.js
similarity index 87%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/custom-community-section-links.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/custom-community-section-links.js
index 09ae8bb7d22..b18cccd0fdf 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/custom-community-section-links.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/custom-community-section-links.js
@@ -1,4 +1,4 @@
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseCommunitySectionLink from "discourse/lib/sidebar/base-community-section-link";
export let customSectionLinks = [];
export let secondaryCustomSectionLinks = [];
@@ -44,8 +44,8 @@ class RouteInfoHelper {
* Appends an additional section link to the Community section under the "More..." links drawer.
*
* @callback addSectionLinkCallback
- * @param {BaseSectionLink} baseSectionLink Factory class to inherit from.
- * @returns {BaseSectionLink} A class that extends BaseSectionLink.
+ * @param {BaseCommunitySectionLink} baseCommunitySectionLink Factory class to inherit from.
+ * @returns {BaseCommunitySectionLink} A class that extends BaseCommunitySectionLink.
*
* @param {(addSectionLinkCallback|Object)} args - A callback function or an Object.
* @param {string} args.name - The name of the link. Needs to be dasherized and lowercase.
@@ -59,9 +59,9 @@ export function addSectionLink(args, secondary) {
const links = secondary ? secondaryCustomSectionLinks : customSectionLinks;
if (typeof args === "function") {
- links.push(args.call(this, BaseSectionLink));
+ links.push(args.call(this, BaseCommunitySectionLink));
} else {
- const klass = class extends BaseSectionLink {
+ const klass = class extends BaseCommunitySectionLink {
constructor() {
super(...arguments);
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/custom-sections.js b/app/assets/javascripts/discourse/app/lib/sidebar/custom-sections.js
similarity index 70%
rename from app/assets/javascripts/discourse/app/lib/sidebar/user/custom-sections.js
rename to app/assets/javascripts/discourse/app/lib/sidebar/custom-sections.js
index 141f8092948..2284ca57fa2 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/custom-sections.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/custom-sections.js
@@ -1,5 +1,5 @@
-import BaseCustomSidebarSection from "discourse/lib/sidebar/user/base-custom-sidebar-section";
-import BaseCustomSidebarSectionLink from "discourse/lib/sidebar/user/base-custom-sidebar-section-link";
+import BaseCustomSidebarSection from "discourse/lib/sidebar/base-custom-sidebar-section";
+import BaseCustomSidebarSectionLink from "discourse/lib/sidebar/base-custom-sidebar-section-link";
export const customSections = [];
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/admin-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/admin-section-link.js
index 093e4360d99..2a1158e071e 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/admin-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/admin-section-link.js
@@ -1,6 +1,6 @@
import I18n from "I18n";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
export default class AdminSectionLink extends BaseSectionLink {
get name() {
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/my-posts-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/my-posts-section-link.js
index 2caa96c6475..3f59055c405 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/my-posts-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/my-posts-section-link.js
@@ -1,7 +1,7 @@
import I18n from "I18n";
import { tracked } from "@glimmer/tracking";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
const USER_DRAFTS_CHANGED_EVENT = "user-drafts:changed";
diff --git a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/tracked-section-link.js b/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/tracked-section-link.js
index 993efbc4880..6b89cf81299 100644
--- a/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/tracked-section-link.js
+++ b/app/assets/javascripts/discourse/app/lib/sidebar/user/community-section/tracked-section-link.js
@@ -2,7 +2,7 @@ import I18n from "I18n";
import { tracked } from "@glimmer/tracking";
import { bind } from "discourse-common/utils/decorators";
-import BaseSectionLink from "discourse/lib/sidebar/user/community-section/base-section-link";
+import BaseSectionLink from "discourse/lib/sidebar/base-community-section-link";
import { isTrackedTopic } from "discourse/lib/topic-list-tracked-filter";
export default class TrackedSectionLink extends BaseSectionLink {
diff --git a/app/assets/javascripts/discourse/tests/acceptance/sidebar-anonymous-community-section-test.js b/app/assets/javascripts/discourse/tests/acceptance/sidebar-anonymous-community-section-test.js
new file mode 100644
index 00000000000..8d05fd766bb
--- /dev/null
+++ b/app/assets/javascripts/discourse/tests/acceptance/sidebar-anonymous-community-section-test.js
@@ -0,0 +1,69 @@
+import I18n from "I18n";
+
+import { test } from "qunit";
+
+import { acceptance, queryAll } from "discourse/tests/helpers/qunit-helpers";
+import { click, visit } from "@ember/test-helpers";
+
+acceptance("Sidebar - Anonymous user - Community Section", function (needs) {
+ needs.settings({
+ enable_experimental_sidebar_hamburger: true,
+ enable_sidebar: true,
+ });
+
+ test("everything, users, about and FAQ section links are shown by default ", async function (assert) {
+ await visit("/");
+
+ const sectionLinks = queryAll(
+ ".sidebar-section-community .sidebar-section-link"
+ );
+
+ assert.strictEqual(
+ sectionLinks[0].textContent.trim(),
+ I18n.t("sidebar.sections.community.links.everything.content"),
+ "displays the everything section link first"
+ );
+
+ assert.strictEqual(
+ sectionLinks[1].textContent.trim(),
+ I18n.t("sidebar.sections.community.links.users.content"),
+ "displays the users section link second"
+ );
+
+ assert.strictEqual(
+ sectionLinks[2].textContent.trim(),
+ I18n.t("about.simple_title"),
+ "displays the about section link third"
+ );
+
+ assert.strictEqual(
+ sectionLinks[3].textContent.trim(),
+ I18n.t("faq"),
+ "displays the FAQ section link last"
+ );
+ });
+
+ test("groups and badges section links are shown in more...", async function (assert) {
+ await visit("/");
+
+ await click(
+ ".sidebar-section-community .sidebar-more-section-links-details-summary"
+ );
+
+ const sectionLinks = queryAll(
+ ".sidebar-more-section-links-details-content-main .sidebar-section-link"
+ );
+
+ assert.strictEqual(
+ sectionLinks[0].textContent.trim(),
+ I18n.t("sidebar.sections.community.links.groups.content"),
+ "displays the groups section link first"
+ );
+
+ assert.strictEqual(
+ sectionLinks[1].textContent.trim(),
+ I18n.t("badges.title"),
+ "displays the badges section link second"
+ );
+ });
+});
diff --git a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js
index 8e62285b85f..741a8c23208 100644
--- a/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js
+++ b/app/assets/javascripts/discourse/tests/helpers/qunit-helpers.js
@@ -62,7 +62,7 @@ import {
setTestPresence,
} from "discourse/lib/user-presence";
import PreloadStore from "discourse/lib/preload-store";
-import { resetDefaultSectionLinks as resetTopicsSectionLinks } from "discourse/lib/sidebar/user/custom-community-section-links";
+import { resetDefaultSectionLinks as resetTopicsSectionLinks } from "discourse/lib/sidebar/custom-community-section-links";
import {
clearBlockDecorateCallbacks,
clearTagDecorateCallbacks,
@@ -71,7 +71,7 @@ import {
import { clearTagsHtmlCallbacks } from "discourse/lib/render-tags";
import { clearToolbarCallbacks } from "discourse/components/d-editor";
import { clearExtraHeaderIcons } from "discourse/widgets/header";
-import { resetSidebarSection } from "discourse/lib/sidebar/user/custom-sections";
+import { resetSidebarSection } from "discourse/lib/sidebar/custom-sections";
import { resetNotificationTypeRenderers } from "discourse/lib/notification-types-manager";
import { resetUserMenuTabs } from "discourse/lib/user-menu/tab";
import { reset as resetLinkLookup } from "discourse/lib/link-lookup";