WIP preserve local changes before duckie merge

This commit is contained in:
Lorenzune
2026-04-21 11:13:32 +02:00
parent e0174e450c
commit 9b36513def
74 changed files with 4419 additions and 408 deletions
@@ -1,7 +1,9 @@
import { FC } from 'react';
import { MessengerRequest } from '../../../../../api';
import { NitroCardAccordionItemView, UserProfileIconView } from '../../../../../common';
import { LocalizeText, MessengerRequest } from '../../../../../api';
import { Button, LayoutAvatarImageView, NitroCardAccordionItemView, UserProfileIconView } from '../../../../../common';
import { useFriends } from '../../../../../hooks';
import { resolveAvatarFigure } from '../resolveAvatarFigure';
import { resolveAvatarGender } from '../resolveAvatarGender';
export const FriendsListRequestItemView: FC<{ request: MessengerRequest }> = props =>
{
@@ -11,14 +13,23 @@ export const FriendsListRequestItemView: FC<{ request: MessengerRequest }> = pro
if(!request) return null;
return (
<NitroCardAccordionItemView className="px-2 py-1" justifyContent="between">
<div className="flex items-center gap-1">
<UserProfileIconView userId={ request.id } />
<div>{ request.name }</div>
<NitroCardAccordionItemView className="friends-list-item px-2 py-1" justifyContent="between">
<div className="friends-list-user">
<div className="friends-list-avatar">
<LayoutAvatarImageView figure={ resolveAvatarFigure(request.figureString) } gender={ resolveAvatarGender(undefined) } headOnly={ true } direction={ 2 } />
</div>
<div>
<UserProfileIconView userId={ request.requesterUserId } />
</div>
<div className="friends-list-name">{ request.name }</div>
</div>
<div className="flex items-center gap-1">
<div className="nitro-friends-spritesheet icon-accept cursor-pointer" onClick={ event => requestResponse(request.id, true) } />
<div className="nitro-friends-spritesheet icon-deny cursor-pointer" onClick={ event => requestResponse(request.id, false) } />
<Button size="sm" onClick={ event => requestResponse(request.id, true) }>
{ LocalizeText('friendlist.request_accept') }
</Button>
<Button size="sm" variant="danger" onClick={ event => requestResponse(request.id, false) }>
{ LocalizeText('friendlist.request_decline') }
</Button>
</div>
</NitroCardAccordionItemView>
);
@@ -17,8 +17,11 @@ export const FriendsListRequestView: FC<NitroCardAccordionSetViewProps> = props
<Column gap={ 0 }>
{ requests.map((request, index) => <FriendsListRequestItemView key={ index } request={ request } />) }
</Column>
<div className="flex justify-center px-2 py-1">
<Button onClick={ event => requestResponse(-1, false) }>
<div className="flex justify-center gap-2 px-2 py-1">
<Button onClick={ event => requests.forEach(request => requestResponse(request.id, true)) }>
{ LocalizeText('friendlist.requests.acceptall') }
</Button>
<Button variant="danger" onClick={ event => requestResponse(-1, false) }>
{ LocalizeText('friendlist.requests.dismissall') }
</Button>
</div>