chore: satisfies prettier

pull/27073/head
Keno Dressel 2024-01-19 16:00:59 +01:00
parent 2c808eab45
commit 0f19bb7d06
8 changed files with 53 additions and 50 deletions

View File

@ -3,12 +3,12 @@ import { atomWithStorage } from "jotai/utils";
type TokenThreshold = { type TokenThreshold = {
threshold: string; threshold: string;
symbol: string; symbol: string;
} };
export type BareUser = { export type BareUser = {
userId: string; userId: string;
rawDisplayName: string; rawDisplayName: string;
} };
export const verifiedAccountsAtom = atomWithStorage<Record<string, string>>("VERIFIED_ACCOUNTS", {}); export const verifiedAccountsAtom = atomWithStorage<Record<string, string>>("VERIFIED_ACCOUNTS", {});
export const minimumTokenThresholdAtom = atomWithStorage<Record<string, TokenThreshold>>("TOKEN_THRESHOLD", {}); export const minimumTokenThresholdAtom = atomWithStorage<Record<string, TokenThreshold>>("TOKEN_THRESHOLD", {});

View File

@ -6,14 +6,15 @@ import { _t } from "../../../languageHandler";
import { cleanRoomName } from "../../../hooks/useVerifiedRoom"; import { cleanRoomName } from "../../../hooks/useVerifiedRoom";
export function CommunityRoomPeekMessage({ roomName }: { roomName: string }): ReactElement { export function CommunityRoomPeekMessage({ roomName }: { roomName: string }): ReactElement {
const [allTokens] = useAtom(minimumTokenThresholdAtom) const [allTokens] = useAtom(minimumTokenThresholdAtom);
const cleanedRoomName = cleanRoomName(roomName); const cleanedRoomName = cleanRoomName(roomName);
const tokenThreshold = allTokens[cleanedRoomName]; const tokenThreshold = allTokens[cleanedRoomName];
return ( return (
<h3>{_t("room|no_peek_join_prompt_community", { roomName: cleanedRoomName })} { <h3>
tokenThreshold ? (_t('room|no_peek_join_prompt_community_threshold', tokenThreshold)) : '' {_t("room|no_peek_join_prompt_community", { roomName: cleanedRoomName })}{" "}
}</h3> {tokenThreshold ? _t("room|no_peek_join_prompt_community_threshold", tokenThreshold) : ""}
</h3>
); );
} }

View File

