Skip to content

Commit cd1a8e3

Browse files
committed
feat: replace ngx-popperjs with ngx-float-ui
1 parent c7e7f2a commit cd1a8e3

File tree

6 files changed

+103
-87
lines changed

6 files changed

+103
-87
lines changed

package-lock.json

+65-35
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+3-3
Original file line numberDiff line numberDiff line change
@@ -117,15 +117,15 @@
117117
"@angular/platform-browser-dynamic": "~15.0.0",
118118
"@angular/router": "~15.0.0",
119119
"@ctrl/ngx-emoji-mart": "^8.2.0",
120+
"@floating-ui/dom": "^1.6.3",
120121
"@ngx-translate/core": "^14.0.0",
121-
"@popperjs/core": "^2.11.5",
122-
"@stream-io/stream-chat-css": "4.11.0",
122+
"@stream-io/stream-chat-css": "4.12.0",
123123
"@stream-io/transliterate": "^1.5.2",
124124
"angular-mentions": "1.4.0",
125125
"dayjs": "^1.11.10",
126126
"dotenv": "^16.4.5",
127127
"emoji-regex": "^10.3.0",
128-
"ngx-popperjs": "^15.2.4",
128+
"ngx-float-ui": "^15.0.0",
129129
"pretty-bytes": "^6.1.1",
130130
"rxjs": "~7.4.0",
131131
"stream-chat": "^8.25.1",

projects/stream-chat-angular/src/lib/message-reactions/message-reactions.component.ts

