Change: 絵文字リアクションの通知のグループ化で、アカウントを絵文字の種類ごとに表示 (#796)
* Change: 絵文字リアクションの通知のグループ化で、アカウントを絵文字の種類ごとに表示 * Fix lint * アカウントの一括取得数を制限 * ストリーミング対応 * Fix * Fix * Fix * Fix some problems * Fix
This commit is contained in:
parent
5dec110dec
commit
f14c2d3ada
10 changed files with 258 additions and 7 deletions
|
@ -32,6 +32,7 @@ export const NotificationEmojiReaction: React.FC<{
|
|||
icon={EmojiReactionIcon}
|
||||
iconId='star'
|
||||
accountIds={notification.sampleAccountIds}
|
||||
emojiReactionGroups={notification.emojiReactionGroups}
|
||||
statusId={notification.statusId}
|
||||
timestamp={notification.latest_page_notification_at}
|
||||
count={notification.notifications_count}
|
||||
|
|
|
@ -6,9 +6,11 @@ import { HotKeys } from 'react-hotkeys';
|
|||
|
||||
import { replyComposeById } from 'mastodon/actions/compose';
|
||||
import { navigateToStatus } from 'mastodon/actions/statuses';
|
||||
import EmojiView from 'mastodon/components/emoji_view';
|
||||
import type { IconProp } from 'mastodon/components/icon';
|
||||
import { Icon } from 'mastodon/components/icon';
|
||||
import { RelativeTimestamp } from 'mastodon/components/relative_timestamp';
|
||||
import type { EmojiReactionGroup } from 'mastodon/models/notification_group';
|
||||
import { useAppDispatch } from 'mastodon/store';
|
||||
|
||||
import { AvatarGroup } from './avatar_group';
|
||||
|
@ -26,6 +28,7 @@ export const NotificationGroupWithStatus: React.FC<{
|
|||
actions?: JSX.Element;
|
||||
count: number;
|
||||
accountIds: string[];
|
||||
emojiReactionGroups?: EmojiReactionGroup[];
|
||||
timestamp: string;
|
||||
labelRenderer: LabelRenderer;
|
||||
labelSeeMoreHref?: string;
|
||||
|
@ -36,6 +39,7 @@ export const NotificationGroupWithStatus: React.FC<{
|
|||
iconId,
|
||||
timestamp,
|
||||
accountIds,
|
||||
emojiReactionGroups,
|
||||
actions,
|
||||
count,
|
||||
statusId,
|
||||
|
@ -89,11 +93,28 @@ export const NotificationGroupWithStatus: React.FC<{
|
|||
|
||||
<div className='notification-group__main'>
|
||||
<div className='notification-group__main__header'>
|
||||
<div className='notification-group__main__header__wrapper'>
|
||||
<AvatarGroup accountIds={accountIds} />
|
||||
{emojiReactionGroups?.map((group) => (
|
||||
<div key={group.emoji.name}>
|
||||
<div className='notification-group__main__header__wrapper__for_emoji_reaction'>
|
||||
<EmojiView
|
||||
name={group.emoji.name}
|
||||
url={group.emoji.url}
|
||||
staticUrl={group.emoji.static_url}
|
||||
/>
|
||||
<AvatarGroup accountIds={group.sampleAccountIds} />
|
||||
|
||||
{actions}
|
||||
</div>
|
||||
{actions}
|
||||
</div>
|
||||
</div>
|
||||
))}
|
||||
|
||||
{!emojiReactionGroups && (
|
||||
<div className='notification-group__main__header__wrapper'>
|
||||
<AvatarGroup accountIds={accountIds} />
|
||||
|
||||
{actions}
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className='notification-group__main__header__label'>
|
||||
{label}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue