mirror of
https://github.com/discourse/discourse.git
synced 2025-05-22 22:43:33 +08:00
DEV: Fix "ember/no-empty-glimmer-component-classes" lint (#24629)
This commit is contained in:
@ -1,9 +1,7 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import i18n from "discourse-common/helpers/i18n";
|
import i18n from "discourse-common/helpers/i18n";
|
||||||
import AdminPluginsListItem from "./admin-plugins-list-item";
|
import AdminPluginsListItem from "./admin-plugins-list-item";
|
||||||
|
|
||||||
export default class AdminPluginsList extends Component {
|
const AdminPluginsList = <template>
|
||||||
<template>
|
|
||||||
<table class="admin-plugins-list grid">
|
<table class="admin-plugins-list grid">
|
||||||
<thead>
|
<thead>
|
||||||
<tr>
|
<tr>
|
||||||
@ -19,5 +17,6 @@ export default class AdminPluginsList extends Component {
|
|||||||
{{/each}}
|
{{/each}}
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default AdminPluginsList;
|
||||||
|
@ -1,23 +1,22 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import CookText from "discourse/components/cook-text";
|
import CookText from "discourse/components/cook-text";
|
||||||
import i18n from "discourse-common/helpers/i18n";
|
import i18n from "discourse-common/helpers/i18n";
|
||||||
import and from "truth-helpers/helpers/and";
|
import and from "truth-helpers/helpers/and";
|
||||||
import not from "truth-helpers/helpers/not";
|
import not from "truth-helpers/helpers/not";
|
||||||
|
|
||||||
export default class DashboardNewFeatureItem extends Component {
|
const DashboardNewFeatureItem = <template>
|
||||||
<template>
|
|
||||||
<div class="admin-new-feature-item">
|
<div class="admin-new-feature-item">
|
||||||
<div class="admin-new-feature-item__content">
|
<div class="admin-new-feature-item__content">
|
||||||
<div class="admin-new-feature-item__header">
|
<div class="admin-new-feature-item__header">
|
||||||
{{#if (and @item.emoji (not @item.screenshot_url))}}
|
{{#if (and @item.emoji (not @item.screenshot_url))}}
|
||||||
<div
|
<div class="admin-new-feature-item__new-feature-emoji">
|
||||||
class="admin-new-feature-item__new-feature-emoji"
|
{{@item.emoji}}
|
||||||
>{{@item.emoji}}</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
<h3>
|
<h3>
|
||||||
{{@item.title}}
|
{{@item.title}}
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{{#if @item.screenshot_url}}
|
{{#if @item.screenshot_url}}
|
||||||
<img
|
<img
|
||||||
src={{@item.screenshot_url}}
|
src={{@item.screenshot_url}}
|
||||||
@ -25,8 +24,10 @@ export default class DashboardNewFeatureItem extends Component {
|
|||||||
alt={{@item.title}}
|
alt={{@item.title}}
|
||||||
/>
|
/>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
|
|
||||||
<div class="admin-new-feature-item__feature-description">
|
<div class="admin-new-feature-item__feature-description">
|
||||||
<CookText @rawText={{@item.description}} />
|
<CookText @rawText={{@item.description}} />
|
||||||
|
|
||||||
{{#if @item.link}}
|
{{#if @item.link}}
|
||||||
<a
|
<a
|
||||||
href={{@item.link}}
|
href={{@item.link}}
|
||||||
@ -40,5 +41,6 @@ export default class DashboardNewFeatureItem extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default DashboardNewFeatureItem;
|
||||||
|
@ -36,6 +36,7 @@ class GlimmerComponentWithParentViewManager extends CustomComponentManager {
|
|||||||
* when building backwards-compatible versions of components. Any use of the parentView property
|
* when building backwards-compatible versions of components. Any use of the parentView property
|
||||||
* of the component should be considered deprecated.
|
* of the component should be considered deprecated.
|
||||||
*/
|
*/
|
||||||
|
// eslint-disable-next-line ember/no-empty-glimmer-component-classes
|
||||||
export default class GlimmerComponentWithDeprecatedParentView extends Component {}
|
export default class GlimmerComponentWithDeprecatedParentView extends Component {}
|
||||||
|
|
||||||
setInternalComponentManager(
|
setInternalComponentManager(
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
|
|
||||||
export default class PasskeyLoginButton extends Component {
|
const PasskeyLoginButton = <template>
|
||||||
<template>
|
|
||||||
<DButton
|
<DButton
|
||||||
@action={{@passkeyLogin}}
|
@action={{@passkeyLogin}}
|
||||||
@icon="user"
|
@icon="user"
|
||||||
@label="login.passkey.name"
|
@label="login.passkey.name"
|
||||||
class="btn btn-social passkey-login-button"
|
class="btn-social passkey-login-button"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default PasskeyLoginButton;
|
||||||
|
@ -9,9 +9,11 @@ import { forceMobile, resetMobile } from "discourse/lib/mobile";
|
|||||||
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
import { setupRenderingTest } from "discourse/tests/helpers/component-test";
|
||||||
import { registerTemporaryModule } from "../helpers/temporary-module-helper";
|
import { registerTemporaryModule } from "../helpers/temporary-module-helper";
|
||||||
|
|
||||||
|
// eslint-disable-next-line ember/no-empty-glimmer-component-classes
|
||||||
class MockColocatedComponent extends Component {}
|
class MockColocatedComponent extends Component {}
|
||||||
setComponentTemplate(hbs`Colocated Original`, MockColocatedComponent);
|
setComponentTemplate(hbs`Colocated Original`, MockColocatedComponent);
|
||||||
|
|
||||||
|
// eslint-disable-next-line ember/no-empty-glimmer-component-classes
|
||||||
class MockResolvedComponent extends Component {}
|
class MockResolvedComponent extends Component {}
|
||||||
const MockResolvedComponentTemplate = hbs`Resolved Original`;
|
const MockResolvedComponentTemplate = hbs`Resolved Original`;
|
||||||
|
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
import replaceEmoji from "discourse/helpers/replace-emoji";
|
import replaceEmoji from "discourse/helpers/replace-emoji";
|
||||||
import dIcon from "discourse-common/helpers/d-icon";
|
import dIcon from "discourse-common/helpers/d-icon";
|
||||||
import htmlSafe from "discourse-common/helpers/html-safe";
|
import htmlSafe from "discourse-common/helpers/html-safe";
|
||||||
import ChatUserAvatar from "./chat-user-avatar";
|
import ChatUserAvatar from "./chat-user-avatar";
|
||||||
|
|
||||||
export default class ChatComposerMessageDetails extends Component {
|
const ChatComposerMessageDetails = <template>
|
||||||
<template>
|
|
||||||
<div
|
<div
|
||||||
class="chat-composer-message-details"
|
class="chat-composer-message-details"
|
||||||
data-id={{@message.id}}
|
data-id={{@message.id}}
|
||||||
@ -28,5 +26,6 @@ export default class ChatComposerMessageDetails extends Component {
|
|||||||
class="btn-flat cancel-message-action"
|
class="btn-flat cancel-message-action"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatComposerMessageDetails;
|
||||||
|
@ -1,13 +1,12 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
|
|
||||||
export default class extends Component {
|
const CloseButton = <template>
|
||||||
<template>
|
|
||||||
<DButton
|
<DButton
|
||||||
@icon="times"
|
@icon="times"
|
||||||
@action={{@close}}
|
@action={{@close}}
|
||||||
@title="chat.close"
|
@title="chat.close"
|
||||||
class="btn-flat btn-link chat-drawer-header__close-btn"
|
class="btn-flat btn-link chat-drawer-header__close-btn"
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default CloseButton;
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import replaceEmoji from "discourse/helpers/replace-emoji";
|
import replaceEmoji from "discourse/helpers/replace-emoji";
|
||||||
|
|
||||||
export default class extends Component {
|
const ChatEmojiAvatar = <template>
|
||||||
<template>
|
|
||||||
<div class="chat-emoji-avatar">
|
<div class="chat-emoji-avatar">
|
||||||
<div class="chat-emoji-avatar-container">
|
<div class="chat-emoji-avatar-container">
|
||||||
{{replaceEmoji @emoji}}
|
{{replaceEmoji @emoji}}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatEmojiAvatar;
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import i18n from "discourse-common/helpers/i18n";
|
import i18n from "discourse-common/helpers/i18n";
|
||||||
import and from "truth-helpers/helpers/and";
|
import and from "truth-helpers/helpers/and";
|
||||||
import not from "truth-helpers/helpers/not";
|
import not from "truth-helpers/helpers/not";
|
||||||
|
|
||||||
export default class extends Component {
|
const ChatMessageSeparatorNew = <template>
|
||||||
<template>
|
|
||||||
{{#if (and @message.newest (not @message.formattedFirstMessageDate))}}
|
{{#if (and @message.newest (not @message.formattedFirstMessageDate))}}
|
||||||
<div class="chat-message-separator-new">
|
<div class="chat-message-separator-new">
|
||||||
<div class="chat-message-separator__text-container">
|
<div class="chat-message-separator__text-container">
|
||||||
@ -18,5 +16,6 @@ export default class extends Component {
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatMessageSeparatorNew;
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import Component from "@glimmer/component";
|
const ChatSidePanelResizer = <template>
|
||||||
|
|
||||||
export default class extends Component {
|
|
||||||
<template>
|
|
||||||
<div class="chat-side-panel-resizer"></div>
|
<div class="chat-side-panel-resizer"></div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatSidePanelResizer;
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import dIcon from "discourse-common/helpers/d-icon";
|
import dIcon from "discourse-common/helpers/d-icon";
|
||||||
|
|
||||||
export default class ChatComposerButton extends Component {
|
const ChatComposerButton = <template>
|
||||||
<template>
|
|
||||||
<div class="chat-composer-button__wrapper">
|
<div class="chat-composer-button__wrapper">
|
||||||
<button type="button" class="chat-composer-button" ...attributes>
|
<button type="button" class="chat-composer-button" ...attributes>
|
||||||
{{dIcon @icon}}
|
{{dIcon @icon}}
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatComposerButton;
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import Component from "@glimmer/component";
|
const ChatComposerSeparator = <template>
|
||||||
|
|
||||||
export default class ChatComposerSeparator extends Component {
|
|
||||||
<template>
|
|
||||||
<div class="chat-composer-separator"></div>
|
<div class="chat-composer-separator"></div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatComposerSeparator;
|
||||||
|
@ -1,18 +1,13 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import { LinkTo } from "@ember/routing";
|
import { LinkTo } from "@ember/routing";
|
||||||
import concatClass from "discourse/helpers/concat-class";
|
import concatClass from "discourse/helpers/concat-class";
|
||||||
import icon from "discourse-common/helpers/d-icon";
|
import icon from "discourse-common/helpers/d-icon";
|
||||||
|
|
||||||
export default class ChatFormRow extends Component {
|
const ChatFormRow = <template>
|
||||||
<template>
|
|
||||||
{{#if @route}}
|
{{#if @route}}
|
||||||
<LinkTo
|
<LinkTo
|
||||||
@route={{@route}}
|
@route={{@route}}
|
||||||
@models={{@routeModels}}
|
@models={{@routeModels}}
|
||||||
class={{concatClass
|
class={{concatClass "chat-form__row -link" (if @separator "-separator")}}
|
||||||
"chat-form__row -link"
|
|
||||||
(if @separator "-separator")
|
|
||||||
}}
|
|
||||||
>
|
>
|
||||||
<div class="chat-form__row-content">
|
<div class="chat-form__row-content">
|
||||||
{{@label}}
|
{{@label}}
|
||||||
@ -44,5 +39,6 @@ export default class ChatFormRow extends Component {
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatFormRow;
|
||||||
|
@ -1,12 +1,11 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
|
|
||||||
export default class ListAction extends Component {
|
const ListAction = <template>
|
||||||
<template>
|
|
||||||
<DButton
|
<DButton
|
||||||
class="btn btn-flat"
|
class="btn btn-flat"
|
||||||
@icon={{@item.icon}}
|
@icon={{@item.icon}}
|
||||||
@translatedLabel={{@item.label}}
|
@translatedLabel={{@item.label}}
|
||||||
/>
|
/>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ListAction;
|
||||||
|
@ -1,12 +1,10 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import { fn } from "@ember/helper";
|
import { fn } from "@ember/helper";
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
import concatClass from "discourse/helpers/concat-class";
|
import concatClass from "discourse/helpers/concat-class";
|
||||||
import icon from "discourse-common/helpers/d-icon";
|
import icon from "discourse-common/helpers/d-icon";
|
||||||
import ChatUserAvatar from "discourse/plugins/chat/discourse/components/chat-user-avatar";
|
import ChatUserAvatar from "discourse/plugins/chat/discourse/components/chat-user-avatar";
|
||||||
|
|
||||||
export default class Member extends Component {
|
const Member = <template>
|
||||||
<template>
|
|
||||||
<DButton
|
<DButton
|
||||||
class={{concatClass
|
class={{concatClass
|
||||||
"chat-message-creator__member btn-default"
|
"chat-message-creator__member btn-default"
|
||||||
@ -24,5 +22,6 @@ export default class Member extends Component {
|
|||||||
</span>
|
</span>
|
||||||
{{icon "times"}}
|
{{icon "times"}}
|
||||||
</DButton>
|
</DButton>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default Member;
|
||||||
|
@ -1,9 +1,7 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import ChatEmojiAvatar from "../../chat-emoji-avatar";
|
import ChatEmojiAvatar from "../../chat-emoji-avatar";
|
||||||
import ChatUserAvatar from "../../chat-user-avatar";
|
import ChatUserAvatar from "../../chat-user-avatar";
|
||||||
|
|
||||||
export default class extends Component {
|
const Avatar = <template>
|
||||||
<template>
|
|
||||||
<div class="chat-message-avatar">
|
<div class="chat-message-avatar">
|
||||||
{{#if @message.chatWebhookEvent.emoji}}
|
{{#if @message.chatWebhookEvent.emoji}}
|
||||||
<ChatEmojiAvatar @emoji={{@message.chatWebhookEvent.emoji}} />
|
<ChatEmojiAvatar @emoji={{@message.chatWebhookEvent.emoji}} />
|
||||||
@ -11,5 +9,6 @@ export default class extends Component {
|
|||||||
<ChatUserAvatar @user={{@message.user}} @avatarSize="medium" />
|
<ChatUserAvatar @user={{@message.user}} @avatarSize="medium" />
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default Avatar;
|
||||||
|
@ -1,11 +1,9 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import { fn } from "@ember/helper";
|
import { fn } from "@ember/helper";
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
import i18n from "discourse-common/helpers/i18n";
|
import i18n from "discourse-common/helpers/i18n";
|
||||||
import eq from "truth-helpers/helpers/eq";
|
import eq from "truth-helpers/helpers/eq";
|
||||||
|
|
||||||
export default class extends Component {
|
const Error = <template>
|
||||||
<template>
|
|
||||||
{{#if @message.error}}
|
{{#if @message.error}}
|
||||||
<div class="chat-message-error">
|
<div class="chat-message-error">
|
||||||
{{#if (eq @message.error "network_error")}}
|
{{#if (eq @message.error "network_error")}}
|
||||||
@ -26,5 +24,6 @@ export default class extends Component {
|
|||||||
{{/if}}
|
{{/if}}
|
||||||
</div>
|
</div>
|
||||||
{{/if}}
|
{{/if}}
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default Error;
|
||||||
|
@ -1,10 +1,8 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import DButton from "discourse/components/d-button";
|
import DButton from "discourse/components/d-button";
|
||||||
import concatClass from "discourse/helpers/concat-class";
|
import concatClass from "discourse/helpers/concat-class";
|
||||||
import dIcon from "discourse-common/helpers/d-icon";
|
import dIcon from "discourse-common/helpers/d-icon";
|
||||||
|
|
||||||
export default class extends Component {
|
const ScrollToBottomArrow = <template>
|
||||||
<template>
|
|
||||||
<div class="chat-scroll-to-bottom">
|
<div class="chat-scroll-to-bottom">
|
||||||
<DButton
|
<DButton
|
||||||
class={{concatClass
|
class={{concatClass
|
||||||
@ -19,5 +17,6 @@ export default class extends Component {
|
|||||||
</span>
|
</span>
|
||||||
</DButton>
|
</DButton>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ScrollToBottomArrow;
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
import ChatComposer from "../chat-composer";
|
import ChatComposer from "../chat-composer";
|
||||||
import ChatComposerMessageDetails from "../chat-composer-message-details";
|
import ChatComposerMessageDetails from "../chat-composer-message-details";
|
||||||
import ChatHeaderIcon from "../chat-header-icon";
|
import ChatHeaderIcon from "../chat-header-icon";
|
||||||
@ -15,8 +14,7 @@ import ChatModalThreadSettings from "../chat-modal-thread-settings";
|
|||||||
import ChatModalToggleChannelStatus from "../chat-modal-toggle-channel-status";
|
import ChatModalToggleChannelStatus from "../chat-modal-toggle-channel-status";
|
||||||
import ChatThreadListItem from "../chat-thread-list-item";
|
import ChatThreadListItem from "../chat-thread-list-item";
|
||||||
|
|
||||||
export default class extends Component {
|
const ChatOrganism = <template>
|
||||||
<template>
|
|
||||||
<ChatMessage />
|
<ChatMessage />
|
||||||
<ChatComposer />
|
<ChatComposer />
|
||||||
<ChatThreadListItem />
|
<ChatThreadListItem />
|
||||||
@ -35,5 +33,6 @@ export default class extends Component {
|
|||||||
<ChatModalToggleChannelStatus />
|
<ChatModalToggleChannelStatus />
|
||||||
<ChatModalNewMessage />
|
<ChatModalNewMessage />
|
||||||
<ChatModalChannelSummary />
|
<ChatModalChannelSummary />
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default ChatOrganism;
|
||||||
|
@ -1,7 +1,5 @@
|
|||||||
import Component from "@glimmer/component";
|
const DummyComponent = <template>
|
||||||
|
|
||||||
export default class DummyComponent extends Component {
|
|
||||||
<template>
|
|
||||||
My custom component with foo: {{@model.foo}}
|
My custom component with foo: {{@model.foo}}
|
||||||
</template>
|
</template>;
|
||||||
}
|
|
||||||
|
export default DummyComponent;
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
|
|
||||||
export default class StyleguideComponent extends Component {}
|
|
@ -1,3 +0,0 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
|
|
||||||
export default class StyleguideControls extends Component {}
|
|
@ -1,3 +0,0 @@
|
|||||||
import Component from "@glimmer/component";
|
|
||||||
|
|
||||||
export default class StyleguideControlsToggle extends Component {}
|
|
Reference in New Issue
Block a user