-3
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@ import {
1616
import { ReactionResponse, UserResponse } from 'stream-chat';
1717
import { ChannelService } from '../channel.service';
1818
import { MessageReactionType, DefaultStreamChatGenerics } from '../types';
19-
import { NgxPopperjsTriggers, NgxPopperjsPlacements } from 'ngx-popperjs';
2019
import { MessageReactionsService } from '../message-reactions.service';
2120
import { CustomTemplatesService } from '../custom-templates.service';
2221
import { ThemeService } from '../theme.service';
@@ -66,8 +65,6 @@ export class MessageReactionsComponent
6665
| ElementRef<HTMLElement>
6766
| undefined;
6867
currentTooltipTarget: HTMLElement | undefined;
69-
popperTriggerHover = NgxPopperjsTriggers.hover;
70-
popperPlacementAuto = NgxPopperjsPlacements.AUTO;
7168
selectedReactionType: string | undefined;
7269
isLoading = true;
7370
reactions: ReactionResponse[] = [];

projects/stream-chat-angular/src/lib/message/message.component.html

+28-32
Original file line numberDiff line numberDiff line change
@@ -47,16 +47,15 @@
4747
str-chat__message-simple__actions__action
4848
str-chat__message-simple__actions__action--options
4949
"
50-
[popper]="popperContent"
51-
[popperTrigger]="popperTriggerClick"
52-
[popperPlacement]="popperPlacementAuto"
53-
[popperHideOnScroll]="false"
54-
[popperHideOnClickOutside]="true"
55-
[popperHideOnMouseLeave]="false"
56-
[popperDisableAnimation]="true"
57-
(popperOnHidden)="isActionBoxOpen = false"
50+
[floatUi]="floatingContent"
51+
looseTrigger="click"
52+
[hideOnScroll]="false"
53+
[hideOnClickOutside]="true"
54+
[hideOnMouseLeave]="false"
55+
[disableAnimation]="true"
56+
(onHidden)="isActionBoxOpen = false"
5857
>
59-
<popper-content #popperContent>
58+
<float-ui-content #floatingContent>
6059
<ng-template
6160
#defaultMessageActionsBox
6261
let-isOpen="isOpen"
@@ -72,7 +71,7 @@
7271
[enabledActions]="enabledActions"
7372
[customActions]="customActions"
7473
[message]="messageInput"
75-
(click)="messageActionsBoxClicked(popperContent)"
74+
(click)="messageActionsBoxClicked(floatingContent)"
7675
></stream-message-actions-box>
7776
</ng-template>
7877
<ng-container
@@ -83,7 +82,7 @@
8382
"
8483
>
8584
</ng-container>
86-
</popper-content>
85+
</float-ui-content>
8786
<div
8887
*ngIf="visibleMessageActionsCount > 0"
8988
class="str-chat__message-actions-box-button"
@@ -540,18 +539,17 @@
540539
"
541540
data-testid="delivered-indicator"
542541
tabindex="0"
543-
[popper]="popperContent"
544-
[popperTrigger]="popperTriggerHover"
545-
[popperPlacement]="popperPlacementAuto"
546-
[popperHideOnScroll]="false"
547-
[popperHideOnClickOutside]="false"
542+
[floatUi]="floatingContent"
543+
looseTrigger="click"
544+
[hideOnScroll]="false"
545+
[hideOnClickOutside]="false"
548546
(hover)="$event.stopPropagation()"
549547
>
550-
<popper-content #popperContent>
548+
<float-ui-content #floatingContent>
551549
<div class="str-chat__tooltip str-chat__tooltip-angular">
552550
{{ "streamChat.Delivered" | translate }}
553551
</div>
554-
</popper-content>
552+
</float-ui-content>
555553
<stream-icon-placeholder
556554
data-testid="delivered-icon"
557555
icon="delivered-icon"
@@ -576,18 +574,17 @@
576574
"
577575
data-testid="sending-indicator"
578576
tabindex="0"
579-
[popper]="popperContent"
580-
[popperTrigger]="popperTriggerHover"
581-
[popperPlacement]="popperPlacementAuto"
582-
[popperHideOnScroll]="false"
583-
[popperHideOnClickOutside]="false"
577+
[floatUi]="floatingContent"
578+
looseTrigger="'hover'"
579+
[hideOnScroll]="false"
580+
[hideOnClickOutside]="false"
584581
(hover)="$event.stopPropagation()"
585582
>
586-
<popper-content #popperContent>
583+
<float-ui-content #floatingContent>
587584
<div class="str-chat__tooltip str-chat__tooltip-angular">
588585
{{ "streamChat.Sending..." | translate }}
589586
</div>
590-
</popper-content>
587+
</float-ui-content>
591588
<stream-loading-indicator-placeholder
592589
data-testid="loading-indicator"
593590
></stream-loading-indicator-placeholder>
@@ -611,21 +608,20 @@
611608
"
612609
data-testid="read-indicator"
613610
tabindex="0"
614-
[popper]="popperContent"
615-
[popperTrigger]="popperTriggerHover"
616-
[popperPlacement]="popperPlacementAuto"
617-
[popperHideOnScroll]="false"
618-
[popperHideOnClickOutside]="false"
611+
[floatUi]="floatingContent"
612+
looseTrigger="'hover'"
613+
[hideOnScroll]="false"
614+
[hideOnClickOutside]="false"
619615
(hover)="$event.stopPropagation()"
620616
>
621-
<popper-content #popperContent>
617+
<float-ui-content #floatingContent>
622618
<div
623619
class="str-chat__tooltip str-chat__tooltip-angular"
624620
data-testid="read-by-tooltip"
625621
>
626622
{{ readByText }}
627623
</div>
628-
</popper-content>
624+
</float-ui-content>
629625
<stream-icon-placeholder icon="read-icon"></stream-icon-placeholder>
630626
</span>
631627
</ng-template>

projects/stream-chat-angular/src/lib/message/message.component.ts

+3-10
Original file line numberDiff line numberDiff line change
@@ -34,14 +34,10 @@ import { Subscription } from 'rxjs';
3434
import { CustomTemplatesService } from '../custom-templates.service';
3535
import { listUsers } from '../list-users';
3636
import { ThemeService } from '../theme.service';
37-
import {
38-
NgxPopperjsTriggers,
39-
NgxPopperjsPlacements,
40-
NgxPopperjsContentComponent,
41-
} from 'ngx-popperjs';
4237
import { DateParserService } from '../date-parser.service';
4338
import { MessageService } from '../message.service';
4439
import { MessageActionsService } from '../message-actions.service';
40+
import { NgxFloatUiContentComponent } from 'ngx-float-ui';
4541

4642
type MessagePart = {
4743
content: string;
@@ -95,9 +91,6 @@ export class MessageComponent
9591
visibleMessageActionsCount = 0;
9692
messageTextParts: MessagePart[] | undefined = [];
9793
messageText?: string;
98-
popperTriggerClick = NgxPopperjsTriggers.click;
99-
popperTriggerHover = NgxPopperjsTriggers.hover;
100-
popperPlacementAuto = NgxPopperjsPlacements.AUTO;
10194
shouldDisplayTranslationNotice = false;
10295
displayedMessageTextContent: 'original' | 'translation' = 'original';
10396
imageAttachmentModalState: 'opened' | 'closed' = 'closed';
@@ -276,8 +269,8 @@ export class MessageComponent
276269
}
277270
}
278271

279-
messageActionsBoxClicked(popperContent: NgxPopperjsContentComponent) {
280-
popperContent.hide();
272+
messageActionsBoxClicked(floatingContent: NgxFloatUiContentComponent) {
273+
floatingContent.hide();
281274
}
282275

283276
getAttachmentListContext(): AttachmentListContext {

0 commit comments

Comments
 (0)