@ -5,37 +5,36 @@ import { Room } from "matrix-js-sdk/src/matrix";
import { minimumTokenThresholdAtom } from "../../../atoms"; import { minimumTokenThresholdAtom } from "../../../atoms";
import { _t } from "../../../languageHandler"; import { _t } from "../../../languageHandler";
import { useVerifiedRoom } from "../../../hooks/useVerifiedRoom"; import { useVerifiedRoom } from "../../../hooks/useVerifiedRoom";
import { MessageCommunityBotButton } from "./MessageButton"; import { MessageCommunityBotButton } from "./MessageButton";
export function DisabledMessageField({ room }: { room: Room }): JSX.Element { export function DisabledMessageField({ room }: { room: Room }): JSX.Element {
const [allTokens] = useAtom(minimumTokenThresholdAtom) const [allTokens] = useAtom(minimumTokenThresholdAtom);
const { isTokenGatedRoom, isCommunityRoom, } = useVerifiedRoom(room); const { isTokenGatedRoom, isCommunityRoom } = useVerifiedRoom(room);
let tokenThreshold = allTokens[room.name]; let tokenThreshold = allTokens[room.name];
if(!tokenThreshold) { if (!tokenThreshold) {
const tokenName = room.name.match(/\[TG] (.*) \(ct_.*\)/)?.[1]; const tokenName = room.name.match(/\[TG] (.*) \(ct_.*\)/)?.[1];
if(isTokenGatedRoom && tokenName) { if (isTokenGatedRoom && tokenName) {
tokenThreshold = { tokenThreshold = {
threshold: "1", threshold: "1",
symbol: tokenName, symbol: tokenName,
} };
} }
} }
if (tokenThreshold) { if (tokenThreshold) {
return ( return (
<div key="controls_error" className="mx_MessageComposer_noperm_error"> <div key="controls_error" className="mx_MessageComposer_noperm_error">
{_t("composer|no_perms_token_notice", tokenThreshold)} {_t("composer|no_perms_token_notice", tokenThreshold)}
{ isCommunityRoom ? ( {isCommunityRoom ? (
<> <>
<span style={{'marginLeft': '1rem', display: 'block'}} /> <span style={{ marginLeft: "1rem", display: "block" }} />
<MessageCommunityBotButton text="Get room tokens" /> <MessageCommunityBotButton text="Get room tokens" />
</> </>
) : null } ) : null}
</div> </div>
); );
} else { } else {
return ( return (
<div key="controls_error" className="mx_MessageComposer_noperm_error"> <div key="controls_error" className="mx_MessageComposer_noperm_error">
{_t("composer|no_perms_notice")} {_t("composer|no_perms_notice")}

View File

@ -13,7 +13,7 @@ import { BareUser, communityBotAtom } from "../../../atoms";
* Converts the member to a DirectoryMember and starts a DM with them. * Converts the member to a DirectoryMember and starts a DM with them.
*/ */
async function openDmForUser(matrixClient: MatrixClient, user: Member | BareUser): Promise<void> { async function openDmForUser(matrixClient: MatrixClient, user: Member | BareUser): Promise<void> {
const avatarUrl = user instanceof User ? user.avatarUrl : user instanceof RoomMember ? user.getMxcAvatarUrl() : ''; const avatarUrl = user instanceof User ? user.avatarUrl : user instanceof RoomMember ? user.getMxcAvatarUrl() : "";
const startDmUser = new DirectoryMember({ const startDmUser = new DirectoryMember({
user_id: user.userId, user_id: user.userId,
display_name: user.rawDisplayName, display_name: user.rawDisplayName,
@ -22,7 +22,13 @@ async function openDmForUser(matrixClient: MatrixClient, user: Member | BareUser
await startDmOnFirstMessage(matrixClient, [startDmUser]); await startDmOnFirstMessage(matrixClient, [startDmUser]);
} }
export const MessageButton = ({ member, text = 'Send Message' }: { member: Member | BareUser, text?: string }): JSX.Element => { export const MessageButton = ({
member,
text = "Send Message",
}: {
member: Member | BareUser;
text?: string;
}): JSX.Element => {
const cli = useContext(MatrixClientContext); const cli = useContext(MatrixClientContext);
const [busy, setBusy] = useState(false); const [busy, setBusy] = useState(false);
@ -44,12 +50,8 @@ export const MessageButton = ({ member, text = 'Send Message' }: { member: Membe
); );
}; };
export const MessageCommunityBotButton = ({ text = 'Send Message' }: { text?: string }): JSX.Element => { export const MessageCommunityBotButton = ({ text = "Send Message" }: { text?: string }): JSX.Element => {
const [communityBot] = useAtom(communityBotAtom) const [communityBot] = useAtom(communityBotAtom);
return ( return <MessageButton member={communityBot} text={text} />;
<MessageButton member={communityBot} text={text} />
);
}; };

View File

@ -47,7 +47,11 @@ import { Action } from "matrix-react-sdk/src/dispatcher/actions";
import { SettingUpdatedPayload } from "matrix-react-sdk/src/dispatcher/payloads/SettingUpdatedPayload"; import { SettingUpdatedPayload } from "matrix-react-sdk/src/dispatcher/payloads/SettingUpdatedPayload";
import { ViewRoomPayload } from "matrix-react-sdk/src/dispatcher/payloads/ViewRoomPayload"; import { ViewRoomPayload } from "matrix-react-sdk/src/dispatcher/payloads/ViewRoomPayload";
import { ComposerInsertPayload } from "matrix-react-sdk/src/dispatcher/payloads/ComposerInsertPayload"; import { ComposerInsertPayload } from "matrix-react-sdk/src/dispatcher/payloads/ComposerInsertPayload";
import { getConversionFunctions, sendMessage, SendWysiwygComposer } from "matrix-react-sdk/src/components/views/rooms/wysiwyg_composer"; import {
getConversionFunctions,
sendMessage,
SendWysiwygComposer,
} from "matrix-react-sdk/src/components/views/rooms/wysiwyg_composer";
import EditorModel from "matrix-react-sdk/src/editor/model"; import EditorModel from "matrix-react-sdk/src/editor/model";
import { isLocalRoom } from "matrix-react-sdk/src/utils/localRoom/isLocalRoom"; import { isLocalRoom } from "matrix-react-sdk/src/utils/localRoom/isLocalRoom";
import { aboveLeftOf, MenuProps } from "matrix-react-sdk/src/components/structures/ContextMenu"; import { aboveLeftOf, MenuProps } from "matrix-react-sdk/src/components/structures/ContextMenu";
@ -55,7 +59,9 @@ import { SdkContextClass } from "matrix-react-sdk/src/contexts/SDKContext";
import { VoiceBroadcastInfoState } from "matrix-react-sdk/src/voice-broadcast"; import { VoiceBroadcastInfoState } from "matrix-react-sdk/src/voice-broadcast";
import { createCantStartVoiceMessageBroadcastDialog } from "matrix-react-sdk/src/components/views/dialogs/CantStartVoiceMessageBroadcastDialog"; import { createCantStartVoiceMessageBroadcastDialog } from "matrix-react-sdk/src/components/views/dialogs/CantStartVoiceMessageBroadcastDialog";
import E2EIcon from "matrix-react-sdk/src/components/views/rooms/E2EIcon"; import E2EIcon from "matrix-react-sdk/src/components/views/rooms/E2EIcon";
import SendMessageComposer, { SendMessageComposer as SendMessageComposerClass } from "matrix-react-sdk/src/components/views/rooms/SendMessageComposer"; import SendMessageComposer, {
SendMessageComposer as SendMessageComposerClass,
} from "matrix-react-sdk/src/components/views/rooms/SendMessageComposer";
import Tooltip, { Alignment } from "matrix-react-sdk/src/components/views/elements/Tooltip"; import Tooltip, { Alignment } from "matrix-react-sdk/src/components/views/elements/Tooltip";
import { formatTimeLeft } from "matrix-react-sdk/src/DateUtils"; import { formatTimeLeft } from "matrix-react-sdk/src/DateUtils";
import Stickerpicker from "matrix-react-sdk/src/components/views/rooms/Stickerpicker"; import Stickerpicker from "matrix-react-sdk/src/components/views/rooms/Stickerpicker";
@ -546,10 +552,7 @@ export class MessageComposer extends React.Component<IProps, IState> {
controls.push( controls.push(
<div className="mx_MessageComposer_replaced_wrapper" key="room_replaced"> <div className="mx_MessageComposer_replaced_wrapper" key="room_replaced">
<div className="mx_MessageComposer_replaced_valign"> <div className="mx_MessageComposer_replaced_valign">
<RoomReplacedIcon <RoomReplacedIcon aria-hidden className="mx_MessageComposer_roomReplaced_icon" />
aria-hidden
className="mx_MessageComposer_roomReplaced_icon"
/>
<span className="mx_MessageComposer_roomReplaced_header"> <span className="mx_MessageComposer_roomReplaced_header">
{_t("composer|room_upgraded_notice")} {_t("composer|room_upgraded_notice")}
</span> </span>
@ -559,9 +562,7 @@ export class MessageComposer extends React.Component<IProps, IState> {
</div>, </div>,
); );
} else { } else {
controls.push( controls.push(<DisabledMessageField room={this.props.room} key="controls_error" />);
<DisabledMessageField room={this.props.room} key="controls_error" />,
);
} }
let recordingTooltip: JSX.Element | undefined; let recordingTooltip: JSX.Element | undefined;

View File

@ -334,7 +334,6 @@ export default class RoomPreviewBar extends React.Component<IProps, IState> {
const { isCommunityRoom } = isVerifiedRoom(roomName); const { isCommunityRoom } = isVerifiedRoom(roomName);
const messageCase = this.getMessageCase(); const messageCase = this.getMessageCase();
switch (messageCase) { switch (messageCase) {
case MessageCase.Joining: { case MessageCase.Joining: {
@ -704,10 +703,10 @@ export default class RoomPreviewBar extends React.Component<IProps, IState> {
); );
} }
if(isCommunityRoom) { if (isCommunityRoom) {
secondaryButton = primaryButton; secondaryButton = primaryButton;
primaryButton = (<MessageCommunityBotButton text="Message Superhero Bot to get tokens" />); primaryButton = <MessageCommunityBotButton text="Message Superhero Bot to get tokens" />;
titleElement = (<CommunityRoomPeekMessage roomName={roomName} />); titleElement = <CommunityRoomPeekMessage roomName={roomName} />;
} }
const isPanel = this.props.canPreview; const isPanel = this.props.canPreview;

View File

@ -16,7 +16,7 @@ const useMinimumTokenThreshold = (config: any): void => {
.then((res) => res.json()) .then((res) => res.json())
.then(setMinimumTokenThreshold) .then(setMinimumTokenThreshold)
.catch((e) => { .catch((e) => {
console.error('Error loading minimum token threshold', e); console.error("Error loading minimum token threshold", e);
}) })
.finally(() => { .finally(() => {
setIsLoading(false); setIsLoading(false);
@ -33,8 +33,7 @@ const useMinimumTokenThreshold = (config: any): void => {
return (): void => clearInterval(interval); return (): void => clearInterval(interval);
}, [loadMinimumTokenThreshold]); }, [loadMinimumTokenThreshold]);
} };
/** /**
* Provides the superhero context to its children components. * Provides the superhero context to its children components.
@ -49,7 +48,7 @@ export const SuperheroProvider = ({ children, config }: any): any => {
useEffect(() => { useEffect(() => {
setCommunityBot({ setCommunityBot({
userId: config.community_bot_user_id, userId: config.community_bot_user_id,
rawDisplayName: 'Community DAO Room Bot', rawDisplayName: "Community DAO Room Bot",
}); });
}, [setCommunityBot, config.community_bot_user_id]); }, [setCommunityBot, config.community_bot_user_id]);

View File

@ -25,21 +25,23 @@ export function useVerifiedRoom(room?: Room | IPublicRoomsChunkRoom): {
export const cleanRoomName = (roomName: string): string => { export const cleanRoomName = (roomName: string): string => {
// remove # in the beginning // remove # in the beginning
let parsedName = roomName.startsWith('#') ? roomName.slice(1) : roomName; let parsedName = roomName.startsWith("#") ? roomName.slice(1) : roomName;
// remove domain // remove domain
parsedName = parsedName.split(':')[0]; parsedName = parsedName.split(":")[0];
return parsedName; return parsedName;
} };
export const isVerifiedRoom = (roomName: string): { export const isVerifiedRoom = (
roomName: string,
): {
isTokenGatedRoom: boolean; isTokenGatedRoom: boolean;
isCommunityRoom: boolean; isCommunityRoom: boolean;
} => { } => {
const parsedRoomName = cleanRoomName(roomName); const parsedRoomName = cleanRoomName(roomName);
return { return {
isTokenGatedRoom: parsedRoomName.startsWith("[TG]"), isTokenGatedRoom: parsedRoomName.startsWith("[TG]"),
isCommunityRoom: parsedRoomName.startsWith("$"), isCommunityRoom: parsedRoomName.startsWith("$"),
} };
} };