feat(#2): disable commands

pull/26786/head
Badi Ifaoui 2023-11-28 12:42:48 +01:00 committed by Badi Ifaoui
parent 12544fcd30
commit a9105d24ab
3 changed files with 68 additions and 1 deletions

View File

@ -1,5 +1,7 @@
{
"src/components/views/auth/AuthFooter.tsx": "src/components/views/auth/VectorAuthFooter.tsx",
"src/components/views/auth/AuthHeaderLogo.tsx": "src/components/views/auth/VectorAuthHeaderLogo.tsx",
"src/components/views/auth/AuthPage.tsx": "src/components/views/auth/VectorAuthPage.tsx"
"src/components/views/auth/AuthPage.tsx": "src/components/views/auth/VectorAuthPage.tsx",
"src/components/views/rooms/Autocomplete.tsx": "src/components/views/rooms/Autocomplete.tsx",
"src/editor/commands.tsx": "src/editor/commands.tsx"
}

View File

@ -0,0 +1,31 @@
import React from "react";
export const generateCompletionDomId = (n: number): string => `mx_Autocomplete_Completion_${n}`;
export default class Autocomplete extends React.PureComponent {
public constructor(props: {} | Readonly<{}>) {
super(props);
this.state = {
// list of completionResults, each containing completions
completions: [],
// array of completions, so we can look up current selection by offset quickly
completionList: [],
// how far down the completion list we are (THIS IS 1-INDEXED!)
selectionOffset: 1,
// whether we should show completions if they're available
shouldShowCompletions: true,
hide: false,
forceComplete: false,
};
}
public render(): React.ReactNode {
return null;
}
}

34
src/editor/commands.tsx Normal file
View File

@ -0,0 +1,34 @@
import { IContent, MatrixClient } from "matrix-js-sdk/src/matrix";
import { Command, getCommand } from "matrix-react-sdk/src/SlashCommands";
import EditorModel from "matrix-react-sdk/src/editor/model";
import { Type } from "matrix-react-sdk/src/editor/parts";
export function isSlashCommand(model: EditorModel): boolean {
return false;
}
export function getSlashCommand(model: EditorModel): [Command | undefined, string | undefined, string] {
const commandText = model.parts.reduce((text, part) => {
// use mxid to textify user pills in a command and room alias/id for room pills
if (part.type === Type.UserPill || part.type === Type.RoomPill) {
return text + part.resourceId;
}
return text + part.text;
}, "");
const { cmd, args } = getCommand(commandText);
return [cmd, args, commandText];
}
export async function runSlashCommand(
matrixClient: MatrixClient,
cmd: Command,
args: string | undefined,
roomId: string,
threadId: string | null,
): Promise<[content: IContent | null, success: boolean]> {
return [null, false];
}
export async function shouldSendAnyway(commandText: string): Promise<boolean> {
return true;
}