chore: satisfies linter
parent
110250d0c3
commit
2c808eab45
|
@ -1,14 +1,15 @@
|
|||
import { useAtom } from "jotai";
|
||||
import React, { ReactElement } from "react";
|
||||
|
||||
import { minimumTokenThresholdAtom } from "../../../atoms";
|
||||
import { _t } from "../../../languageHandler";
|
||||
import React, { ReactElement } from "react";
|
||||
import { cleanRoomName } from "../../../hooks/useVerifiedRoom";
|
||||
|
||||
export function CommunityRoomPeekMessage({ roomName }: { roomName: string }): ReactElement {
|
||||
const [allTokens] = useAtom(minimumTokenThresholdAtom)
|
||||
const cleanedRoomName = cleanRoomName(roomName);
|
||||
|
||||
let tokenThreshold = allTokens[cleanedRoomName];
|
||||
const tokenThreshold = allTokens[cleanedRoomName];
|
||||
|
||||
return (
|
||||
<h3>{_t("room|no_peek_join_prompt_community", { roomName: cleanedRoomName })} {
|
||||
|
|
|
@ -1,9 +1,10 @@
|
|||
import { useAtom } from "jotai";
|
||||
import React from "react";
|
||||
import { Room } from "matrix-js-sdk/src/matrix";
|
||||
|
||||
import { minimumTokenThresholdAtom } from "../../../atoms";
|
||||
import { _t } from "../../../languageHandler";
|
||||
import React from "react";
|
||||
import { useVerifiedRoom } from "../../../hooks/useVerifiedRoom";
|
||||
import { Room } from "matrix-js-sdk/src/matrix";
|
||||
import { MessageCommunityBotButton } from "./MessageButton";
|
||||
|
||||
export function DisabledMessageField({ room }: { room: Room }): JSX.Element {
|
||||
|
@ -28,8 +29,8 @@ export function DisabledMessageField({ room }: { room: Room }): JSX.Element {
|
|||
{_t("composer|no_perms_token_notice", tokenThreshold)}
|
||||
{ isCommunityRoom ? (
|
||||
<>
|
||||
<span style={{'marginLeft': '1rem', display: 'block'}}></span>
|
||||
<MessageCommunityBotButton text={'Get room tokens'} />
|
||||
<span style={{'marginLeft': '1rem', display: 'block'}} />
|
||||
<MessageCommunityBotButton text="Get room tokens" />
|
||||
</>
|
||||
) : null }
|
||||
</div>
|
||||
|
|
|
@ -1,13 +1,14 @@
|
|||
import React, { useContext, useState } from "react";
|
||||
import MatrixClientContext from "matrix-react-sdk/src/contexts/MatrixClientContext";
|
||||
import AccessibleButton from "matrix-react-sdk/src/components/views/elements/AccessibleButton";
|
||||
import { Member } from "../right_panel/UserInfo";
|
||||
import { Icon as SendMessage } from "../../../../res/themes/superhero/img/icons/send.svg";
|
||||
import { MatrixClient, RoomMember, User } from "matrix-js-sdk/src/matrix";
|
||||
import { DirectoryMember, startDmOnFirstMessage } from "matrix-react-sdk/src/utils/direct-messages";
|
||||
|
||||
import { BareUser, communityBotAtom } from "../../../atoms";
|
||||
import { useAtom } from "jotai";
|
||||
|
||||
import { Member } from "../right_panel/UserInfo";
|
||||
import { Icon as SendMessage } from "../../../../res/themes/superhero/img/icons/send.svg";
|
||||
import { BareUser, communityBotAtom } from "../../../atoms";
|
||||
|
||||
/**
|
||||
* Converts the member to a DirectoryMember and starts a DM with them.
|
||||
*/
|
||||
|
|
|
@ -25,8 +25,6 @@ import {
|
|||
THREAD_RELATION_TYPE,
|
||||
} from "matrix-js-sdk/src/matrix";
|
||||
import { Optional } from "matrix-events-sdk";
|
||||
|
||||
import { _t } from "../../../languageHandler";
|
||||
import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg";
|
||||
import { ButtonEvent } from "matrix-react-sdk/src/components/views/elements/AccessibleButton";
|
||||
import AccessibleTooltipButton from "matrix-react-sdk/src/components/views/elements/AccessibleTooltipButton";
|
||||
|
@ -65,6 +63,9 @@ import ReplyPreview from "matrix-react-sdk/src/components/views/rooms/ReplyPrevi
|
|||
import MessageComposerButtons from "matrix-react-sdk/src/components/views/rooms/MessageComposerButtons";
|
||||
import { UIFeature } from "matrix-react-sdk/src/settings/UIFeature";
|
||||
import { setUpVoiceBroadcastPreRecording } from "matrix-react-sdk/src/voice-broadcast/utils/setUpVoiceBroadcastPreRecording";
|
||||
import { Icon as RoomReplacedIcon } from "matrix-react-sdk/res/img/room_replaced.svg";
|
||||
|
||||
import { _t } from "../../../languageHandler";
|
||||
import { DisabledMessageField } from "../elements/DisabledMessageField";
|
||||
|
||||
let instanceCount = 0;
|
||||
|
@ -545,11 +546,9 @@ export class MessageComposer extends React.Component<IProps, IState> {
|
|||
controls.push(
|
||||
<div className="mx_MessageComposer_replaced_wrapper" key="room_replaced">
|
||||
<div className="mx_MessageComposer_replaced_valign">
|
||||
<img
|
||||
<RoomReplacedIcon
|
||||
aria-hidden
|
||||
alt=""
|
||||
className="mx_MessageComposer_roomReplaced_icon"
|
||||
src={require("matrix-react-sdk/res/img/room_replaced.svg").default}
|
||||
/>
|
||||
<span className="mx_MessageComposer_roomReplaced_header">
|
||||
{_t("composer|room_upgraded_notice")}
|
||||
|
|
|
@ -26,14 +26,12 @@ import {
|
|||
} from "matrix-js-sdk/src/matrix";
|
||||
import classNames from "classnames";
|
||||
import { RoomPreviewOpts, RoomViewLifecycle } from "@matrix-org/react-sdk-module-api/lib/lifecycles/RoomViewLifecycle";
|
||||
|
||||
import { Icon as AskToJoinIcon } from "matrix-react-sdk/res/img/element-icons/ask-to-join.svg";
|
||||
import { IOOBData } from "matrix-react-sdk/src/stores/ThreepidInviteStore";
|
||||
import { MatrixClientPeg } from "matrix-react-sdk/src/MatrixClientPeg";
|
||||
import IdentityAuthClient from "matrix-react-sdk/src/IdentityAuthClient";
|
||||
import { UserFriendlyError } from "matrix-react-sdk/src/languageHandler";
|
||||
import SdkConfig from "matrix-react-sdk/src/SdkConfig";
|
||||
import { _t } from "../../../languageHandler";
|
||||
import { ModuleRunner } from "matrix-react-sdk/src/modules/ModuleRunner";
|
||||
import SettingsStore from "matrix-react-sdk/src/settings/SettingsStore";
|
||||
import { UIFeature } from "matrix-react-sdk/src/settings/UIFeature";
|
||||
|
@ -43,6 +41,8 @@ import InviteReason from "matrix-react-sdk/src/components/views/elements/InviteR
|
|||
import AccessibleButton from "matrix-react-sdk/src/components/views/elements/AccessibleButton";
|
||||
import Field from "matrix-react-sdk/src/components/views/elements/Field";
|
||||
import dis from "matrix-react-sdk/src/dispatcher/dispatcher";
|
||||
|
||||
import { _t } from "../../../languageHandler";
|
||||
import { isVerifiedRoom } from "../../../hooks/useVerifiedRoom";
|
||||
import { MessageCommunityBotButton } from "../elements/MessageButton";
|
||||
import { CommunityRoomPeekMessage } from "../elements/CommunityRoomPeekMessage";
|
||||
|
@ -127,7 +127,7 @@ interface IState {
|
|||
|
||||
export default class RoomPreviewBar extends React.Component<IProps, IState> {
|
||||
public static defaultProps = {
|
||||
onJoinClick() {},
|
||||
onJoinClick(): void {},
|
||||
};
|
||||
|
||||
public constructor(props: IProps) {
|
||||
|
@ -365,7 +365,7 @@ export default class RoomPreviewBar extends React.Component<IProps, IState> {
|
|||
if (opts.canJoin) {
|
||||
title = _t("room|join_title");
|
||||
primaryActionLabel = _t("action|join");
|
||||
primaryActionHandler = () => {
|
||||
primaryActionHandler = (): void => {
|
||||
ModuleRunner.instance.invoke(RoomViewLifecycle.JoinFromRoomPreview, this.props.roomId);
|
||||
};
|
||||
} else {
|
||||
|
@ -643,7 +643,7 @@ export default class RoomPreviewBar extends React.Component<IProps, IState> {
|
|||
/>
|
||||
);
|
||||
|
||||
primaryActionHandler = () =>
|
||||
primaryActionHandler = (): void =>
|
||||
this.props.onSubmitAskToJoin && this.props.onSubmitAskToJoin(this.state.reason);
|
||||
primaryActionLabel = _t("room|knock_send_action");
|
||||
|
||||
|
@ -706,7 +706,7 @@ export default class RoomPreviewBar extends React.Component<IProps, IState> {
|
|||
|
||||
if(isCommunityRoom) {
|
||||
secondaryButton = primaryButton;
|
||||
primaryButton = (<MessageCommunityBotButton text={'Message Superhero Bot to get tokens'} />);
|
||||
primaryButton = (<MessageCommunityBotButton text="Message Superhero Bot to get tokens" />);
|
||||
titleElement = (<CommunityRoomPeekMessage roomName={roomName} />);
|
||||
}
|
||||
|
||||
|
|
|
@ -3,8 +3,8 @@ import React, { useCallback, useEffect } from "react";
|
|||
|
||||
import { communityBotAtom, minimumTokenThresholdAtom, verifiedAccountsAtom } from "../atoms";
|
||||
|
||||
const useMinimumTokenThreshold = (config: any) => {
|
||||
const [_, setMinimumTokenThreshold] = useAtom(minimumTokenThresholdAtom);
|
||||
const useMinimumTokenThreshold = (config: any): void => {
|
||||
const [, setMinimumTokenThreshold] = useAtom(minimumTokenThresholdAtom);
|
||||
const [isLoading, setIsLoading] = React.useState(false);
|
||||
|
||||
const loadMinimumTokenThreshold = useCallback(() => {
|
||||
|
@ -22,7 +22,7 @@ const useMinimumTokenThreshold = (config: any) => {
|
|||
setIsLoading(false);
|
||||
});
|
||||
}
|
||||
}, [config.bots_backend_url, setMinimumTokenThreshold]);
|
||||
}, [config.bots_backend_url, isLoading, setMinimumTokenThreshold]);
|
||||
|
||||
useEffect(() => {
|
||||
loadMinimumTokenThreshold();
|
||||
|
@ -31,7 +31,7 @@ const useMinimumTokenThreshold = (config: any) => {
|
|||
loadMinimumTokenThreshold();
|
||||
}, 10000);
|
||||
|
||||
return () => clearInterval(interval);
|
||||
return (): void => clearInterval(interval);
|
||||
}, [loadMinimumTokenThreshold]);
|
||||
}
|
||||
|
||||
|
@ -44,14 +44,14 @@ const useMinimumTokenThreshold = (config: any) => {
|
|||
*/
|
||||
export const SuperheroProvider = ({ children, config }: any): any => {
|
||||
const [verifiedAccounts, setVerifiedAccounts] = useAtom(verifiedAccountsAtom);
|
||||
const [_, setCommunityBot] = useAtom(communityBotAtom);
|
||||
const [, setCommunityBot] = useAtom(communityBotAtom);
|
||||
|
||||
useEffect(() => {
|
||||
setCommunityBot({
|
||||
userId: config.community_bot_user_id,
|
||||
rawDisplayName: 'Community DAO Room Bot',
|
||||
});
|
||||
}, []);
|
||||
}, [setCommunityBot, config.community_bot_user_id]);
|
||||
|
||||
function loadVerifiedAccounts(): void {
|
||||
if (config.bots_backend_url) {
|
||||
|
|
|
@ -23,7 +23,7 @@ export function useVerifiedRoom(room?: Room | IPublicRoomsChunkRoom): {
|
|||
};
|
||||
}
|
||||
|
||||
export function cleanRoomName(roomName: string) {
|
||||
export const cleanRoomName = (roomName: string): string => {
|
||||
// remove # in the beginning
|
||||
let parsedName = roomName.startsWith('#') ? roomName.slice(1) : roomName;
|
||||
|
||||
|
@ -33,8 +33,11 @@ export function cleanRoomName(roomName: string) {
|
|||
return parsedName;
|
||||
}
|
||||
|
||||
export function isVerifiedRoom(roomName: string) {
|
||||
let parsedRoomName = cleanRoomName(roomName);
|
||||
export const isVerifiedRoom = (roomName: string): {
|
||||
isTokenGatedRoom: boolean;
|
||||
isCommunityRoom: boolean;
|
||||
} => {
|
||||
const parsedRoomName = cleanRoomName(roomName);
|
||||
return {
|
||||
isTokenGatedRoom: parsedRoomName.startsWith("[TG]"),
|
||||
isCommunityRoom: parsedRoomName.startsWith("$"),
|
||||
|
|
Loading…
Reference in New Issue