mirror of
https://github.com/hanzoai/forum.git
synced 2026-09-30 21:51:19 +00:00
- convert chat/channels-list -> gjs - convert chat/chat-channel-archive-status -> gjs - convert chat/chat-channel-card -> gjs - convert chat/chat-channel-leave-btn -> gjs - convert chat/chat-channel-metadata -> gjs - convert chat/chat-channel-preview-card -> gjs - convert chat/chat-channel-status -> gjs - convert chat/chat-channel-unread-indicator -> gjs - convert chat/chat-composer-dropdown -> gjs - convert chat/chat-composer-message-details -> gjs - convert chat/chat-composer-upload -> gjs - convert chat/channel -> gjs - convert chat/header -> gjs - convert chat/back-link -> gjs - convert chat/channel-title -> gjs - convert chat/close-button -> gjs - convert chat/full-page-button -> gjs - convert chat/left-actions -> gjs - convert chat/right-actions -> gjs - convert chat/toggle-expand-button -> gjs - convert chat/index -> gjs - convert chat/chat-emoji-avatar -> gjs - convert chat/chat-mention-warnings -> gjs - convert chat/chat-message-in-reply-to-indicator -> gjs - convert chat/chat-message-separator-date -> gjs - convert chat/chat-message-separator-new -> gjs - convert chat/chat-message-text -> gjs - convert chat/chat-message-thread-indicator -> gjs - convert chat/chat-notice -> gjs - convert chat/chat-notices -> gjs - convert chat/chat-replying-indicator -> gjs - convert chat/chat-side-panel-resizer -> gjs - convert chat/chat-side-panel -> gjs - convert chat/chat-skeleton -> gjs - convert chat/chat-upload-drop-zone -> gjs - convert chat/chat-upload -> gjs - convert chat/chat-user-display-name -> gjs - convert chat/export-messages -> gjs - convert chat/button -> gjs - convert chat/separator -> gjs - convert chat/avatar -> gjs - convert chat/error -> gjs - convert chat/info -> gjs - convert chat/left-gutter -> gjs - convert chat/archive-channel -> gjs - convert chat/channel-summary -> gjs - convert chat/delete-channel -> gjs - convert chat/edit-channel-name -> gjs - convert chat/move-message-to-channel -> gjs - convert chat/thread-settings -> gjs - convert chat/toggle-channel-status -> gjs - convert chat/mention_without_membership -> gjs - convert chat/scroll-to-bottom-arrow -> gjs - convert chat/item -> gjs - convert chat/unread-indicator -> gjs - convert chat/user-card-button -> gjs - convert chat/full-page-chat -> gjs - convert chat/reviewable-chat-message -> gjs - convert chat/chat -> gjs - convert chat/toggle-channel-membership-button -> gjs - convert chat/chat-preferences -> gjs
53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
import Component from "@glimmer/component";
|
|
import { htmlSafe } from "@ember/template";
|
|
|
|
export default class ChatSkeleton extends Component {
|
|
get placeholders() {
|
|
return Array.from({ length: 15 }, () => {
|
|
return {
|
|
image: this.#randomIntFromInterval(1, 10) === 5,
|
|
rows: Array.from({ length: this.#randomIntFromInterval(1, 5) }, () => {
|
|
return htmlSafe(`width: ${this.#randomIntFromInterval(20, 95)}%`);
|
|
}),
|
|
reactions: Array.from({ length: this.#randomIntFromInterval(0, 3) }),
|
|
};
|
|
});
|
|
}
|
|
|
|
#randomIntFromInterval(min, max) {
|
|
return Math.floor(Math.random() * (max - min + 1) + min);
|
|
}
|
|
|
|
<template>
|
|
<div class="chat-skeleton -animation">
|
|
{{#each this.placeholders as |placeholder|}}
|
|
<div class="chat-skeleton__body">
|
|
<div class="chat-skeleton__message">
|
|
<div class="chat-skeleton__message-avatar"></div>
|
|
<div class="chat-skeleton__message-poster"></div>
|
|
<div class="chat-skeleton__message-content">
|
|
{{#if placeholder.image}}
|
|
<div class="chat-skeleton__message-img"></div>
|
|
{{/if}}
|
|
|
|
<div class="chat-skeleton__message-text">
|
|
{{#each placeholder.rows as |row|}}
|
|
<div class="chat-skeleton__message-msg" style={{row}}></div>
|
|
{{/each}}
|
|
</div>
|
|
|
|
{{#if placeholder.reactions}}
|
|
<div class="chat-skeleton__message-reactions">
|
|
{{#each placeholder.reactions}}
|
|
<div class="chat-skeleton__message-reaction"></div>
|
|
{{/each}}
|
|
</div>
|
|
{{/if}}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
{{/each}}
|
|
</div>
|
|
</template>
|
|
}
|