mirror of https://github.com/vector-im/riot-web
Merge pull request #12416 from matrix-org/florianduros/tooltip-update
Use new compound tooltippull/28217/head
commit
2c848d7fa7
|
@ -76,7 +76,7 @@
|
||||||
"@sentry/browser": "^7.0.0",
|
"@sentry/browser": "^7.0.0",
|
||||||
"@testing-library/react-hooks": "^8.0.1",
|
"@testing-library/react-hooks": "^8.0.1",
|
||||||
"@vector-im/compound-design-tokens": "^1.2.0",
|
"@vector-im/compound-design-tokens": "^1.2.0",
|
||||||
"@vector-im/compound-web": "^3.3.1",
|
"@vector-im/compound-web": "^4.0.2",
|
||||||
"@zxcvbn-ts/core": "^3.0.4",
|
"@zxcvbn-ts/core": "^3.0.4",
|
||||||
"@zxcvbn-ts/language-common": "^3.0.4",
|
"@zxcvbn-ts/language-common": "^3.0.4",
|
||||||
"@zxcvbn-ts/language-en": "^3.0.2",
|
"@zxcvbn-ts/language-en": "^3.0.2",
|
||||||
|
|
|
@ -20,7 +20,7 @@ import ReactDOM from "react-dom";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import { defer, sleep } from "matrix-js-sdk/src/utils";
|
import { defer, sleep } from "matrix-js-sdk/src/utils";
|
||||||
import { TypedEventEmitter } from "matrix-js-sdk/src/matrix";
|
import { TypedEventEmitter } from "matrix-js-sdk/src/matrix";
|
||||||
import { Glass, TooltipProvider } from "@vector-im/compound-web";
|
import { Glass } from "@vector-im/compound-web";
|
||||||
|
|
||||||
import dis from "./dispatcher/dispatcher";
|
import dis from "./dispatcher/dispatcher";
|
||||||
import AsyncWrapper from "./AsyncWrapper";
|
import AsyncWrapper from "./AsyncWrapper";
|
||||||
|
@ -374,18 +374,16 @@ export class ModalManager extends TypedEventEmitter<ModalManagerEvent, HandlerMa
|
||||||
const classes = classNames("mx_Dialog_wrapper mx_Dialog_staticWrapper", this.staticModal.className);
|
const classes = classNames("mx_Dialog_wrapper mx_Dialog_staticWrapper", this.staticModal.className);
|
||||||
|
|
||||||
const staticDialog = (
|
const staticDialog = (
|
||||||
<TooltipProvider>
|
<div className={classes}>
|
||||||
<div className={classes}>
|
<Glass className="mx_Dialog_border">
|
||||||
<Glass className="mx_Dialog_border">
|
<div className="mx_Dialog">{this.staticModal.elem}</div>
|
||||||
<div className="mx_Dialog">{this.staticModal.elem}</div>
|
</Glass>
|
||||||
</Glass>
|
<div
|
||||||
<div
|
data-testid="dialog-background"
|
||||||
data-testid="dialog-background"
|
className="mx_Dialog_background mx_Dialog_staticBackground"
|
||||||
className="mx_Dialog_background mx_Dialog_staticBackground"
|
onClick={this.onBackgroundClick}
|
||||||
onClick={this.onBackgroundClick}
|
/>
|
||||||
/>
|
</div>
|
||||||
</div>
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
ReactDOM.render(staticDialog, ModalManager.getOrCreateStaticContainer());
|
ReactDOM.render(staticDialog, ModalManager.getOrCreateStaticContainer());
|
||||||
|
@ -401,18 +399,16 @@ export class ModalManager extends TypedEventEmitter<ModalManagerEvent, HandlerMa
|
||||||
});
|
});
|
||||||
|
|
||||||
const dialog = (
|
const dialog = (
|
||||||
<TooltipProvider>
|
<div className={classes}>
|
||||||
<div className={classes}>
|
<Glass className="mx_Dialog_border">
|
||||||
<Glass className="mx_Dialog_border">
|
<div className="mx_Dialog">{modal.elem}</div>
|
||||||
<div className="mx_Dialog">{modal.elem}</div>
|
</Glass>
|
||||||
</Glass>
|
<div
|
||||||
<div
|
data-testid="dialog-background"
|
||||||
data-testid="dialog-background"
|
className="mx_Dialog_background"
|
||||||
className="mx_Dialog_background"
|
onClick={this.onBackgroundClick}
|
||||||
onClick={this.onBackgroundClick}
|
/>
|
||||||
/>
|
</div>
|
||||||
</div>
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
setImmediate(() => ReactDOM.render(dialog, ModalManager.getOrCreateContainer()));
|
setImmediate(() => ReactDOM.render(dialog, ModalManager.getOrCreateContainer()));
|
||||||
|
|
|
@ -20,7 +20,6 @@ import React, { CSSProperties, RefObject, SyntheticEvent, useRef, useState } fro
|
||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import classNames from "classnames";
|
import classNames from "classnames";
|
||||||
import FocusLock from "react-focus-lock";
|
import FocusLock from "react-focus-lock";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { Writeable } from "../../@types/common";
|
import { Writeable } from "../../@types/common";
|
||||||
import UIStore from "../../stores/UIStore";
|
import UIStore from "../../stores/UIStore";
|
||||||
|
@ -630,17 +629,15 @@ export function createMenu(
|
||||||
};
|
};
|
||||||
|
|
||||||
const menu = (
|
const menu = (
|
||||||
<TooltipProvider>
|
<ContextMenu
|
||||||
<ContextMenu
|
{...props}
|
||||||
{...props}
|
mountAsChild={true}
|
||||||
mountAsChild={true}
|
hasBackground={false}
|
||||||
hasBackground={false}
|
onFinished={onFinished} // eslint-disable-line react/jsx-no-bind
|
||||||
onFinished={onFinished} // eslint-disable-line react/jsx-no-bind
|
windowResize={onFinished} // eslint-disable-line react/jsx-no-bind
|
||||||
windowResize={onFinished} // eslint-disable-line react/jsx-no-bind
|
>
|
||||||
>
|
<ElementClass {...props} onFinished={onFinished} />
|
||||||
<ElementClass {...props} onFinished={onFinished} />
|
</ContextMenu>
|
||||||
</ContextMenu>
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
ReactDOM.render(menu, getOrCreateContainer());
|
ReactDOM.render(menu, getOrCreateContainer());
|
||||||
|
|
|
@ -33,7 +33,6 @@ import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import { throttle } from "lodash";
|
import { throttle } from "lodash";
|
||||||
import { CryptoEvent } from "matrix-js-sdk/src/crypto";
|
import { CryptoEvent } from "matrix-js-sdk/src/crypto";
|
||||||
import { IKeyBackupInfo } from "matrix-js-sdk/src/crypto/keybackup";
|
import { IKeyBackupInfo } from "matrix-js-sdk/src/crypto/keybackup";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
// what-input helps improve keyboard accessibility
|
// what-input helps improve keyboard accessibility
|
||||||
import "what-input";
|
import "what-input";
|
||||||
|
@ -2137,9 +2136,7 @@ export default class MatrixChat extends React.PureComponent<IProps, IState> {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<ErrorBoundary>
|
<ErrorBoundary>
|
||||||
<SDKContext.Provider value={this.stores}>
|
<SDKContext.Provider value={this.stores}>{view}</SDKContext.Provider>
|
||||||
<TooltipProvider>{view}</TooltipProvider>
|
|
||||||
</SDKContext.Provider>
|
|
||||||
</ErrorBoundary>
|
</ErrorBoundary>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ export const CheckEmail: React.FC<CheckEmailProps> = ({
|
||||||
<input onClick={onSubmitForm} type="button" className="mx_Login_submit" value={_t("action|next")} />
|
<input onClick={onSubmitForm} type="button" className="mx_Login_submit" value={_t("action|next")} />
|
||||||
<div className="mx_AuthBody_did-not-receive">
|
<div className="mx_AuthBody_did-not-receive">
|
||||||
<span className="mx_VerifyEMailDialog_text-light">{_t("auth|check_email_resend_prompt")}</span>
|
<span className="mx_VerifyEMailDialog_text-light">{_t("auth|check_email_resend_prompt")}</span>
|
||||||
<Tooltip label={_t("auth|check_email_resend_tooltip")} side="top" open={tooltipVisible}>
|
<Tooltip label={_t("auth|check_email_resend_tooltip")} placement="top" open={tooltipVisible}>
|
||||||
<AccessibleButton className="mx_AuthBody_resend-button" kind="link" onClick={onResendClickFn}>
|
<AccessibleButton className="mx_AuthBody_resend-button" kind="link" onClick={onResendClickFn}>
|
||||||
<RetryIcon className="mx_Icon mx_Icon_16" />
|
<RetryIcon className="mx_Icon mx_Icon_16" />
|
||||||
{_t("action|resend")}
|
{_t("action|resend")}
|
||||||
|
|
|
@ -65,7 +65,7 @@ export const VerifyEmailModal: React.FC<Props> = ({
|
||||||
|
|
||||||
<div className="mx_AuthBody_did-not-receive">
|
<div className="mx_AuthBody_did-not-receive">
|
||||||
<span className="mx_VerifyEMailDialog_text-light">{_t("auth|check_email_resend_prompt")}</span>
|
<span className="mx_VerifyEMailDialog_text-light">{_t("auth|check_email_resend_prompt")}</span>
|
||||||
<Tooltip label={_t("auth|check_email_resend_tooltip")} side="top" open={tooltipVisible}>
|
<Tooltip label={_t("auth|check_email_resend_tooltip")} placement="top" open={tooltipVisible}>
|
||||||
<AccessibleButton className="mx_AuthBody_resend-button" kind="link" onClick={onResendClickFn}>
|
<AccessibleButton className="mx_AuthBody_resend-button" kind="link" onClick={onResendClickFn}>
|
||||||
<RetryIcon className="mx_Icon mx_Icon_16" />
|
<RetryIcon className="mx_Icon mx_Icon_16" />
|
||||||
{_t("action|resend")}
|
{_t("action|resend")}
|
||||||
|
|
|
@ -218,7 +218,7 @@ export default class DecoratedRoomAvatar extends React.PureComponent<IProps, ISt
|
||||||
viewAvatarOnClick={this.props.viewAvatarOnClick}
|
viewAvatarOnClick={this.props.viewAvatarOnClick}
|
||||||
/>
|
/>
|
||||||
{icon && (
|
{icon && (
|
||||||
<Tooltip label={tooltipText(this.state.icon)!} side="bottom">
|
<Tooltip label={tooltipText(this.state.icon)!} placement="bottom">
|
||||||
{icon}
|
{icon}
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
)}
|
)}
|
||||||
|
|
|
@ -43,7 +43,7 @@ export default class InfoTooltip extends React.PureComponent<TooltipProps> {
|
||||||
|
|
||||||
// Tooltip are forced on the right for a more natural feel to them on info icons
|
// Tooltip are forced on the right for a more natural feel to them on info icons
|
||||||
return (
|
return (
|
||||||
<Tooltip label={tooltip || title} side="right">
|
<Tooltip label={tooltip || title} placement="right">
|
||||||
<div className={classNames("mx_InfoTooltip", className)} tabIndex={this.props.tabIndex ?? 0}>
|
<div className={classNames("mx_InfoTooltip", className)} tabIndex={this.props.tabIndex ?? 0}>
|
||||||
<span className={classNames("mx_InfoTooltip_icon", iconClassName)} aria-label={title} />
|
<span className={classNames("mx_InfoTooltip_icon", iconClassName)} aria-label={title} />
|
||||||
{children}
|
{children}
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React, { MutableRefObject, ReactNode } from "react";
|
import React, { MutableRefObject, ReactNode } from "react";
|
||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import { isNullOrUndefined } from "matrix-js-sdk/src/utils";
|
import { isNullOrUndefined } from "matrix-js-sdk/src/utils";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import dis from "../../../dispatcher/dispatcher";
|
import dis from "../../../dispatcher/dispatcher";
|
||||||
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../contexts/MatrixClientContext";
|
||||||
|
@ -177,11 +176,9 @@ export default class PersistedElement extends React.Component<IProps> {
|
||||||
private renderApp(): void {
|
private renderApp(): void {
|
||||||
const content = (
|
const content = (
|
||||||
<MatrixClientContext.Provider value={MatrixClientPeg.safeGet()}>
|
<MatrixClientContext.Provider value={MatrixClientPeg.safeGet()}>
|
||||||
<TooltipProvider>
|
<div ref={this.collectChild} style={this.props.style}>
|
||||||
<div ref={this.collectChild} style={this.props.style}>
|
{this.props.children}
|
||||||
{this.props.children}
|
</div>
|
||||||
</div>
|
|
||||||
</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -151,7 +151,7 @@ export const Pill: React.FC<PillProps> = ({ type: propType, url, inMessage, room
|
||||||
<Tooltip
|
<Tooltip
|
||||||
label={resourceId ?? ""}
|
label={resourceId ?? ""}
|
||||||
open={resourceId ? undefined : false}
|
open={resourceId ? undefined : false}
|
||||||
side="right"
|
placement="right"
|
||||||
isTriggerInteractive={isAnchor}
|
isTriggerInteractive={isAnchor}
|
||||||
>
|
>
|
||||||
{isAnchor ? (
|
{isAnchor ? (
|
||||||
|
|
|
@ -33,7 +33,7 @@ export default class TextWithTooltip extends React.Component<IProps> {
|
||||||
const { className, children, tooltip, tooltipProps } = this.props;
|
const { className, children, tooltip, tooltipProps } = this.props;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip label={tooltip} side="right">
|
<Tooltip label={tooltip} placement="right">
|
||||||
<span className={className} tabIndex={tooltipProps?.tabIndex ?? 0}>
|
<span className={className} tabIndex={tooltipProps?.tabIndex ?? 0}>
|
||||||
{children}
|
{children}
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -69,8 +69,7 @@ export default class MStickerBody extends MImageBody {
|
||||||
if (!content?.body || !content.info?.w) return null;
|
if (!content?.body || !content.info?.w) return null;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
align: "center",
|
placement: "right",
|
||||||
side: "right",
|
|
||||||
label: content.body,
|
label: content.body,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React, { createRef, SyntheticEvent, MouseEvent } from "react";
|
import React, { createRef, SyntheticEvent, MouseEvent } from "react";
|
||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import { MsgType } from "matrix-js-sdk/src/matrix";
|
import { MsgType } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import * as HtmlUtils from "../../../HtmlUtils";
|
import * as HtmlUtils from "../../../HtmlUtils";
|
||||||
import { formatDate } from "../../../DateUtils";
|
import { formatDate } from "../../../DateUtils";
|
||||||
|
@ -349,11 +348,7 @@ export default class TextualBody extends React.Component<IBodyProps, IState> {
|
||||||
|
|
||||||
const reason = node.getAttribute("data-mx-spoiler") ?? undefined;
|
const reason = node.getAttribute("data-mx-spoiler") ?? undefined;
|
||||||
node.removeAttribute("data-mx-spoiler"); // we don't want to recurse
|
node.removeAttribute("data-mx-spoiler"); // we don't want to recurse
|
||||||
const spoiler = (
|
const spoiler = <Spoiler reason={reason} contentHtml={node.outerHTML} />;
|
||||||
<TooltipProvider>
|
|
||||||
<Spoiler reason={reason} contentHtml={node.outerHTML} />
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
|
||||||
|
|
||||||
ReactDOM.render(spoiler, spoilerContainer);
|
ReactDOM.render(spoiler, spoilerContainer);
|
||||||
node.parentNode?.replaceChild(spoilerContainer, node);
|
node.parentNode?.replaceChild(spoilerContainer, node);
|
||||||
|
|
|
@ -36,7 +36,7 @@ export const PollListItem: React.FC<Props> = ({ event, onClick }) => {
|
||||||
const formattedDate = formatLocalDateShort(event.getTs());
|
const formattedDate = formatLocalDateShort(event.getTs());
|
||||||
return (
|
return (
|
||||||
<li data-testid={`pollListItem-${event.getId()!}`} className="mx_PollListItem" onClick={onClick}>
|
<li data-testid={`pollListItem-${event.getId()!}`} className="mx_PollListItem" onClick={onClick}>
|
||||||
<Tooltip label={_t("right_panel|poll|view_poll")} side="top" isTriggerInteractive={false}>
|
<Tooltip label={_t("right_panel|poll|view_poll")} placement="top" isTriggerInteractive={false}>
|
||||||
<div className="mx_PollListItem_content">
|
<div className="mx_PollListItem_content">
|
||||||
<span>{formattedDate}</span>
|
<span>{formattedDate}</span>
|
||||||
<PollIcon className="mx_PollListItem_icon" />
|
<PollIcon className="mx_PollListItem_icon" />
|
||||||
|
|
|
@ -99,7 +99,7 @@ export const PollListItemEnded: React.FC<Props> = ({ event, poll, onClick }) =>
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<li data-testid={`pollListItem-${event.getId()!}`} className="mx_PollListItemEnded" onClick={onClick}>
|
<li data-testid={`pollListItem-${event.getId()!}`} className="mx_PollListItemEnded" onClick={onClick}>
|
||||||
<Tooltip label={_t("right_panel|poll|view_poll")} side="top" isTriggerInteractive={false}>
|
<Tooltip label={_t("right_panel|poll|view_poll")} placement="top" isTriggerInteractive={false}>
|
||||||
<div className="mx_PollListItemEnded_content">
|
<div className="mx_PollListItemEnded_content">
|
||||||
<div className="mx_PollListItemEnded_title">
|
<div className="mx_PollListItemEnded_title">
|
||||||
<PollIcon className="mx_PollListItemEnded_icon" />
|
<PollIcon className="mx_PollListItemEnded_icon" />
|
||||||
|
|
|
@ -405,7 +405,7 @@ const RoomSummaryCard: React.FC<IProps> = ({ room, permalinkCreator, onClose, on
|
||||||
align="center"
|
align="center"
|
||||||
justify="space-between"
|
justify="space-between"
|
||||||
>
|
>
|
||||||
<Tooltip label={_t("action|search")} side="right">
|
<Tooltip label={_t("action|search")} placement="right">
|
||||||
<button
|
<button
|
||||||
className="mx_RoomSummaryCard_searchBtn"
|
className="mx_RoomSummaryCard_searchBtn"
|
||||||
data-testid="summary-search"
|
data-testid="summary-search"
|
||||||
|
|
|
@ -48,7 +48,7 @@ interface Props {
|
||||||
size?: number;
|
size?: number;
|
||||||
onClick?: () => void;
|
onClick?: () => void;
|
||||||
hideTooltip?: boolean;
|
hideTooltip?: boolean;
|
||||||
tooltipSide?: ComponentProps<typeof Tooltip>["side"];
|
tooltipPlacement?: ComponentProps<typeof Tooltip>["placement"];
|
||||||
bordered?: boolean;
|
bordered?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -69,7 +69,7 @@ const E2EIcon: React.FC<XOR<UserProps, RoomProps>> = ({
|
||||||
size,
|
size,
|
||||||
onClick,
|
onClick,
|
||||||
hideTooltip,
|
hideTooltip,
|
||||||
tooltipSide,
|
tooltipPlacement,
|
||||||
bordered,
|
bordered,
|
||||||
}) => {
|
}) => {
|
||||||
const classes = classNames(
|
const classes = classNames(
|
||||||
|
@ -109,7 +109,7 @@ const E2EIcon: React.FC<XOR<UserProps, RoomProps>> = ({
|
||||||
}
|
}
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip label={label} side={tooltipSide} isTriggerInteractive={!!onClick}>
|
<Tooltip label={label} placement={tooltipPlacement} isTriggerInteractive={!!onClick}>
|
||||||
{content}
|
{content}
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
);
|
);
|
||||||
|
|
|
@ -1546,7 +1546,7 @@ function SentReceipt({ messageState }: ISentReceiptProps): JSX.Element {
|
||||||
return (
|
return (
|
||||||
<div className="mx_EventTile_msgOption">
|
<div className="mx_EventTile_msgOption">
|
||||||
<div className="mx_ReadReceiptGroup">
|
<div className="mx_ReadReceiptGroup">
|
||||||
<Tooltip label={label} side="top" align="end">
|
<Tooltip label={label} placement="top-end">
|
||||||
<div className="mx_ReadReceiptGroup_button">
|
<div className="mx_ReadReceiptGroup_button">
|
||||||
<span className="mx_ReadReceiptGroup_container">
|
<span className="mx_ReadReceiptGroup_container">
|
||||||
<span className={receiptClasses}>{nonCssBadge}</span>
|
<span className={receiptClasses}>{nonCssBadge}</span>
|
||||||
|
|
|
@ -784,7 +784,7 @@ export default class RoomHeader extends React.Component<IProps, IState> {
|
||||||
const icon = this.props.viewingCall ? (
|
const icon = this.props.viewingCall ? (
|
||||||
<div className="mx_LegacyRoomHeader_icon mx_LegacyRoomHeader_icon_video" />
|
<div className="mx_LegacyRoomHeader_icon mx_LegacyRoomHeader_icon_video" />
|
||||||
) : this.props.e2eStatus ? (
|
) : this.props.e2eStatus ? (
|
||||||
<E2EIcon className="mx_LegacyRoomHeader_icon" status={this.props.e2eStatus} tooltipSide="bottom" />
|
<E2EIcon className="mx_LegacyRoomHeader_icon" status={this.props.e2eStatus} tooltipPlacement="bottom" />
|
||||||
) : // If we're expecting an E2EE status to come in, but it hasn't
|
) : // If we're expecting an E2EE status to come in, but it hasn't
|
||||||
// yet been loaded, insert a blank div to reserve space
|
// yet been loaded, insert a blank div to reserve space
|
||||||
this.client.isRoomEncrypted(this.props.room.roomId) && this.client.isCryptoEnabled() ? (
|
this.client.isRoomEncrypted(this.props.room.roomId) && this.client.isCryptoEnabled() ? (
|
||||||
|
|
|
@ -121,7 +121,7 @@ export default class NotificationBadge extends React.PureComponent<XOR<IProps, I
|
||||||
|
|
||||||
if (showUnsentTooltip && notification.level === NotificationLevel.Unsent) {
|
if (showUnsentTooltip && notification.level === NotificationLevel.Unsent) {
|
||||||
return (
|
return (
|
||||||
<Tooltip label={_t("notifications|message_didnt_send")} side="right">
|
<Tooltip label={_t("notifications|message_didnt_send")} placement="right">
|
||||||
{badge}
|
{badge}
|
||||||
</Tooltip>
|
</Tooltip>
|
||||||
);
|
);
|
||||||
|
|
|
@ -252,7 +252,7 @@ export default function RoomHeader({
|
||||||
<span className="mx_RoomHeader_truncated mx_lineClamp">{roomName}</span>
|
<span className="mx_RoomHeader_truncated mx_lineClamp">{roomName}</span>
|
||||||
|
|
||||||
{!isDirectMessage && roomState.getJoinRule() === JoinRule.Public && (
|
{!isDirectMessage && roomState.getJoinRule() === JoinRule.Public && (
|
||||||
<Tooltip label={_t("common|public_room")} side="right">
|
<Tooltip label={_t("common|public_room")} placement="right">
|
||||||
<PublicIcon
|
<PublicIcon
|
||||||
width="16px"
|
width="16px"
|
||||||
height="16px"
|
height="16px"
|
||||||
|
@ -263,7 +263,7 @@ export default function RoomHeader({
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{isDirectMessage && e2eStatus === E2EStatus.Verified && (
|
{isDirectMessage && e2eStatus === E2EStatus.Verified && (
|
||||||
<Tooltip label={_t("common|verified")} side="right">
|
<Tooltip label={_t("common|verified")} placement="right">
|
||||||
<VerifiedIcon
|
<VerifiedIcon
|
||||||
width="16px"
|
width="16px"
|
||||||
height="16px"
|
height="16px"
|
||||||
|
@ -274,7 +274,7 @@ export default function RoomHeader({
|
||||||
)}
|
)}
|
||||||
|
|
||||||
{isDirectMessage && e2eStatus === E2EStatus.Warning && (
|
{isDirectMessage && e2eStatus === E2EStatus.Warning && (
|
||||||
<Tooltip label={_t("room|header_untrusted_label")} side="right">
|
<Tooltip label={_t("room|header_untrusted_label")} placement="right">
|
||||||
<ErrorIcon
|
<ErrorIcon
|
||||||
width="16px"
|
width="16px"
|
||||||
height="16px"
|
height="16px"
|
||||||
|
|
|
@ -40,7 +40,7 @@ const FilteredDeviceListHeader: React.FC<Props> = ({
|
||||||
return (
|
return (
|
||||||
<div className="mx_FilteredDeviceListHeader" {...rest}>
|
<div className="mx_FilteredDeviceListHeader" {...rest}>
|
||||||
{!isSelectDisabled && (
|
{!isSelectDisabled && (
|
||||||
<Tooltip label={checkboxLabel} side="top" isTriggerInteractive={false}>
|
<Tooltip label={checkboxLabel} placement="top" isTriggerInteractive={false}>
|
||||||
<StyledCheckbox
|
<StyledCheckbox
|
||||||
kind={CheckboxStyle.Solid}
|
kind={CheckboxStyle.Solid}
|
||||||
checked={isAllSelected}
|
checked={isAllSelected}
|
||||||
|
|
|
@ -45,7 +45,7 @@ export const ThreadsActivityCentreButton = forwardRef<HTMLButtonElement, Threads
|
||||||
const openTooltip = displayLabel ? false : undefined;
|
const openTooltip = displayLabel ? false : undefined;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<Tooltip label={_t("common|threads")} side="right" open={openTooltip}>
|
<Tooltip label={_t("common|threads")} placement="right" open={openTooltip}>
|
||||||
<IconButton
|
<IconButton
|
||||||
aria-label={_t("common|threads")}
|
aria-label={_t("common|threads")}
|
||||||
className={classNames("mx_ThreadsActivityCentreButton", { expanded: displayLabel })}
|
className={classNames("mx_ThreadsActivityCentreButton", { expanded: displayLabel })}
|
||||||
|
|
|
@ -20,7 +20,7 @@ import { MatrixEvent } from "matrix-js-sdk/src/matrix";
|
||||||
import { MatrixRTCSessionManagerEvents } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSessionManager";
|
import { MatrixRTCSessionManagerEvents } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSessionManager";
|
||||||
// eslint-disable-next-line no-restricted-imports
|
// eslint-disable-next-line no-restricted-imports
|
||||||
import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession";
|
import { MatrixRTCSession } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSession";
|
||||||
import { Button, Tooltip, TooltipProvider } from "@vector-im/compound-web";
|
import { Button, Tooltip } from "@vector-im/compound-web";
|
||||||
import { Icon as VideoCallIcon } from "@vector-im/compound-design-tokens/icons/video-call-solid.svg";
|
import { Icon as VideoCallIcon } from "@vector-im/compound-design-tokens/icons/video-call-solid.svg";
|
||||||
|
|
||||||
import { _t } from "../languageHandler";
|
import { _t } from "../languageHandler";
|
||||||
|
@ -168,7 +168,7 @@ export function IncomingCallToast({ notifyEvent }: Props): JSX.Element {
|
||||||
);
|
);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<TooltipProvider>
|
<>
|
||||||
<div>
|
<div>
|
||||||
<RoomAvatar room={room ?? undefined} size="24px" />
|
<RoomAvatar room={room ?? undefined} size="24px" />
|
||||||
</div>
|
</div>
|
||||||
|
@ -200,6 +200,6 @@ export function IncomingCallToast({ notifyEvent }: Props): JSX.Element {
|
||||||
onClick={onCloseClick}
|
onClick={onCloseClick}
|
||||||
title={_t("action|close")}
|
title={_t("action|close")}
|
||||||
/>
|
/>
|
||||||
</TooltipProvider>
|
</>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,7 +20,6 @@ import { Room, MatrixEvent, EventType, MsgType } from "matrix-js-sdk/src/matrix"
|
||||||
import { renderToStaticMarkup } from "react-dom/server";
|
import { renderToStaticMarkup } from "react-dom/server";
|
||||||
import { logger } from "matrix-js-sdk/src/logger";
|
import { logger } from "matrix-js-sdk/src/logger";
|
||||||
import escapeHtml from "escape-html";
|
import escapeHtml from "escape-html";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import Exporter from "./Exporter";
|
import Exporter from "./Exporter";
|
||||||
import { mediaFromMxc } from "../../customisations/Media";
|
import { mediaFromMxc } from "../../customisations/Media";
|
||||||
|
@ -284,27 +283,25 @@ export default class HTMLExporter extends Exporter {
|
||||||
return (
|
return (
|
||||||
<div className="mx_Export_EventWrapper" id={mxEv.getId()}>
|
<div className="mx_Export_EventWrapper" id={mxEv.getId()}>
|
||||||
<MatrixClientContext.Provider value={this.room.client}>
|
<MatrixClientContext.Provider value={this.room.client}>
|
||||||
<TooltipProvider>
|
<EventTile
|
||||||
<EventTile
|
mxEvent={mxEv}
|
||||||
mxEvent={mxEv}
|
continuation={continuation}
|
||||||
continuation={continuation}
|
isRedacted={mxEv.isRedacted()}
|
||||||
isRedacted={mxEv.isRedacted()}
|
replacingEventId={mxEv.replacingEventId()}
|
||||||
replacingEventId={mxEv.replacingEventId()}
|
forExport={true}
|
||||||
forExport={true}
|
alwaysShowTimestamps={true}
|
||||||
alwaysShowTimestamps={true}
|
showUrlPreview={false}
|
||||||
showUrlPreview={false}
|
checkUnmounting={() => false}
|
||||||
checkUnmounting={() => false}
|
isTwelveHour={false}
|
||||||
isTwelveHour={false}
|
last={false}
|
||||||
last={false}
|
lastInSection={false}
|
||||||
lastInSection={false}
|
permalinkCreator={this.permalinkCreator}
|
||||||
permalinkCreator={this.permalinkCreator}
|
lastSuccessful={false}
|
||||||
lastSuccessful={false}
|
isSelectedEvent={false}
|
||||||
isSelectedEvent={false}
|
showReactions={false}
|
||||||
showReactions={false}
|
layout={Layout.Group}
|
||||||
layout={Layout.Group}
|
showReadReceipts={false}
|
||||||
showReadReceipts={false}
|
/>
|
||||||
/>
|
|
||||||
</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
|
@ -18,7 +18,6 @@ import React from "react";
|
||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import { PushProcessor } from "matrix-js-sdk/src/pushprocessor";
|
import { PushProcessor } from "matrix-js-sdk/src/pushprocessor";
|
||||||
import { MatrixClient, MatrixEvent, RuleId } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, MatrixEvent, RuleId } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import SettingsStore from "../settings/SettingsStore";
|
import SettingsStore from "../settings/SettingsStore";
|
||||||
import { Pill, pillRoomNotifLen, pillRoomNotifPos, PillType } from "../components/views/elements/Pill";
|
import { Pill, pillRoomNotifLen, pillRoomNotifPos, PillType } from "../components/views/elements/Pill";
|
||||||
|
@ -84,9 +83,7 @@ export function pillifyLinks(
|
||||||
const pillContainer = document.createElement("span");
|
const pillContainer = document.createElement("span");
|
||||||
|
|
||||||
const pill = (
|
const pill = (
|
||||||
<TooltipProvider>
|
<Pill url={href} inMessage={true} room={room} shouldShowPillAvatar={shouldShowPillAvatar} />
|
||||||
<Pill url={href} inMessage={true} room={room} shouldShowPillAvatar={shouldShowPillAvatar} />
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
ReactDOM.render(pill, pillContainer);
|
ReactDOM.render(pill, pillContainer);
|
||||||
|
@ -141,14 +138,12 @@ export function pillifyLinks(
|
||||||
|
|
||||||
const pillContainer = document.createElement("span");
|
const pillContainer = document.createElement("span");
|
||||||
const pill = (
|
const pill = (
|
||||||
<TooltipProvider>
|
<Pill
|
||||||
<Pill
|
type={PillType.AtRoomMention}
|
||||||
type={PillType.AtRoomMention}
|
inMessage={true}
|
||||||
inMessage={true}
|
room={room}
|
||||||
room={room}
|
shouldShowPillAvatar={shouldShowPillAvatar}
|
||||||
shouldShowPillAvatar={shouldShowPillAvatar}
|
/>
|
||||||
/>
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
ReactDOM.render(pill, pillContainer);
|
ReactDOM.render(pill, pillContainer);
|
||||||
|
|
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import ReactDOM from "react-dom";
|
import ReactDOM from "react-dom";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import PlatformPeg from "../PlatformPeg";
|
import PlatformPeg from "../PlatformPeg";
|
||||||
import LinkWithTooltip from "../components/views/elements/LinkWithTooltip";
|
import LinkWithTooltip from "../components/views/elements/LinkWithTooltip";
|
||||||
|
@ -61,11 +60,9 @@ export function tooltipifyLinks(rootNodes: ArrayLike<Element>, ignoredNodes: Ele
|
||||||
// wrapping the link with the LinkWithTooltip component, keeping the same children. Ideally we'd do this
|
// wrapping the link with the LinkWithTooltip component, keeping the same children. Ideally we'd do this
|
||||||
// without the superfluous span but this is not something React trivially supports at this time.
|
// without the superfluous span but this is not something React trivially supports at this time.
|
||||||
const tooltip = (
|
const tooltip = (
|
||||||
<TooltipProvider>
|
<LinkWithTooltip tooltip={href}>
|
||||||
<LinkWithTooltip tooltip={href}>
|
<span dangerouslySetInnerHTML={{ __html: node.innerHTML }} />
|
||||||
<span dangerouslySetInnerHTML={{ __html: node.innerHTML }} />
|
</LinkWithTooltip>
|
||||||
</LinkWithTooltip>
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
ReactDOM.render(tooltip, node);
|
ReactDOM.render(tooltip, node);
|
||||||
|
|
|
@ -20,7 +20,6 @@ import { EventEmitter } from "events";
|
||||||
import { MatrixEvent, Room, RoomMember, Thread, ReceiptType } from "matrix-js-sdk/src/matrix";
|
import { MatrixEvent, Room, RoomMember, Thread, ReceiptType } from "matrix-js-sdk/src/matrix";
|
||||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
import { render } from "@testing-library/react";
|
import { render } from "@testing-library/react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import MessagePanel, { shouldFormContinuation } from "../../../src/components/structures/MessagePanel";
|
import MessagePanel, { shouldFormContinuation } from "../../../src/components/structures/MessagePanel";
|
||||||
import SettingsStore from "../../../src/settings/SettingsStore";
|
import SettingsStore from "../../../src/settings/SettingsStore";
|
||||||
|
@ -99,9 +98,7 @@ describe("MessagePanel", function () {
|
||||||
const getComponent = (props = {}, roomContext: Partial<IRoomState> = {}) => (
|
const getComponent = (props = {}, roomContext: Partial<IRoomState> = {}) => (
|
||||||
<MatrixClientContext.Provider value={client}>
|
<MatrixClientContext.Provider value={client}>
|
||||||
<RoomContext.Provider value={{ ...defaultRoomContext, ...roomContext }}>
|
<RoomContext.Provider value={{ ...defaultRoomContext, ...roomContext }}>
|
||||||
<TooltipProvider>
|
<MessagePanel {...defaultProps} {...props} />
|
||||||
<MessagePanel {...defaultProps} {...props} />
|
|
||||||
</TooltipProvider>
|
|
||||||
</RoomContext.Provider>
|
</RoomContext.Provider>
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
);
|
);
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { render, screen, waitFor } from "@testing-library/react";
|
||||||
import { jest } from "@jest/globals";
|
import { jest } from "@jest/globals";
|
||||||
import { mocked, MockedObject } from "jest-mock";
|
import { mocked, MockedObject } from "jest-mock";
|
||||||
import { MatrixClient } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import _RightPanel from "../../../src/components/structures/RightPanel";
|
import _RightPanel from "../../../src/components/structures/RightPanel";
|
||||||
import { MatrixClientPeg } from "../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../src/MatrixClientPeg";
|
||||||
|
@ -123,7 +122,6 @@ describe("RightPanel", () => {
|
||||||
resizeNotifier={resizeNotifier}
|
resizeNotifier={resizeNotifier}
|
||||||
permalinkCreator={new RoomPermalinkCreator(r1, r1.roomId)}
|
permalinkCreator={new RoomPermalinkCreator(r1, r1.roomId)}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
// Wait for RPS room 1 updates to fire
|
// Wait for RPS room 1 updates to fire
|
||||||
const rpsUpdated = waitForRpsUpdate();
|
const rpsUpdated = waitForRpsUpdate();
|
||||||
|
|
|
@ -33,7 +33,6 @@ import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
import { MEGOLM_ALGORITHM } from "matrix-js-sdk/src/crypto/olmlib";
|
import { MEGOLM_ALGORITHM } from "matrix-js-sdk/src/crypto/olmlib";
|
||||||
import { fireEvent, render, screen, RenderResult, waitForElementToBeRemoved, waitFor } from "@testing-library/react";
|
import { fireEvent, render, screen, RenderResult, waitForElementToBeRemoved, waitFor } from "@testing-library/react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
stubClient,
|
stubClient,
|
||||||
|
@ -145,7 +144,6 @@ describe("RoomView", () => {
|
||||||
wrappedRef={ref as any}
|
wrappedRef={ref as any}
|
||||||
/>
|
/>
|
||||||
</SDKContext.Provider>,
|
</SDKContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
return roomView;
|
return roomView;
|
||||||
|
@ -183,7 +181,6 @@ describe("RoomView", () => {
|
||||||
onRegistered={jest.fn()}
|
onRegistered={jest.fn()}
|
||||||
/>
|
/>
|
||||||
</SDKContext.Provider>,
|
</SDKContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
return roomView;
|
return roomView;
|
||||||
|
|
|
@ -20,7 +20,6 @@ import { fireEvent, render, screen, waitFor, waitForElementToBeRemoved } from "@
|
||||||
import { HierarchyRoom, JoinRule, MatrixClient, Room } from "matrix-js-sdk/src/matrix";
|
import { HierarchyRoom, JoinRule, MatrixClient, Room } from "matrix-js-sdk/src/matrix";
|
||||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../src/MatrixClientPeg";
|
||||||
import { mkStubRoom, stubClient } from "../../test-utils";
|
import { mkStubRoom, stubClient } from "../../test-utils";
|
||||||
|
@ -287,9 +286,7 @@ describe("SpaceHierarchy", () => {
|
||||||
};
|
};
|
||||||
const getComponent = (props = {}): React.ReactElement => (
|
const getComponent = (props = {}): React.ReactElement => (
|
||||||
<MatrixClientContext.Provider value={client}>
|
<MatrixClientContext.Provider value={client}>
|
||||||
<TooltipProvider>
|
<SpaceHierarchy {...defaultProps} {...props} />
|
||||||
<SpaceHierarchy {...defaultProps} {...props} />
|
|
||||||
</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ import {
|
||||||
FeatureSupport,
|
FeatureSupport,
|
||||||
Thread,
|
Thread,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import ThreadPanel, { ThreadFilterType, ThreadPanelHeader } from "../../../src/components/structures/ThreadPanel";
|
import ThreadPanel, { ThreadFilterType, ThreadPanelHeader } from "../../../src/components/structures/ThreadPanel";
|
||||||
import MatrixClientContext from "../../../src/contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../src/contexts/MatrixClientContext";
|
||||||
|
@ -51,7 +50,6 @@ describe("ThreadPanel", () => {
|
||||||
filterOption={ThreadFilterType.All}
|
filterOption={ThreadFilterType.All}
|
||||||
setFilterOption={() => undefined}
|
setFilterOption={() => undefined}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
expect(asFragment()).toMatchSnapshot();
|
expect(asFragment()).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
@ -63,7 +61,6 @@ describe("ThreadPanel", () => {
|
||||||
filterOption={ThreadFilterType.My}
|
filterOption={ThreadFilterType.My}
|
||||||
setFilterOption={() => undefined}
|
setFilterOption={() => undefined}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
expect(asFragment()).toMatchSnapshot();
|
expect(asFragment()).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
@ -75,7 +72,6 @@ describe("ThreadPanel", () => {
|
||||||
filterOption={ThreadFilterType.All}
|
filterOption={ThreadFilterType.All}
|
||||||
setFilterOption={() => undefined}
|
setFilterOption={() => undefined}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
expect(asFragment()).toMatchSnapshot();
|
expect(asFragment()).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
@ -87,7 +83,6 @@ describe("ThreadPanel", () => {
|
||||||
filterOption={ThreadFilterType.All}
|
filterOption={ThreadFilterType.All}
|
||||||
setFilterOption={() => undefined}
|
setFilterOption={() => undefined}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
const found = container.querySelector(".mx_ThreadPanel_dropdown");
|
const found = container.querySelector(".mx_ThreadPanel_dropdown");
|
||||||
expect(found).toBeTruthy();
|
expect(found).toBeTruthy();
|
||||||
|
@ -103,7 +98,6 @@ describe("ThreadPanel", () => {
|
||||||
filterOption={ThreadFilterType.All}
|
filterOption={ThreadFilterType.All}
|
||||||
setFilterOption={() => undefined}
|
setFilterOption={() => undefined}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
fireEvent.click(container.querySelector(".mx_ThreadPanel_dropdown")!);
|
fireEvent.click(container.querySelector(".mx_ThreadPanel_dropdown")!);
|
||||||
const found = screen.queryAllByRole("menuitemradio");
|
const found = screen.queryAllByRole("menuitemradio");
|
||||||
|
@ -126,13 +120,11 @@ describe("ThreadPanel", () => {
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<RoomContext.Provider value={roomContextObject}>
|
<RoomContext.Provider value={roomContextObject}>
|
||||||
<MatrixClientContext.Provider value={mockClient}>
|
<MatrixClientContext.Provider value={mockClient}>
|
||||||
<TooltipProvider>
|
<ThreadPanelHeader
|
||||||
<ThreadPanelHeader
|
empty={false}
|
||||||
empty={false}
|
filterOption={ThreadFilterType.All}
|
||||||
filterOption={ThreadFilterType.All}
|
setFilterOption={() => undefined}
|
||||||
setFilterOption={() => undefined}
|
/>
|
||||||
/>
|
|
||||||
</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
</RoomContext.Provider>,
|
</RoomContext.Provider>,
|
||||||
);
|
);
|
||||||
|
@ -146,13 +138,11 @@ describe("ThreadPanel", () => {
|
||||||
const mockClient = createTestClient();
|
const mockClient = createTestClient();
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<MatrixClientContext.Provider value={mockClient}>
|
<MatrixClientContext.Provider value={mockClient}>
|
||||||
<TooltipProvider>
|
<ThreadPanelHeader
|
||||||
<ThreadPanelHeader
|
empty={false}
|
||||||
empty={false}
|
filterOption={ThreadFilterType.All}
|
||||||
filterOption={ThreadFilterType.All}
|
setFilterOption={() => undefined}
|
||||||
setFilterOption={() => undefined}
|
/>
|
||||||
/>
|
|
||||||
</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>,
|
</MatrixClientContext.Provider>,
|
||||||
);
|
);
|
||||||
fireEvent.click(getByRole(container, "button", { name: "Mark all as read" }));
|
fireEvent.click(getByRole(container, "button", { name: "Mark all as read" }));
|
||||||
|
@ -308,7 +298,7 @@ describe("ThreadPanel", () => {
|
||||||
myThreads!.addLiveEvent(ownThread.rootEvent);
|
myThreads!.addLiveEvent(ownThread.rootEvent);
|
||||||
|
|
||||||
let events: EventData[] = [];
|
let events: EventData[] = [];
|
||||||
const renderResult = render(<TestThreadPanel />, { wrapper: TooltipProvider });
|
const renderResult = render(<TestThreadPanel />);
|
||||||
await waitFor(() => expect(renderResult.container.querySelector(".mx_AutoHideScrollbar")).toBeFalsy());
|
await waitFor(() => expect(renderResult.container.querySelector(".mx_AutoHideScrollbar")).toBeFalsy());
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
events = findEvents(renderResult.container);
|
events = findEvents(renderResult.container);
|
||||||
|
@ -354,7 +344,7 @@ describe("ThreadPanel", () => {
|
||||||
allThreads!.addLiveEvent(otherThread.rootEvent);
|
allThreads!.addLiveEvent(otherThread.rootEvent);
|
||||||
|
|
||||||
let events: EventData[] = [];
|
let events: EventData[] = [];
|
||||||
const renderResult = render(<TestThreadPanel />, { wrapper: TooltipProvider });
|
const renderResult = render(<TestThreadPanel />);
|
||||||
await waitFor(() => expect(renderResult.container.querySelector(".mx_AutoHideScrollbar")).toBeFalsy());
|
await waitFor(() => expect(renderResult.container.querySelector(".mx_AutoHideScrollbar")).toBeFalsy());
|
||||||
await waitFor(() => {
|
await waitFor(() => {
|
||||||
events = findEvents(renderResult.container);
|
events = findEvents(renderResult.container);
|
||||||
|
|
|
@ -39,7 +39,6 @@ import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
import React, { createRef } from "react";
|
import React, { createRef } from "react";
|
||||||
import { Mocked, mocked } from "jest-mock";
|
import { Mocked, mocked } from "jest-mock";
|
||||||
import { forEachRight } from "lodash";
|
import { forEachRight } from "lodash";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import TimelinePanel from "../../../src/components/structures/TimelinePanel";
|
import TimelinePanel from "../../../src/components/structures/TimelinePanel";
|
||||||
import MatrixClientContext from "../../../src/contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../src/contexts/MatrixClientContext";
|
||||||
|
@ -212,7 +211,6 @@ describe("TimelinePanel", () => {
|
||||||
manageReadReceipts={true}
|
manageReadReceipts={true}
|
||||||
ref={ref}
|
ref={ref}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
timelinePanel = ref.current!;
|
timelinePanel = ref.current!;
|
||||||
|
@ -392,7 +390,7 @@ describe("TimelinePanel", () => {
|
||||||
onEventScrolledIntoView: jest.fn(),
|
onEventScrolledIntoView: jest.fn(),
|
||||||
};
|
};
|
||||||
|
|
||||||
const { rerender } = render(<TimelinePanel {...props} />, { wrapper: TooltipProvider });
|
const { rerender } = render(<TimelinePanel {...props} />);
|
||||||
expect(props.onEventScrolledIntoView).toHaveBeenCalledWith(undefined);
|
expect(props.onEventScrolledIntoView).toHaveBeenCalledWith(undefined);
|
||||||
props.eventId = events[1].getId();
|
props.eventId = events[1].getId();
|
||||||
rerender(<TimelinePanel {...props} />);
|
rerender(<TimelinePanel {...props} />);
|
||||||
|
@ -409,9 +407,7 @@ describe("TimelinePanel", () => {
|
||||||
setupPagination(client, timeline, eventsPage1, null);
|
setupPagination(client, timeline, eventsPage1, null);
|
||||||
|
|
||||||
await withScrollPanelMountSpy(async (mountSpy) => {
|
await withScrollPanelMountSpy(async (mountSpy) => {
|
||||||
const { container } = render(<TimelinePanel {...getProps(room, events)} timelineSet={timelineSet} />, {
|
const { container } = render(<TimelinePanel {...getProps(room, events)} timelineSet={timelineSet} />, {});
|
||||||
wrapper: TooltipProvider,
|
|
||||||
});
|
|
||||||
|
|
||||||
await waitFor(() => expectEvents(container, [events[1]]));
|
await waitFor(() => expectEvents(container, [events[1]]));
|
||||||
|
|
||||||
|
@ -428,7 +424,7 @@ describe("TimelinePanel", () => {
|
||||||
const [, room, events] = setupTestData();
|
const [, room, events] = setupTestData();
|
||||||
|
|
||||||
await withScrollPanelMountSpy(async (mountSpy) => {
|
await withScrollPanelMountSpy(async (mountSpy) => {
|
||||||
const { container } = render(<TimelinePanel {...getProps(room, events)} />, { wrapper: TooltipProvider });
|
const { container } = render(<TimelinePanel {...getProps(room, events)} />);
|
||||||
|
|
||||||
await waitFor(() => expectEvents(container, [events[0], events[1]]));
|
await waitFor(() => expectEvents(container, [events[0], events[1]]));
|
||||||
|
|
||||||
|
@ -455,7 +451,7 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||||
|
|
||||||
render(<TimelinePanel {...props} />, { wrapper: TooltipProvider });
|
render(<TimelinePanel {...props} />);
|
||||||
|
|
||||||
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
||||||
const data = { timeline: otherTimeline, liveEvent: true };
|
const data = { timeline: otherTimeline, liveEvent: true };
|
||||||
|
@ -471,7 +467,7 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||||
|
|
||||||
render(<TimelinePanel {...props} />, { wrapper: TooltipProvider });
|
render(<TimelinePanel {...props} />);
|
||||||
|
|
||||||
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
||||||
const data = { timeline: props.timelineSet.getLiveTimeline(), liveEvent: false };
|
const data = { timeline: props.timelineSet.getLiveTimeline(), liveEvent: false };
|
||||||
|
@ -487,7 +483,7 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||||
|
|
||||||
render(<TimelinePanel {...props} />, { wrapper: TooltipProvider });
|
render(<TimelinePanel {...props} />);
|
||||||
|
|
||||||
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
||||||
const data = { timeline: props.timelineSet.getLiveTimeline(), liveEvent: false };
|
const data = { timeline: props.timelineSet.getLiveTimeline(), liveEvent: false };
|
||||||
|
@ -504,7 +500,7 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||||
|
|
||||||
render(<TimelinePanel {...props} />, { wrapper: TooltipProvider });
|
render(<TimelinePanel {...props} />);
|
||||||
|
|
||||||
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
const event = new MatrixEvent({ type: RoomEvent.Timeline, origin_server_ts: 0 });
|
||||||
const data = { timeline: props.timelineSet.getLiveTimeline(), liveEvent: true };
|
const data = { timeline: props.timelineSet.getLiveTimeline(), liveEvent: true };
|
||||||
|
@ -527,7 +523,7 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
const paginateSpy = jest.spyOn(TimelineWindow.prototype, "paginate").mockClear();
|
||||||
|
|
||||||
render(<TimelinePanel {...props} />, { wrapper: TooltipProvider });
|
render(<TimelinePanel {...props} />);
|
||||||
|
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
|
|
||||||
|
@ -568,7 +564,6 @@ describe("TimelinePanel", () => {
|
||||||
overlayTimelineSet={overlayTimelineSet}
|
overlayTimelineSet={overlayTimelineSet}
|
||||||
overlayTimelineSetFilter={isCallEvent}
|
overlayTimelineSetFilter={isCallEvent}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await waitFor(() =>
|
await waitFor(() =>
|
||||||
expectEvents(container, [
|
expectEvents(container, [
|
||||||
|
@ -608,7 +603,6 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitFor(() =>
|
await waitFor(() =>
|
||||||
|
@ -640,7 +634,6 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitFor(() =>
|
await waitFor(() =>
|
||||||
|
@ -672,7 +665,6 @@ describe("TimelinePanel", () => {
|
||||||
|
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitFor(() =>
|
await waitFor(() =>
|
||||||
|
@ -707,7 +699,6 @@ describe("TimelinePanel", () => {
|
||||||
timelineSet={timelineSet}
|
timelineSet={timelineSet}
|
||||||
overlayTimelineSet={overlayTimelineSet}
|
overlayTimelineSet={overlayTimelineSet}
|
||||||
/>,
|
/>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitFor(() => expectEvents(container, [overlayEvents[0], events[0]]));
|
await waitFor(() => expectEvents(container, [overlayEvents[0], events[0]]));
|
||||||
|
@ -781,7 +772,6 @@ describe("TimelinePanel", () => {
|
||||||
await withScrollPanelMountSpy(async (mountSpy) => {
|
await withScrollPanelMountSpy(async (mountSpy) => {
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
<TimelinePanel {...getProps(room, events)} overlayTimelineSet={overlayTimelineSet} />,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitFor(() =>
|
await waitFor(() =>
|
||||||
|
@ -894,7 +884,6 @@ describe("TimelinePanel", () => {
|
||||||
<MatrixClientContext.Provider value={client}>
|
<MatrixClientContext.Provider value={client}>
|
||||||
<TimelinePanel timelineSet={allThreads} manageReadReceipts sendReadReceiptOnLoad />
|
<TimelinePanel timelineSet={allThreads} manageReadReceipts sendReadReceiptOnLoad />
|
||||||
</MatrixClientContext.Provider>,
|
</MatrixClientContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await dom.findByText("RootEvent");
|
await dom.findByText("RootEvent");
|
||||||
await dom.findByText("ReplyEvent1");
|
await dom.findByText("ReplyEvent1");
|
||||||
|
@ -948,7 +937,6 @@ describe("TimelinePanel", () => {
|
||||||
<MatrixClientContext.Provider value={client}>
|
<MatrixClientContext.Provider value={client}>
|
||||||
<TimelinePanel timelineSet={allThreads} manageReadReceipts sendReadReceiptOnLoad />
|
<TimelinePanel timelineSet={allThreads} manageReadReceipts sendReadReceiptOnLoad />
|
||||||
</MatrixClientContext.Provider>,
|
</MatrixClientContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await dom.findByText("RootEvent");
|
await dom.findByText("RootEvent");
|
||||||
await dom.findByText("ReplyEvent1");
|
await dom.findByText("ReplyEvent1");
|
||||||
|
@ -1017,7 +1005,6 @@ describe("TimelinePanel", () => {
|
||||||
<MatrixClientContext.Provider value={client}>
|
<MatrixClientContext.Provider value={client}>
|
||||||
<TimelinePanel timelineSet={timelineSet} manageReadReceipts={true} sendReadReceiptOnLoad={true} />
|
<TimelinePanel timelineSet={timelineSet} manageReadReceipts={true} sendReadReceiptOnLoad={true} />
|
||||||
</MatrixClientContext.Provider>,
|
</MatrixClientContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
await waitFor(() => expect(screen.queryByRole("progressbar")).toBeNull());
|
await waitFor(() => expect(screen.queryByRole("progressbar")).toBeNull());
|
||||||
|
|
|
@ -391,7 +391,6 @@ exports[`SpaceHierarchy <SpaceHierarchy /> renders 1`] = `
|
||||||
Join
|
Join
|
||||||
</div>
|
</div>
|
||||||
<span
|
<span
|
||||||
class=""
|
|
||||||
data-state="closed"
|
data-state="closed"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
>
|
>
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { mocked } from "jest-mock";
|
||||||
import { act, render, RenderResult, screen } from "@testing-library/react";
|
import { act, render, RenderResult, screen } from "@testing-library/react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { MatrixClient, createClient } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, createClient } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import ForgotPassword from "../../../../src/components/structures/auth/ForgotPassword";
|
import ForgotPassword from "../../../../src/components/structures/auth/ForgotPassword";
|
||||||
import { ValidatedServerConfig } from "../../../../src/utils/ValidatedServerConfig";
|
import { ValidatedServerConfig } from "../../../../src/utils/ValidatedServerConfig";
|
||||||
|
@ -103,7 +102,6 @@ describe("<ForgotPassword>", () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
renderResult = render(
|
renderResult = render(
|
||||||
<ForgotPassword serverConfig={serverConfig} onComplete={onComplete} onLoginClick={onLoginClick} />,
|
<ForgotPassword serverConfig={serverConfig} onComplete={onComplete} onLoginClick={onLoginClick} />,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { mocked } from "jest-mock";
|
||||||
import { JoinRule, MatrixClient, PendingEventOrdering, Room } from "matrix-js-sdk/src/matrix";
|
import { JoinRule, MatrixClient, PendingEventOrdering, Room } from "matrix-js-sdk/src/matrix";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||||
import { stubClient } from "../../../test-utils";
|
import { stubClient } from "../../../test-utils";
|
||||||
|
@ -39,9 +38,7 @@ describe("DecoratedRoomAvatar", () => {
|
||||||
let room: Room;
|
let room: Room;
|
||||||
|
|
||||||
function renderComponent() {
|
function renderComponent() {
|
||||||
return render(<DecoratedRoomAvatar room={room} size="32px" />, {
|
return render(<DecoratedRoomAvatar room={room} size="32px" />);
|
||||||
wrapper: TooltipProvider,
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|
|
@ -16,9 +16,9 @@ exports[`DecoratedRoomAvatar shows an avatar with globe icon and tooltip for pub
|
||||||
r
|
r
|
||||||
</span>
|
</span>
|
||||||
<div
|
<div
|
||||||
aria-describedby="radix-0"
|
aria-describedby="floating-ui-2"
|
||||||
class="mx_DecoratedRoomAvatar_icon mx_DecoratedRoomAvatar_icon_globe"
|
class="mx_DecoratedRoomAvatar_icon mx_DecoratedRoomAvatar_icon_globe"
|
||||||
data-state="delayed-open"
|
data-state="open"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
@ -41,9 +41,9 @@ exports[`DecoratedRoomAvatar shows the presence indicator in a DM room that also
|
||||||
r
|
r
|
||||||
</span>
|
</span>
|
||||||
<div
|
<div
|
||||||
aria-describedby="radix-1"
|
aria-describedby="floating-ui-8"
|
||||||
class="mx_DecoratedRoomAvatar_icon mx_DecoratedRoomAvatar_icon_online"
|
class="mx_DecoratedRoomAvatar_icon mx_DecoratedRoomAvatar_icon_online"
|
||||||
data-state="delayed-open"
|
data-state="open"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { act, fireEvent, render } from "@testing-library/react";
|
import { act, fireEvent, render } from "@testing-library/react";
|
||||||
import { Beacon, RoomMember, MatrixEvent, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
import { Beacon, RoomMember, MatrixEvent, LocationAssetType } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import BeaconListItem from "../../../../src/components/views/beacon/BeaconListItem";
|
import BeaconListItem from "../../../../src/components/views/beacon/BeaconListItem";
|
||||||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||||
|
@ -76,7 +75,6 @@ describe("<BeaconListItem />", () => {
|
||||||
<MatrixClientContext.Provider value={mockClient}>
|
<MatrixClientContext.Provider value={mockClient}>
|
||||||
<BeaconListItem {...defaultProps} {...props} />
|
<BeaconListItem {...defaultProps} {...props} />
|
||||||
</MatrixClientContext.Provider>,
|
</MatrixClientContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const setupRoomWithBeacons = (beaconInfoEvents: MatrixEvent[], locationEvents?: MatrixEvent[]): Beacon[] => {
|
const setupRoomWithBeacons = (beaconInfoEvents: MatrixEvent[], locationEvents?: MatrixEvent[]): Beacon[] => {
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { act, fireEvent, render, RenderResult } from "@testing-library/react";
|
||||||
import { MatrixClient, MatrixEvent, Room, RoomMember, getBeaconInfoIdentifier } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, MatrixEvent, Room, RoomMember, getBeaconInfoIdentifier } from "matrix-js-sdk/src/matrix";
|
||||||
import * as maplibregl from "maplibre-gl";
|
import * as maplibregl from "maplibre-gl";
|
||||||
import { mocked } from "jest-mock";
|
import { mocked } from "jest-mock";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import BeaconViewDialog from "../../../../src/components/views/beacon/BeaconViewDialog";
|
import BeaconViewDialog from "../../../../src/components/views/beacon/BeaconViewDialog";
|
||||||
import {
|
import {
|
||||||
|
@ -80,8 +79,7 @@ describe("<BeaconViewDialog />", () => {
|
||||||
matrixClient: mockClient as MatrixClient,
|
matrixClient: mockClient as MatrixClient,
|
||||||
};
|
};
|
||||||
|
|
||||||
const getComponent = (props = {}): RenderResult =>
|
const getComponent = (props = {}): RenderResult => render(<BeaconViewDialog {...defaultProps} {...props} />);
|
||||||
render(<BeaconViewDialog {...defaultProps} {...props} />, { wrapper: TooltipProvider });
|
|
||||||
|
|
||||||
const openSidebar = (getByTestId: RenderResult["getByTestId"]) => {
|
const openSidebar = (getByTestId: RenderResult["getByTestId"]) => {
|
||||||
fireEvent.click(getByTestId("beacon-view-dialog-open-sidebar"));
|
fireEvent.click(getByTestId("beacon-view-dialog-open-sidebar"));
|
||||||
|
|
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||||
|
|
||||||
import React, { ComponentProps } from "react";
|
import React, { ComponentProps } from "react";
|
||||||
import { act, fireEvent, render } from "@testing-library/react";
|
import { act, fireEvent, render } from "@testing-library/react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import DialogSidebar from "../../../../src/components/views/beacon/DialogSidebar";
|
import DialogSidebar from "../../../../src/components/views/beacon/DialogSidebar";
|
||||||
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
import MatrixClientContext from "../../../../src/contexts/MatrixClientContext";
|
||||||
|
@ -53,9 +52,7 @@ describe("<DialogSidebar />", () => {
|
||||||
|
|
||||||
const getComponent = (props = {}) => (
|
const getComponent = (props = {}) => (
|
||||||
<MatrixClientContext.Provider value={client}>
|
<MatrixClientContext.Provider value={client}>
|
||||||
<TooltipProvider>
|
<DialogSidebar {...defaultProps} {...props} />
|
||||||
<DialogSidebar {...defaultProps} {...props} />
|
|
||||||
</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { fireEvent, render } from "@testing-library/react";
|
import { fireEvent, render } from "@testing-library/react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import ShareLatestLocation from "../../../../src/components/views/beacon/ShareLatestLocation";
|
import ShareLatestLocation from "../../../../src/components/views/beacon/ShareLatestLocation";
|
||||||
import { copyPlaintext } from "../../../../src/utils/strings";
|
import { copyPlaintext } from "../../../../src/utils/strings";
|
||||||
|
@ -33,8 +32,7 @@ describe("<ShareLatestLocation />", () => {
|
||||||
timestamp: 123,
|
timestamp: 123,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
const getComponent = (props = {}) =>
|
const getComponent = (props = {}) => render(<ShareLatestLocation {...defaultProps} {...props} />);
|
||||||
render(<ShareLatestLocation {...defaultProps} {...props} />, { wrapper: TooltipProvider });
|
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
jest.clearAllMocks();
|
jest.clearAllMocks();
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { fireEvent, render, screen } from "@testing-library/react";
|
import { fireEvent, render, screen } from "@testing-library/react";
|
||||||
import fetchMock from "fetch-mock-jest";
|
import fetchMock from "fetch-mock-jest";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import ServerPickerDialog from "../../../../src/components/views/dialogs/ServerPickerDialog";
|
import ServerPickerDialog from "../../../../src/components/views/dialogs/ServerPickerDialog";
|
||||||
import SdkConfig from "../../../../src/SdkConfig";
|
import SdkConfig from "../../../../src/SdkConfig";
|
||||||
|
@ -56,7 +55,7 @@ describe("<ServerPickerDialog />", () => {
|
||||||
onFinished: any;
|
onFinished: any;
|
||||||
serverConfig: ValidatedServerConfig;
|
serverConfig: ValidatedServerConfig;
|
||||||
}> = {},
|
}> = {},
|
||||||
) => render(<ServerPickerDialog {...defaultProps} {...props} />, { wrapper: TooltipProvider });
|
) => render(<ServerPickerDialog {...defaultProps} {...props} />);
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
SdkConfig.add({
|
SdkConfig.add({
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { EventTimeline, MatrixEvent, Room, RoomMember } from "matrix-js-sdk/src/matrix";
|
import { EventTimeline, MatrixEvent, Room, RoomMember } from "matrix-js-sdk/src/matrix";
|
||||||
import { render, RenderOptions } from "@testing-library/react";
|
import { render, RenderOptions } from "@testing-library/react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||||
import SettingsStore from "../../../../src/settings/SettingsStore";
|
import SettingsStore from "../../../../src/settings/SettingsStore";
|
||||||
|
@ -31,11 +30,7 @@ jest.mock("../../../../src/utils/ShieldUtils");
|
||||||
function getWrapper(): RenderOptions {
|
function getWrapper(): RenderOptions {
|
||||||
return {
|
return {
|
||||||
wrapper: ({ children }) => (
|
wrapper: ({ children }) => (
|
||||||
<TooltipProvider>
|
<MatrixClientContext.Provider value={MatrixClientPeg.safeGet()}>{children}</MatrixClientContext.Provider>
|
||||||
<MatrixClientContext.Provider value={MatrixClientPeg.safeGet()}>
|
|
||||||
{children}
|
|
||||||
</MatrixClientContext.Provider>
|
|
||||||
</TooltipProvider>
|
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -14,7 +14,6 @@ limitations under the License.
|
||||||
|
|
||||||
import { render } from "@testing-library/react";
|
import { render } from "@testing-library/react";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
|
|
||||||
import FacePile from "../../../../src/components/views/elements/FacePile";
|
import FacePile from "../../../../src/components/views/elements/FacePile";
|
||||||
|
@ -26,7 +25,6 @@ describe("<FacePile />", () => {
|
||||||
|
|
||||||
const { asFragment } = render(
|
const { asFragment } = render(
|
||||||
<FacePile members={[member]} size="36px" overflow={false} tooltipLabel="tooltip" />,
|
<FacePile members={[member]} size="36px" overflow={false} tooltipLabel="tooltip" />,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
|
|
||||||
expect(asFragment()).toMatchSnapshot();
|
expect(asFragment()).toMatchSnapshot();
|
||||||
|
|
|
@ -17,15 +17,12 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { render, waitFor } from "@testing-library/react";
|
import { render, waitFor } from "@testing-library/react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import InfoTooltip from "../../../../src/components/views/elements/InfoTooltip";
|
import InfoTooltip from "../../../../src/components/views/elements/InfoTooltip";
|
||||||
|
|
||||||
describe("InfoTooltip", () => {
|
describe("InfoTooltip", () => {
|
||||||
it("should show tooltip on hover", async () => {
|
it("should show tooltip on hover", async () => {
|
||||||
const { getByText, asFragment } = render(<InfoTooltip tooltip="Tooltip text">Trigger text</InfoTooltip>, {
|
const { getByText, asFragment } = render(<InfoTooltip tooltip="Tooltip text">Trigger text</InfoTooltip>);
|
||||||
wrapper: TooltipProvider,
|
|
||||||
});
|
|
||||||
|
|
||||||
const trigger = getByText("Trigger text");
|
const trigger = getByText("Trigger text");
|
||||||
expect(trigger).toBeVisible();
|
expect(trigger).toBeVisible();
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { act, render, RenderResult, screen } from "@testing-library/react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { mocked, Mocked } from "jest-mock";
|
import { mocked, Mocked } from "jest-mock";
|
||||||
import { MatrixClient, MatrixEvent, Room } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, MatrixEvent, Room } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import dis from "../../../../src/dispatcher/dispatcher";
|
import dis from "../../../../src/dispatcher/dispatcher";
|
||||||
import { Pill, PillProps, PillType } from "../../../../src/components/views/elements/Pill";
|
import { Pill, PillProps, PillType } from "../../../../src/components/views/elements/Pill";
|
||||||
|
@ -65,7 +64,6 @@ describe("<Pill>", () => {
|
||||||
<div onClick={pillParentClickHandler}>
|
<div onClick={pillParentClickHandler}>
|
||||||
<Pill {...withDefault} />
|
<Pill {...withDefault} />
|
||||||
</div>,
|
</div>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,6 @@ limitations under the License.
|
||||||
|
|
||||||
import { render } from "@testing-library/react";
|
import { render } from "@testing-library/react";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
|
|
||||||
import { mkRoom, mkRoomMember, stubClient, withClientContextRenderOptions } from "../../../test-utils";
|
import { mkRoom, mkRoomMember, stubClient, withClientContextRenderOptions } from "../../../test-utils";
|
||||||
|
@ -33,9 +32,7 @@ describe("<RoomFacePile />", () => {
|
||||||
]);
|
]);
|
||||||
|
|
||||||
const { asFragment } = render(
|
const { asFragment } = render(
|
||||||
<TooltipProvider>
|
<RoomFacePile onlyKnownUsers={false} room={room} />,
|
||||||
<RoomFacePile onlyKnownUsers={false} room={room} />
|
|
||||||
</TooltipProvider>,
|
|
||||||
withClientContextRenderOptions(MatrixClientPeg.get()!),
|
withClientContextRenderOptions(MatrixClientPeg.get()!),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
|
@ -3,9 +3,9 @@
|
||||||
exports[`InfoTooltip should show tooltip on hover 1`] = `
|
exports[`InfoTooltip should show tooltip on hover 1`] = `
|
||||||
<DocumentFragment>
|
<DocumentFragment>
|
||||||
<div
|
<div
|
||||||
aria-describedby="radix-0"
|
aria-describedby="floating-ui-2"
|
||||||
class="mx_InfoTooltip"
|
class="mx_InfoTooltip"
|
||||||
data-state="delayed-open"
|
data-state="open"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { render, screen, act, cleanup, fireEvent, waitFor } from "@testing-libra
|
||||||
import { mocked, Mocked } from "jest-mock";
|
import { mocked, Mocked } from "jest-mock";
|
||||||
import { Room, RoomStateEvent, MatrixClient, PendingEventOrdering } from "matrix-js-sdk/src/matrix";
|
import { Room, RoomStateEvent, MatrixClient, PendingEventOrdering } from "matrix-js-sdk/src/matrix";
|
||||||
import { ClientWidgetApi, Widget } from "matrix-widget-api";
|
import { ClientWidgetApi, Widget } from "matrix-widget-api";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import type { RoomMember } from "matrix-js-sdk/src/matrix";
|
import type { RoomMember } from "matrix-js-sdk/src/matrix";
|
||||||
import {
|
import {
|
||||||
|
@ -103,7 +102,7 @@ describe("CallEvent", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const renderEvent = () => {
|
const renderEvent = () => {
|
||||||
render(<CallEvent mxEvent={call.event} />, { wrapper: TooltipProvider });
|
render(<CallEvent mxEvent={call.event} />);
|
||||||
};
|
};
|
||||||
|
|
||||||
it("shows a message and duration if the call was ended", () => {
|
it("shows a message and duration if the call was ended", () => {
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { render, screen } from "@testing-library/react";
|
||||||
import { EventType, getHttpUriForMxc, MatrixEvent, Room } from "matrix-js-sdk/src/matrix";
|
import { EventType, getHttpUriForMxc, MatrixEvent, Room } from "matrix-js-sdk/src/matrix";
|
||||||
import fetchMock from "fetch-mock-jest";
|
import fetchMock from "fetch-mock-jest";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks";
|
import { RoomPermalinkCreator } from "../../../../src/utils/permalinks/Permalinks";
|
||||||
import {
|
import {
|
||||||
|
@ -86,7 +85,7 @@ describe("<MStickerBody/>", () => {
|
||||||
it("should show a tooltip on hover", async () => {
|
it("should show a tooltip on hover", async () => {
|
||||||
fetchMock.getOnce(url, { status: 200 });
|
fetchMock.getOnce(url, { status: 200 });
|
||||||
|
|
||||||
render(<MStickerBody {...props} mxEvent={mediaEvent} />, { wrapper: TooltipProvider });
|
render(<MStickerBody {...props} mxEvent={mediaEvent} />);
|
||||||
|
|
||||||
expect(screen.queryByRole("tooltip")).toBeNull();
|
expect(screen.queryByRole("tooltip")).toBeNull();
|
||||||
await userEvent.hover(screen.getByRole("img"));
|
await userEvent.hover(screen.getByRole("img"));
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { render, screen } from "@testing-library/react";
|
import { render, screen } from "@testing-library/react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import MessageTimestamp from "../../../../src/components/views/messages/MessageTimestamp";
|
import MessageTimestamp from "../../../../src/components/views/messages/MessageTimestamp";
|
||||||
|
|
||||||
|
@ -31,7 +30,7 @@ describe("MessageTimestamp", () => {
|
||||||
const DAY_MS = HOUR_MS * 24;
|
const DAY_MS = HOUR_MS * 24;
|
||||||
|
|
||||||
it("should render HH:MM", () => {
|
it("should render HH:MM", () => {
|
||||||
const { asFragment } = render(<MessageTimestamp ts={nowDate.getTime()} />, { wrapper: TooltipProvider });
|
const { asFragment } = render(<MessageTimestamp ts={nowDate.getTime()} />);
|
||||||
expect(asFragment()).toMatchInlineSnapshot(`
|
expect(asFragment()).toMatchInlineSnapshot(`
|
||||||
<DocumentFragment>
|
<DocumentFragment>
|
||||||
<span
|
<span
|
||||||
|
@ -47,7 +46,7 @@ describe("MessageTimestamp", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should show full date & time on hover", async () => {
|
it("should show full date & time on hover", async () => {
|
||||||
const { container } = render(<MessageTimestamp ts={nowDate.getTime()} />, { wrapper: TooltipProvider });
|
const { container } = render(<MessageTimestamp ts={nowDate.getTime()} />);
|
||||||
await userEvent.hover(container.querySelector(".mx_MessageTimestamp")!);
|
await userEvent.hover(container.querySelector(".mx_MessageTimestamp")!);
|
||||||
expect((await screen.findByRole("tooltip")).textContent).toMatchInlineSnapshot(`"Fri, Dec 17, 2021, 08:09:00"`);
|
expect((await screen.findByRole("tooltip")).textContent).toMatchInlineSnapshot(`"Fri, Dec 17, 2021, 08:09:00"`);
|
||||||
});
|
});
|
||||||
|
@ -55,7 +54,6 @@ describe("MessageTimestamp", () => {
|
||||||
it("should show sent & received time on hover if passed", async () => {
|
it("should show sent & received time on hover if passed", async () => {
|
||||||
const { container } = render(
|
const { container } = render(
|
||||||
<MessageTimestamp ts={nowDate.getTime()} receivedTs={nowDate.getTime() + DAY_MS} />,
|
<MessageTimestamp ts={nowDate.getTime()} receivedTs={nowDate.getTime() + DAY_MS} />,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await userEvent.hover(container.querySelector(".mx_MessageTimestamp")!);
|
await userEvent.hover(container.querySelector(".mx_MessageTimestamp")!);
|
||||||
expect((await screen.findByRole("tooltip")).textContent).toMatchInlineSnapshot(
|
expect((await screen.findByRole("tooltip")).textContent).toMatchInlineSnapshot(
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { act, fireEvent, render } from "@testing-library/react";
|
import { act, fireEvent, render } from "@testing-library/react";
|
||||||
import { Filter, EventTimeline, Room, MatrixEvent, M_POLL_START } from "matrix-js-sdk/src/matrix";
|
import { Filter, EventTimeline, Room, MatrixEvent, M_POLL_START } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { PollHistory } from "../../../../../src/components/views/polls/pollHistory/PollHistory";
|
import { PollHistory } from "../../../../../src/components/views/polls/pollHistory/PollHistory";
|
||||||
import {
|
import {
|
||||||
|
@ -68,9 +67,7 @@ describe("<PollHistory />", () => {
|
||||||
const getComponent = () =>
|
const getComponent = () =>
|
||||||
render(<PollHistory {...defaultProps} />, {
|
render(<PollHistory {...defaultProps} />, {
|
||||||
wrapper: ({ children }) => (
|
wrapper: ({ children }) => (
|
||||||
<MatrixClientContext.Provider value={mockClient}>
|
<MatrixClientContext.Provider value={mockClient}>{children}</MatrixClientContext.Provider>
|
||||||
<TooltipProvider>{children}</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>
|
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { fireEvent, render } from "@testing-library/react";
|
import { fireEvent, render } from "@testing-library/react";
|
||||||
import { MatrixEvent } from "matrix-js-sdk/src/matrix";
|
import { MatrixEvent } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { PollListItem } from "../../../../../src/components/views/polls/pollHistory/PollListItem";
|
import { PollListItem } from "../../../../../src/components/views/polls/pollHistory/PollListItem";
|
||||||
import { makePollStartEvent, mockIntlDateTimeFormat, unmockIntlDateTimeFormat } from "../../../../test-utils";
|
import { makePollStartEvent, mockIntlDateTimeFormat, unmockIntlDateTimeFormat } from "../../../../test-utils";
|
||||||
|
@ -26,8 +25,7 @@ describe("<PollListItem />", () => {
|
||||||
const event = makePollStartEvent("Question?", "@me:domain.org");
|
const event = makePollStartEvent("Question?", "@me:domain.org");
|
||||||
event.getContent().origin;
|
event.getContent().origin;
|
||||||
const defaultProps = { event, onClick: jest.fn() };
|
const defaultProps = { event, onClick: jest.fn() };
|
||||||
const getComponent = (props = {}) =>
|
const getComponent = (props = {}) => render(<PollListItem {...defaultProps} {...props} />);
|
||||||
render(<PollListItem {...defaultProps} {...props} />, { wrapper: TooltipProvider });
|
|
||||||
|
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
// mock default locale to en-GB and set timezone
|
// mock default locale to en-GB and set timezone
|
||||||
|
|
|
@ -17,7 +17,6 @@ limitations under the License.
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { render } from "@testing-library/react";
|
import { render } from "@testing-library/react";
|
||||||
import { MatrixEvent, Poll, Room, M_TEXT } from "matrix-js-sdk/src/matrix";
|
import { MatrixEvent, Poll, Room, M_TEXT } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { PollListItemEnded } from "../../../../../src/components/views/polls/pollHistory/PollListItemEnded";
|
import { PollListItemEnded } from "../../../../../src/components/views/polls/pollHistory/PollListItemEnded";
|
||||||
import {
|
import {
|
||||||
|
@ -61,7 +60,7 @@ describe("<PollListItemEnded />", () => {
|
||||||
const pollEndEvent = makePollEndEvent(pollId, roomId, userId, timestamp + 60000);
|
const pollEndEvent = makePollEndEvent(pollId, roomId, userId, timestamp + 60000);
|
||||||
|
|
||||||
const getComponent = (props: { event: MatrixEvent; poll: Poll }) =>
|
const getComponent = (props: { event: MatrixEvent; poll: Poll }) =>
|
||||||
render(<PollListItemEnded {...props} onClick={jest.fn()} />, { wrapper: TooltipProvider });
|
render(<PollListItemEnded {...props} onClick={jest.fn()} />);
|
||||||
|
|
||||||
beforeAll(() => {
|
beforeAll(() => {
|
||||||
// mock default locale to en-GB and set timezone
|
// mock default locale to en-GB and set timezone
|
||||||
|
|
|
@ -19,7 +19,6 @@ import { render, fireEvent, screen } from "@testing-library/react";
|
||||||
import { EventType, MatrixEvent, Room, MatrixClient, JoinRule } from "matrix-js-sdk/src/matrix";
|
import { EventType, MatrixEvent, Room, MatrixClient, JoinRule } from "matrix-js-sdk/src/matrix";
|
||||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
import { mocked, MockedObject } from "jest-mock";
|
import { mocked, MockedObject } from "jest-mock";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import DMRoomMap from "../../../../src/utils/DMRoomMap";
|
import DMRoomMap from "../../../../src/utils/DMRoomMap";
|
||||||
import RoomSummaryCard from "../../../../src/components/views/right_panel/RoomSummaryCard";
|
import RoomSummaryCard from "../../../../src/components/views/right_panel/RoomSummaryCard";
|
||||||
|
@ -57,9 +56,7 @@ describe("<RoomSummaryCard />", () => {
|
||||||
|
|
||||||
return render(<RoomSummaryCard {...defaultProps} {...props} />, {
|
return render(<RoomSummaryCard {...defaultProps} {...props} />, {
|
||||||
wrapper: ({ children }) => (
|
wrapper: ({ children }) => (
|
||||||
<MatrixClientContext.Provider value={mockClient}>
|
<MatrixClientContext.Provider value={mockClient}>{children}</MatrixClientContext.Provider>
|
||||||
<TooltipProvider>{children}</TooltipProvider>
|
|
||||||
</MatrixClientContext.Provider>
|
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
@ -38,7 +38,6 @@ import {
|
||||||
VerificationPhase as Phase,
|
VerificationPhase as Phase,
|
||||||
VerificationRequestEvent,
|
VerificationRequestEvent,
|
||||||
} from "matrix-js-sdk/src/crypto-api";
|
} from "matrix-js-sdk/src/crypto-api";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import UserInfo, {
|
import UserInfo, {
|
||||||
BanToggleButton,
|
BanToggleButton,
|
||||||
|
@ -206,11 +205,7 @@ describe("<UserInfo />", () => {
|
||||||
|
|
||||||
const renderComponent = (props = {}) => {
|
const renderComponent = (props = {}) => {
|
||||||
const Wrapper = (wrapperProps = {}) => {
|
const Wrapper = (wrapperProps = {}) => {
|
||||||
return (
|
return <MatrixClientContext.Provider value={mockClient} {...wrapperProps} />;
|
||||||
<TooltipProvider>
|
|
||||||
<MatrixClientContext.Provider value={mockClient} {...wrapperProps} />
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return render(<UserInfo {...defaultProps} {...props} />, {
|
return render(<UserInfo {...defaultProps} {...props} />, {
|
||||||
|
@ -631,11 +626,7 @@ describe("<UserInfoHeader />", () => {
|
||||||
|
|
||||||
const renderComponent = (props = {}) => {
|
const renderComponent = (props = {}) => {
|
||||||
const Wrapper = (wrapperProps = {}) => {
|
const Wrapper = (wrapperProps = {}) => {
|
||||||
return (
|
return <MatrixClientContext.Provider value={mockClient} {...wrapperProps} />;
|
||||||
<TooltipProvider>
|
|
||||||
<MatrixClientContext.Provider value={mockClient} {...wrapperProps} />
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
|
||||||
};
|
};
|
||||||
|
|
||||||
return render(<UserInfoHeader {...defaultProps} {...props} />, {
|
return render(<UserInfoHeader {...defaultProps} {...props} />, {
|
||||||
|
|
|
@ -29,7 +29,6 @@ import {
|
||||||
TweakName,
|
TweakName,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { EventEncryptionInfo, EventShieldColour, EventShieldReason } from "matrix-js-sdk/src/crypto-api";
|
import { EventEncryptionInfo, EventShieldColour, EventShieldReason } from "matrix-js-sdk/src/crypto-api";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
import { mkEncryptedMatrixEvent } from "matrix-js-sdk/src/testing";
|
import { mkEncryptedMatrixEvent } from "matrix-js-sdk/src/testing";
|
||||||
|
|
||||||
import EventTile, { EventTileProps } from "../../../../src/components/views/rooms/EventTile";
|
import EventTile, { EventTileProps } from "../../../../src/components/views/rooms/EventTile";
|
||||||
|
@ -59,13 +58,11 @@ describe("EventTile", () => {
|
||||||
return (
|
return (
|
||||||
<MatrixClientContext.Provider value={client}>
|
<MatrixClientContext.Provider value={client}>
|
||||||
<RoomContext.Provider value={props.roomContext}>
|
<RoomContext.Provider value={props.roomContext}>
|
||||||
<TooltipProvider>
|
<EventTile
|
||||||
<EventTile
|
mxEvent={mxEvent}
|
||||||
mxEvent={mxEvent}
|
replacingEventId={mxEvent.replacingEventId()}
|
||||||
replacingEventId={mxEvent.replacingEventId()}
|
{...(props.eventTilePropertyOverrides ?? {})}
|
||||||
{...(props.eventTilePropertyOverrides ?? {})}
|
/>
|
||||||
/>
|
|
||||||
</TooltipProvider>
|
|
||||||
</RoomContext.Provider>
|
</RoomContext.Provider>
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
);
|
);
|
||||||
|
|
|
@ -32,7 +32,6 @@ import { ClientWidgetApi, Widget } from "matrix-widget-api";
|
||||||
import EventEmitter from "events";
|
import EventEmitter from "events";
|
||||||
import { setupJestCanvasMock } from "jest-canvas-mock";
|
import { setupJestCanvasMock } from "jest-canvas-mock";
|
||||||
import { ViewRoomOpts } from "@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle";
|
import { ViewRoomOpts } from "@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
// eslint-disable-next-line no-restricted-imports
|
// eslint-disable-next-line no-restricted-imports
|
||||||
import { MatrixRTCSessionManagerEvents } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSessionManager";
|
import { MatrixRTCSessionManagerEvents } from "matrix-js-sdk/src/matrixrtc/MatrixRTCSessionManager";
|
||||||
// eslint-disable-next-line no-restricted-imports
|
// eslint-disable-next-line no-restricted-imports
|
||||||
|
@ -226,7 +225,6 @@ describe("LegacyRoomHeader", () => {
|
||||||
{...props}
|
{...props}
|
||||||
/>
|
/>
|
||||||
</RoomContext.Provider>,
|
</RoomContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -870,7 +868,6 @@ function mountHeader(room: Room, propsOverride = {}, roomContext?: Partial<IRoom
|
||||||
<RoomContext.Provider value={{ ...roomContext, room } as IRoomState}>
|
<RoomContext.Provider value={{ ...roomContext, room } as IRoomState}>
|
||||||
<RoomHeader {...props} />
|
<RoomHeader {...props} />
|
||||||
</RoomContext.Provider>,
|
</RoomContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@ import { Room, MatrixClient, RoomState, RoomMember, User, MatrixEvent } from "ma
|
||||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
import { compare } from "matrix-js-sdk/src/utils";
|
import { compare } from "matrix-js-sdk/src/utils";
|
||||||
import { mocked, MockedObject } from "jest-mock";
|
import { mocked, MockedObject } from "jest-mock";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||||
import * as TestUtils from "../../../test-utils";
|
import * as TestUtils from "../../../test-utils";
|
||||||
|
@ -231,7 +230,6 @@ describe("MemberList", () => {
|
||||||
ref={gatherWrappedRef}
|
ref={gatherWrappedRef}
|
||||||
/>
|
/>
|
||||||
</SDKContext.Provider>,
|
</SDKContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -383,7 +381,6 @@ describe("MemberList", () => {
|
||||||
roomId={room.roomId}
|
roomId={room.roomId}
|
||||||
/>
|
/>
|
||||||
</SDKContext.Provider>,
|
</SDKContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@ import { MatrixClient, RoomMember, Device } from "matrix-js-sdk/src/matrix";
|
||||||
import { UserVerificationStatus, DeviceVerificationStatus } from "matrix-js-sdk/src/crypto-api";
|
import { UserVerificationStatus, DeviceVerificationStatus } from "matrix-js-sdk/src/crypto-api";
|
||||||
import { mocked } from "jest-mock";
|
import { mocked } from "jest-mock";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import * as TestUtils from "../../../test-utils";
|
import * as TestUtils from "../../../test-utils";
|
||||||
import MemberTile from "../../../../src/components/views/rooms/MemberTile";
|
import MemberTile from "../../../../src/components/views/rooms/MemberTile";
|
||||||
|
@ -37,7 +36,7 @@ describe("MemberTile", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
it("should not display an E2EIcon when the e2E status = normal", () => {
|
it("should not display an E2EIcon when the e2E status = normal", () => {
|
||||||
const { container } = render(<MemberTile member={member} />, { wrapper: TooltipProvider });
|
const { container } = render(<MemberTile member={member} />);
|
||||||
|
|
||||||
expect(container).toMatchSnapshot();
|
expect(container).toMatchSnapshot();
|
||||||
});
|
});
|
||||||
|
@ -48,7 +47,7 @@ describe("MemberTile", () => {
|
||||||
wasCrossSigningVerified: jest.fn().mockReturnValue(true),
|
wasCrossSigningVerified: jest.fn().mockReturnValue(true),
|
||||||
} as unknown as UserVerificationStatus);
|
} as unknown as UserVerificationStatus);
|
||||||
|
|
||||||
const { container } = render(<MemberTile member={member} />, { wrapper: TooltipProvider });
|
const { container } = render(<MemberTile member={member} />);
|
||||||
|
|
||||||
expect(container).toMatchSnapshot();
|
expect(container).toMatchSnapshot();
|
||||||
await waitFor(async () => {
|
await waitFor(async () => {
|
||||||
|
@ -72,7 +71,7 @@ describe("MemberTile", () => {
|
||||||
crossSigningVerified: true,
|
crossSigningVerified: true,
|
||||||
} as DeviceVerificationStatus);
|
} as DeviceVerificationStatus);
|
||||||
|
|
||||||
const { container } = render(<MemberTile member={member} />, { wrapper: TooltipProvider });
|
const { container } = render(<MemberTile member={member} />);
|
||||||
|
|
||||||
expect(container).toMatchSnapshot();
|
expect(container).toMatchSnapshot();
|
||||||
await waitFor(async () => {
|
await waitFor(async () => {
|
||||||
|
|
|
@ -18,7 +18,6 @@ import * as React from "react";
|
||||||
import { EventType, MatrixEvent, Room, RoomMember, THREAD_RELATION_TYPE } from "matrix-js-sdk/src/matrix";
|
import { EventType, MatrixEvent, Room, RoomMember, THREAD_RELATION_TYPE } from "matrix-js-sdk/src/matrix";
|
||||||
import { act, render, screen } from "@testing-library/react";
|
import { act, render, screen } from "@testing-library/react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
clearAllModals,
|
clearAllModals,
|
||||||
|
@ -514,7 +513,6 @@ function wrapAndRender(
|
||||||
<MessageComposer {...defaultProps} {...props} />
|
<MessageComposer {...defaultProps} {...props} />
|
||||||
</RoomContext.Provider>
|
</RoomContext.Provider>
|
||||||
</MatrixClientContext.Provider>,
|
</MatrixClientContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
),
|
),
|
||||||
roomContext,
|
roomContext,
|
||||||
};
|
};
|
||||||
|
|
|
@ -40,7 +40,6 @@ import {
|
||||||
waitFor,
|
waitFor,
|
||||||
} from "@testing-library/react";
|
} from "@testing-library/react";
|
||||||
import { ViewRoomOpts } from "@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle";
|
import { ViewRoomOpts } from "@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { filterConsole, mkEvent, stubClient } from "../../../test-utils";
|
import { filterConsole, mkEvent, stubClient } from "../../../test-utils";
|
||||||
import RoomHeader from "../../../../src/components/views/rooms/RoomHeader";
|
import RoomHeader from "../../../../src/components/views/rooms/RoomHeader";
|
||||||
|
@ -67,11 +66,7 @@ jest.mock("../../../../src/utils/ShieldUtils");
|
||||||
function getWrapper(): RenderOptions {
|
function getWrapper(): RenderOptions {
|
||||||
return {
|
return {
|
||||||
wrapper: ({ children }) => (
|
wrapper: ({ children }) => (
|
||||||
<TooltipProvider>
|
<MatrixClientContext.Provider value={MatrixClientPeg.safeGet()}>{children}</MatrixClientContext.Provider>
|
||||||
<MatrixClientContext.Provider value={MatrixClientPeg.safeGet()}>
|
|
||||||
{children}
|
|
||||||
</MatrixClientContext.Provider>
|
|
||||||
</TooltipProvider>
|
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -15,7 +15,6 @@ limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
import { fireEvent, getByLabelText, getByText, render, screen, waitFor } from "@testing-library/react";
|
import { fireEvent, getByLabelText, getByText, render, screen, waitFor } from "@testing-library/react";
|
||||||
import { EventTimeline, JoinRule, Room } from "matrix-js-sdk/src/matrix";
|
import { EventTimeline, JoinRule, Room } from "matrix-js-sdk/src/matrix";
|
||||||
import { KnownMembership } from "matrix-js-sdk/src/types";
|
import { KnownMembership } from "matrix-js-sdk/src/types";
|
||||||
|
@ -75,11 +74,7 @@ describe("<CallGuestLinkButton />", () => {
|
||||||
|
|
||||||
const getComponent = (room: Room) =>
|
const getComponent = (room: Room) =>
|
||||||
render(<CallGuestLinkButton room={room} />, {
|
render(<CallGuestLinkButton room={room} />, {
|
||||||
wrapper: ({ children }) => (
|
wrapper: ({ children }) => <SDKContext.Provider value={sdkContext}>{children}</SDKContext.Provider>,
|
||||||
<SDKContext.Provider value={sdkContext}>
|
|
||||||
<TooltipProvider>{children}</TooltipProvider>
|
|
||||||
</SDKContext.Provider>
|
|
||||||
),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
const oldGet = SdkConfig.get;
|
const oldGet = SdkConfig.get;
|
||||||
|
@ -225,11 +220,7 @@ describe("<CallGuestLinkButton />", () => {
|
||||||
|
|
||||||
const getComponent = (room: Room, canInvite: boolean = true) =>
|
const getComponent = (room: Room, canInvite: boolean = true) =>
|
||||||
render(<JoinRuleDialog room={room} canInvite={canInvite} onFinished={onFinished} />, {
|
render(<JoinRuleDialog room={room} canInvite={canInvite} onFinished={onFinished} />, {
|
||||||
wrapper: ({ children }) => (
|
wrapper: ({ children }) => <SDKContext.Provider value={sdkContext}>{children}</SDKContext.Provider>,
|
||||||
<SDKContext.Provider value={sdkContext}>
|
|
||||||
<TooltipProvider>{children}</TooltipProvider>
|
|
||||||
</SDKContext.Provider>
|
|
||||||
),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|
|
@ -18,7 +18,6 @@ import React from "react";
|
||||||
import { MockedObject } from "jest-mock";
|
import { MockedObject } from "jest-mock";
|
||||||
import { Room } from "matrix-js-sdk/src/matrix";
|
import { Room } from "matrix-js-sdk/src/matrix";
|
||||||
import { fireEvent, render, screen } from "@testing-library/react";
|
import { fireEvent, render, screen } from "@testing-library/react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { VideoRoomChatButton } from "../../../../../src/components/views/rooms/RoomHeader/VideoRoomChatButton";
|
import { VideoRoomChatButton } from "../../../../../src/components/views/rooms/RoomHeader/VideoRoomChatButton";
|
||||||
import { SDKContext, SdkContextClass } from "../../../../../src/contexts/SDKContext";
|
import { SDKContext, SdkContextClass } from "../../../../../src/contexts/SDKContext";
|
||||||
|
@ -57,11 +56,7 @@ describe("<VideoRoomChatButton />", () => {
|
||||||
|
|
||||||
const getComponent = (room: Room) =>
|
const getComponent = (room: Room) =>
|
||||||
render(<VideoRoomChatButton room={room} />, {
|
render(<VideoRoomChatButton room={room} />, {
|
||||||
wrapper: ({ children }) => (
|
wrapper: ({ children }) => <SDKContext.Provider value={sdkContext}>{children}</SDKContext.Provider>,
|
||||||
<SDKContext.Provider value={sdkContext}>
|
|
||||||
<TooltipProvider>{children}</TooltipProvider>
|
|
||||||
</SDKContext.Provider>
|
|
||||||
),
|
|
||||||
});
|
});
|
||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
|
|
|
@ -20,7 +20,6 @@ import { cleanup, queryByRole, render, screen, within } from "@testing-library/r
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { mocked } from "jest-mock";
|
import { mocked } from "jest-mock";
|
||||||
import { Room } from "matrix-js-sdk/src/matrix";
|
import { Room } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import RoomList from "../../../../src/components/views/rooms/RoomList";
|
import RoomList from "../../../../src/components/views/rooms/RoomList";
|
||||||
import ResizeNotifier from "../../../../src/utils/ResizeNotifier";
|
import ResizeNotifier from "../../../../src/utils/ResizeNotifier";
|
||||||
|
@ -56,18 +55,16 @@ describe("RoomList", () => {
|
||||||
|
|
||||||
function getComponent(props: Partial<ComponentProps<typeof RoomList>> = {}): JSX.Element {
|
function getComponent(props: Partial<ComponentProps<typeof RoomList>> = {}): JSX.Element {
|
||||||
return (
|
return (
|
||||||
<TooltipProvider>
|
<RoomList
|
||||||
<RoomList
|
onKeyDown={jest.fn()}
|
||||||
onKeyDown={jest.fn()}
|
onFocus={jest.fn()}
|
||||||
onFocus={jest.fn()}
|
onBlur={jest.fn()}
|
||||||
onBlur={jest.fn()}
|
onResize={jest.fn()}
|
||||||
onResize={jest.fn()}
|
resizeNotifier={new ResizeNotifier()}
|
||||||
resizeNotifier={new ResizeNotifier()}
|
isMinimized={false}
|
||||||
isMinimized={false}
|
activeSpace={MetaSpace.Home}
|
||||||
activeSpace={MetaSpace.Home}
|
{...props}
|
||||||
{...props}
|
/>
|
||||||
/>
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||||
|
|
||||||
import React, { ComponentProps } from "react";
|
import React, { ComponentProps } from "react";
|
||||||
import { act, fireEvent, render } from "@testing-library/react";
|
import { act, fireEvent, render } from "@testing-library/react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { FilteredDeviceList } from "../../../../../src/components/views/settings/devices/FilteredDeviceList";
|
import { FilteredDeviceList } from "../../../../../src/components/views/settings/devices/FilteredDeviceList";
|
||||||
import { DeviceSecurityVariation } from "../../../../../src/components/views/settings/devices/types";
|
import { DeviceSecurityVariation } from "../../../../../src/components/views/settings/devices/types";
|
||||||
|
@ -82,11 +81,7 @@ describe("<FilteredDeviceList />", () => {
|
||||||
supportsMSC3881: true,
|
supportsMSC3881: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
const getComponent = (props = {}) => (
|
const getComponent = (props = {}) => <FilteredDeviceList {...defaultProps} {...props} />;
|
||||||
<TooltipProvider>
|
|
||||||
<FilteredDeviceList {...defaultProps} {...props} />
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
|
||||||
|
|
||||||
afterAll(() => {
|
afterAll(() => {
|
||||||
jest.spyOn(global.Date, "now").mockRestore();
|
jest.spyOn(global.Date, "now").mockRestore();
|
||||||
|
|
|
@ -16,7 +16,6 @@ limitations under the License.
|
||||||
|
|
||||||
import { fireEvent, render } from "@testing-library/react";
|
import { fireEvent, render } from "@testing-library/react";
|
||||||
import React from "react";
|
import React from "react";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import FilteredDeviceListHeader from "../../../../../src/components/views/settings/devices/FilteredDeviceListHeader";
|
import FilteredDeviceListHeader from "../../../../../src/components/views/settings/devices/FilteredDeviceListHeader";
|
||||||
|
|
||||||
|
@ -28,11 +27,7 @@ describe("<FilteredDeviceListHeader />", () => {
|
||||||
children: <div>test</div>,
|
children: <div>test</div>,
|
||||||
["data-testid"]: "test123",
|
["data-testid"]: "test123",
|
||||||
};
|
};
|
||||||
const getComponent = (props = {}) => (
|
const getComponent = (props = {}) => <FilteredDeviceListHeader {...defaultProps} {...props} />;
|
||||||
<TooltipProvider>
|
|
||||||
<FilteredDeviceListHeader {...defaultProps} {...props} />
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
|
||||||
|
|
||||||
it("renders correctly when no devices are selected", () => {
|
it("renders correctly when no devices are selected", () => {
|
||||||
const { container } = render(getComponent());
|
const { container } = render(getComponent());
|
||||||
|
|
|
@ -36,7 +36,6 @@ import {
|
||||||
MatrixClient,
|
MatrixClient,
|
||||||
} from "matrix-js-sdk/src/matrix";
|
} from "matrix-js-sdk/src/matrix";
|
||||||
import { mocked, MockedObject } from "jest-mock";
|
import { mocked, MockedObject } from "jest-mock";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import {
|
import {
|
||||||
clearAllModals,
|
clearAllModals,
|
||||||
|
@ -129,11 +128,9 @@ describe("<SessionManagerTab />", () => {
|
||||||
|
|
||||||
const defaultProps = {};
|
const defaultProps = {};
|
||||||
const getComponent = (props = {}): React.ReactElement => (
|
const getComponent = (props = {}): React.ReactElement => (
|
||||||
<TooltipProvider>
|
<SDKContext.Provider value={sdkContext}>
|
||||||
<SDKContext.Provider value={sdkContext}>
|
<SessionManagerTab {...defaultProps} {...props} />
|
||||||
<SessionManagerTab {...defaultProps} {...props} />
|
</SDKContext.Provider>
|
||||||
</SDKContext.Provider>
|
|
||||||
</TooltipProvider>
|
|
||||||
);
|
);
|
||||||
|
|
||||||
const toggleDeviceDetails = (
|
const toggleDeviceDetails = (
|
||||||
|
|
|
@ -20,7 +20,6 @@ import React, { ComponentProps } from "react";
|
||||||
import { getByText, render, screen } from "@testing-library/react";
|
import { getByText, render, screen } from "@testing-library/react";
|
||||||
import userEvent from "@testing-library/user-event";
|
import userEvent from "@testing-library/user-event";
|
||||||
import { NotificationCountType, PendingEventOrdering, Room } from "matrix-js-sdk/src/matrix";
|
import { NotificationCountType, PendingEventOrdering, Room } from "matrix-js-sdk/src/matrix";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import { ThreadsActivityCentre } from "../../../../src/components/views/spaces/threads-activity-centre";
|
import { ThreadsActivityCentre } from "../../../../src/components/views/spaces/threads-activity-centre";
|
||||||
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
import { MatrixClientPeg } from "../../../../src/MatrixClientPeg";
|
||||||
|
@ -49,7 +48,6 @@ describe("ThreadsActivityCentre", () => {
|
||||||
<MatrixClientContext.Provider value={cli}>
|
<MatrixClientContext.Provider value={cli}>
|
||||||
<ThreadsActivityCentre {...props} />
|
<ThreadsActivityCentre {...props} />
|
||||||
</MatrixClientContext.Provider>,
|
</MatrixClientContext.Provider>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -251,7 +249,6 @@ describe("ThreadsActivityCentre", () => {
|
||||||
<ThreadsActivityCentre />
|
<ThreadsActivityCentre />
|
||||||
</MatrixClientContext.Provider>
|
</MatrixClientContext.Provider>
|
||||||
</div>,
|
</div>,
|
||||||
{ wrapper: TooltipProvider },
|
|
||||||
);
|
);
|
||||||
await userEvent.click(getTACButton());
|
await userEvent.click(getTACButton());
|
||||||
|
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
exports[`ThreadsActivityCentre renders notifications matching the snapshot 1`] = `
|
exports[`ThreadsActivityCentre renders notifications matching the snapshot 1`] = `
|
||||||
<div
|
<div
|
||||||
aria-labelledby="radix-21"
|
aria-labelledby="radix-14"
|
||||||
aria-orientation="vertical"
|
aria-orientation="vertical"
|
||||||
class="_menu_1x5h1_17"
|
class="_menu_1x5h1_17"
|
||||||
data-align="end"
|
data-align="end"
|
||||||
|
@ -11,7 +11,7 @@ exports[`ThreadsActivityCentre renders notifications matching the snapshot 1`] =
|
||||||
data-side="right"
|
data-side="right"
|
||||||
data-state="open"
|
data-state="open"
|
||||||
dir="ltr"
|
dir="ltr"
|
||||||
id="radix-22"
|
id="radix-15"
|
||||||
role="menu"
|
role="menu"
|
||||||
style="outline: none; --radix-dropdown-menu-content-transform-origin: var(--radix-popper-transform-origin); --radix-dropdown-menu-content-available-width: var(--radix-popper-available-width); --radix-dropdown-menu-content-available-height: var(--radix-popper-available-height); --radix-dropdown-menu-trigger-width: var(--radix-popper-anchor-width); --radix-dropdown-menu-trigger-height: var(--radix-popper-anchor-height); pointer-events: auto;"
|
style="outline: none; --radix-dropdown-menu-content-transform-origin: var(--radix-popper-transform-origin); --radix-dropdown-menu-content-available-width: var(--radix-popper-available-width); --radix-dropdown-menu-content-available-height: var(--radix-popper-available-height); --radix-dropdown-menu-trigger-width: var(--radix-popper-anchor-width); --radix-dropdown-menu-trigger-height: var(--radix-popper-anchor-height); pointer-events: auto;"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
|
@ -127,7 +127,7 @@ exports[`ThreadsActivityCentre renders notifications matching the snapshot 1`] =
|
||||||
|
|
||||||
exports[`ThreadsActivityCentre should match snapshot when empty 1`] = `
|
exports[`ThreadsActivityCentre should match snapshot when empty 1`] = `
|
||||||
<div
|
<div
|
||||||
aria-labelledby="radix-29"
|
aria-labelledby="radix-20"
|
||||||
aria-orientation="vertical"
|
aria-orientation="vertical"
|
||||||
class="_menu_1x5h1_17"
|
class="_menu_1x5h1_17"
|
||||||
data-align="end"
|
data-align="end"
|
||||||
|
@ -136,7 +136,7 @@ exports[`ThreadsActivityCentre should match snapshot when empty 1`] = `
|
||||||
data-side="right"
|
data-side="right"
|
||||||
data-state="open"
|
data-state="open"
|
||||||
dir="ltr"
|
dir="ltr"
|
||||||
id="radix-30"
|
id="radix-21"
|
||||||
role="menu"
|
role="menu"
|
||||||
style="outline: none; --radix-dropdown-menu-content-transform-origin: var(--radix-popper-transform-origin); --radix-dropdown-menu-content-available-width: var(--radix-popper-available-width); --radix-dropdown-menu-content-available-height: var(--radix-popper-available-height); --radix-dropdown-menu-trigger-width: var(--radix-popper-anchor-width); --radix-dropdown-menu-trigger-height: var(--radix-popper-anchor-height); pointer-events: auto;"
|
style="outline: none; --radix-dropdown-menu-content-transform-origin: var(--radix-popper-transform-origin); --radix-dropdown-menu-content-available-width: var(--radix-popper-available-width); --radix-dropdown-menu-content-available-height: var(--radix-popper-available-height); --radix-dropdown-menu-trigger-width: var(--radix-popper-anchor-width); --radix-dropdown-menu-trigger-height: var(--radix-popper-anchor-height); pointer-events: auto;"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
|
@ -161,7 +161,7 @@ exports[`ThreadsActivityCentre should match snapshot when empty 1`] = `
|
||||||
|
|
||||||
exports[`ThreadsActivityCentre should order the room with the same notification level by most recent 1`] = `
|
exports[`ThreadsActivityCentre should order the room with the same notification level by most recent 1`] = `
|
||||||
<div
|
<div
|
||||||
aria-labelledby="radix-32"
|
aria-labelledby="radix-22"
|
||||||
aria-orientation="vertical"
|
aria-orientation="vertical"
|
||||||
class="_menu_1x5h1_17"
|
class="_menu_1x5h1_17"
|
||||||
data-align="end"
|
data-align="end"
|
||||||
|
@ -170,7 +170,7 @@ exports[`ThreadsActivityCentre should order the room with the same notification
|
||||||
data-side="right"
|
data-side="right"
|
||||||
data-state="open"
|
data-state="open"
|
||||||
dir="ltr"
|
dir="ltr"
|
||||||
id="radix-33"
|
id="radix-23"
|
||||||
role="menu"
|
role="menu"
|
||||||
style="outline: none; --radix-dropdown-menu-content-transform-origin: var(--radix-popper-transform-origin); --radix-dropdown-menu-content-available-width: var(--radix-popper-available-width); --radix-dropdown-menu-content-available-height: var(--radix-popper-available-height); --radix-dropdown-menu-trigger-width: var(--radix-popper-anchor-width); --radix-dropdown-menu-trigger-height: var(--radix-popper-anchor-height); pointer-events: auto;"
|
style="outline: none; --radix-dropdown-menu-content-transform-origin: var(--radix-popper-transform-origin); --radix-dropdown-menu-content-available-width: var(--radix-popper-available-width); --radix-dropdown-menu-content-available-height: var(--radix-popper-available-height); --radix-dropdown-menu-trigger-width: var(--radix-popper-anchor-width); --radix-dropdown-menu-trigger-height: var(--radix-popper-anchor-height); pointer-events: auto;"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
|
@ -341,12 +341,12 @@ exports[`ThreadsActivityCentre should render the release announcement 1`] = `
|
||||||
class="mx_ThreadsActivityCentre_container"
|
class="mx_ThreadsActivityCentre_container"
|
||||||
>
|
>
|
||||||
<button
|
<button
|
||||||
aria-controls="floating-ui-3"
|
aria-controls="floating-ui-6"
|
||||||
aria-expanded="true"
|
aria-expanded="true"
|
||||||
aria-haspopup="dialog"
|
aria-haspopup="dialog"
|
||||||
aria-label="Threads"
|
aria-label="Threads"
|
||||||
class="_icon-button_16nk7_17 mx_ThreadsActivityCentreButton"
|
class="_icon-button_16nk7_17 mx_ThreadsActivityCentreButton"
|
||||||
data-state="open"
|
data-state="closed"
|
||||||
role="button"
|
role="button"
|
||||||
style="--cpd-icon-button-size: 32px;"
|
style="--cpd-icon-button-size: 32px;"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
|
@ -368,7 +368,7 @@ exports[`ThreadsActivityCentre should render the release announcement 1`] = `
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
aria-owns="undefined"
|
aria-owns="floating-ui-12"
|
||||||
style="border: 0px; height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: fixed; white-space: nowrap; width: 1px; top: 0px; left: 0px;"
|
style="border: 0px; height: 1px; margin: -1px; overflow: hidden; padding: 0px; position: fixed; white-space: nowrap; width: 1px; top: 0px; left: 0px;"
|
||||||
/>
|
/>
|
||||||
<span
|
<span
|
||||||
|
@ -382,7 +382,7 @@ exports[`ThreadsActivityCentre should render the release announcement 1`] = `
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
data-floating-ui-portal=""
|
data-floating-ui-portal=""
|
||||||
id="undefined"
|
id="floating-ui-12"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
data-floating-ui-focus-guard=""
|
data-floating-ui-focus-guard=""
|
||||||
|
@ -393,10 +393,10 @@ exports[`ThreadsActivityCentre should render the release announcement 1`] = `
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
/>
|
/>
|
||||||
<div
|
<div
|
||||||
aria-describedby="floating-ui-2"
|
aria-describedby="floating-ui-5"
|
||||||
aria-labelledby="floating-ui-1"
|
aria-labelledby="floating-ui-4"
|
||||||
class="_content_1oa1y_17"
|
class="_content_1oa1y_17"
|
||||||
id="floating-ui-3"
|
id="floating-ui-6"
|
||||||
role="dialog"
|
role="dialog"
|
||||||
style="position: absolute; left: 0px; top: 0px; transform: translate(0px, 0px);"
|
style="position: absolute; left: 0px; top: 0px; transform: translate(0px, 0px);"
|
||||||
tabindex="-1"
|
tabindex="-1"
|
||||||
|
@ -414,7 +414,7 @@ exports[`ThreadsActivityCentre should render the release announcement 1`] = `
|
||||||
stroke="none"
|
stroke="none"
|
||||||
/>
|
/>
|
||||||
<clippath
|
<clippath
|
||||||
id="floating-ui-5"
|
id="floating-ui-13"
|
||||||
>
|
>
|
||||||
<rect
|
<rect
|
||||||
height="20"
|
height="20"
|
||||||
|
@ -426,13 +426,13 @@ exports[`ThreadsActivityCentre should render the release announcement 1`] = `
|
||||||
</svg>
|
</svg>
|
||||||
<h3
|
<h3
|
||||||
class="_typography_yh5dq_162 _font-body-lg-semibold_yh5dq_83 _header_1oa1y_46"
|
class="_typography_yh5dq_162 _font-body-lg-semibold_yh5dq_83 _header_1oa1y_46"
|
||||||
id="floating-ui-1"
|
id="floating-ui-4"
|
||||||
>
|
>
|
||||||
Threads Activity Centre
|
Threads Activity Centre
|
||||||
</h3>
|
</h3>
|
||||||
<span
|
<span
|
||||||
class="_typography_yh5dq_162 _font-body-sm-regular_yh5dq_40 _description_1oa1y_52"
|
class="_typography_yh5dq_162 _font-body-sm-regular_yh5dq_40 _description_1oa1y_52"
|
||||||
id="floating-ui-2"
|
id="floating-ui-5"
|
||||||
>
|
>
|
||||||
Threads notifications have moved, find them here from now on.
|
Threads notifications have moved, find them here from now on.
|
||||||
</span>
|
</span>
|
||||||
|
|
|
@ -20,7 +20,6 @@ import { render, screen, act, fireEvent, waitFor, cleanup } from "@testing-libra
|
||||||
import { mocked, Mocked } from "jest-mock";
|
import { mocked, Mocked } from "jest-mock";
|
||||||
import { MatrixClient, PendingEventOrdering, Room, RoomStateEvent } from "matrix-js-sdk/src/matrix";
|
import { MatrixClient, PendingEventOrdering, Room, RoomStateEvent } from "matrix-js-sdk/src/matrix";
|
||||||
import { Widget } from "matrix-widget-api";
|
import { Widget } from "matrix-widget-api";
|
||||||
import { TooltipProvider } from "@vector-im/compound-web";
|
|
||||||
|
|
||||||
import type { RoomMember } from "matrix-js-sdk/src/matrix";
|
import type { RoomMember } from "matrix-js-sdk/src/matrix";
|
||||||
import type { ClientWidgetApi } from "matrix-widget-api";
|
import type { ClientWidgetApi } from "matrix-widget-api";
|
||||||
|
@ -74,9 +73,7 @@ describe("CallView", () => {
|
||||||
});
|
});
|
||||||
|
|
||||||
const renderView = async (skipLobby = false): Promise<void> => {
|
const renderView = async (skipLobby = false): Promise<void> => {
|
||||||
render(<CallView room={room} resizing={false} waitForCall={false} skipLobby={skipLobby} />, {
|
render(<CallView room={room} resizing={false} waitForCall={false} skipLobby={skipLobby} />);
|
||||||
wrapper: TooltipProvider,
|
|
||||||
});
|
|
||||||
await act(() => Promise.resolve()); // Let effects settle
|
await act(() => Promise.resolve()); // Let effects settle
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
39
yarn.lock
39
yarn.lock
|
@ -3060,10 +3060,10 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
svg2vectordrawable "^2.9.1"
|
svg2vectordrawable "^2.9.1"
|
||||||
|
|
||||||
"@vector-im/compound-web@^3.3.1":
|
"@vector-im/compound-web@^4.0.2":
|
||||||
version "3.3.1"
|
version "4.0.2"
|
||||||
resolved "https://registry.yarnpkg.com/@vector-im/compound-web/-/compound-web-3.3.1.tgz#f5d69255fa62472626e0ed71b7176b09f21cbcaf"
|
resolved "https://registry.yarnpkg.com/@vector-im/compound-web/-/compound-web-4.0.2.tgz#cd89ca076b9b0528718e45110a4c8126e7556c63"
|
||||||
integrity sha512-V9CQfaMyKdsWxC1D4Wz08Xh0ge3SnaOBf5SSIp1+uwoJTPyfEFHKgqbZl536SHBvVBc9M9IYg+3+lPB8xkFRFA==
|
integrity sha512-MBqmSbtcWC6KJjuTWPZ6FYc83YrUJ9dOageUdbayjhVGZ/de/a+nl/vPIAX+5ic2QWUN7nn9hujfzQF69mbIeg==
|
||||||
dependencies:
|
dependencies:
|
||||||
"@floating-ui/react" "^0.26.9"
|
"@floating-ui/react" "^0.26.9"
|
||||||
"@floating-ui/react-dom" "^2.0.8"
|
"@floating-ui/react-dom" "^2.0.8"
|
||||||
|
@ -8652,7 +8652,16 @@ string-length@^4.0.1:
|
||||||
char-regex "^1.0.2"
|
char-regex "^1.0.2"
|
||||||
strip-ansi "^6.0.0"
|
strip-ansi "^6.0.0"
|
||||||
|
|
||||||
"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
"string-width-cjs@npm:string-width@^4.2.0":
|
||||||
|
version "4.2.3"
|
||||||
|
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||||
|
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||||
|
dependencies:
|
||||||
|
emoji-regex "^8.0.0"
|
||||||
|
is-fullwidth-code-point "^3.0.0"
|
||||||
|
strip-ansi "^6.0.1"
|
||||||
|
|
||||||
|
string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3:
|
||||||
version "4.2.3"
|
version "4.2.3"
|
||||||
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010"
|
||||||
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==
|
||||||
|
@ -8746,7 +8755,14 @@ string_decoder@~1.1.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
safe-buffer "~5.1.0"
|
safe-buffer "~5.1.0"
|
||||||
|
|
||||||
"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
"strip-ansi-cjs@npm:strip-ansi@^6.0.1":
|
||||||
|
version "6.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||||
|
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||||
|
dependencies:
|
||||||
|
ansi-regex "^5.0.1"
|
||||||
|
|
||||||
|
strip-ansi@^6.0.0, strip-ansi@^6.0.1:
|
||||||
version "6.0.1"
|
version "6.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
|
||||||
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
|
||||||
|
@ -9539,7 +9555,7 @@ which@^2.0.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
isexe "^2.0.0"
|
isexe "^2.0.0"
|
||||||
|
|
||||||
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0:
|
"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0":
|
||||||
version "7.0.0"
|
version "7.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||||
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||||
|
@ -9557,6 +9573,15 @@ wrap-ansi@^6.2.0:
|
||||||
string-width "^4.1.0"
|
string-width "^4.1.0"
|
||||||
strip-ansi "^6.0.0"
|
strip-ansi "^6.0.0"
|
||||||
|
|
||||||
|
wrap-ansi@^7.0.0:
|
||||||
|
version "7.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43"
|
||||||
|
integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==
|
||||||
|
dependencies:
|
||||||
|
ansi-styles "^4.0.0"
|
||||||
|
string-width "^4.1.0"
|
||||||
|
strip-ansi "^6.0.0"
|
||||||
|
|
||||||
wrap-ansi@^8.1.0:
|
wrap-ansi@^8.1.0:
|
||||||
version "8.1.0"
|
version "8.1.0"
|
||||||
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
|
resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214"
|
||||||
|
|
Loading…
Reference in New Issue