add tableflip and unflip commands (#2075)
authorRein Fernhout <reinrijn@gmail.com>
Fri, 13 Dec 2024 04:32:25 +0000 (05:32 +0100)
committerGitHub <noreply@github.com>
Fri, 13 Dec 2024 04:32:25 +0000 (10:02 +0530)
src/app/features/room/RoomInput.tsx
src/app/hooks/useCommands.ts

index 8fcfbc9720767e9be4f56258374458b70bac19d1..4d43c7e964842a7f85cca8819e8ee42c5e6c0997 100644 (file)
@@ -103,7 +103,7 @@ import {
 } from '../../utils/room';
 import { sanitizeText } from '../../utils/sanitize';
 import { CommandAutocomplete } from './CommandAutocomplete';
-import { Command, SHRUG, useCommands } from '../../hooks/useCommands';
+import { Command, SHRUG, TABLEFLIP, UNFLIP, useCommands } from '../../hooks/useCommands';
 import { mobileOrTablet } from '../../utils/user-agent';
 import { useElementSizeObserver } from '../../hooks/useElementSizeObserver';
 import { ReplyLayout, ThreadIndicator } from '../../components/message';
@@ -270,6 +270,12 @@ export const RoomInput = forwardRef<HTMLDivElement, RoomInputProps>(
       } else if (commandName === Command.Shrug) {
         plainText = `${SHRUG} ${plainText}`;
         customHtml = `${SHRUG} ${customHtml}`;
+      } else if (commandName === Command.TableFlip) {
+        plainText = `${TABLEFLIP} ${plainText}`;
+        customHtml = `${TABLEFLIP} ${customHtml}`;
+      } else if (commandName === Command.UnFlip) {
+        plainText = `${UNFLIP} ${plainText}`;
+        customHtml = `${UNFLIP} ${customHtml}`;
       } else if (commandName) {
         const commandContent = commands[commandName as Command];
         if (commandContent) {
index 182d13070407b163d1f2f671c2e662c713987cde..bc7d2892582464725bbee4079b5613c5818efa07 100644 (file)
@@ -6,6 +6,8 @@ import * as roomActions from '../../client/action/room';
 import { useRoomNavigate } from './useRoomNavigate';
 
 export const SHRUG = '¯\\_(ツ)_/¯';
+export const TABLEFLIP = '(╯°□°)╯︵ ┻━┻';
+export const UNFLIP = '┬─┬ノ( º_ºノ)';
 
 export function parseUsersAndReason(payload: string): {
   users: string[];
@@ -48,6 +50,8 @@ export enum Command {
   MyRoomAvatar = 'myroomavatar',
   ConvertToDm = 'converttodm',
   ConvertToRoom = 'converttoroom',
+  TableFlip = 'tableflip',
+  UnFlip = 'unflip',
 }
 
 export type CommandContent = {
@@ -78,6 +82,16 @@ export const useCommands = (mx: MatrixClient, room: Room): CommandRecord => {
         description: 'Send ¯\\_(ツ)_/¯ as message',
         exe: async () => undefined,
       },
+      [Command.TableFlip]: {
+        name: Command.TableFlip,
+        description: `Send ${TABLEFLIP} as message`,
+        exe: async () => undefined,
+      },
+      [Command.UnFlip]: {
+        name: Command.UnFlip,
+        description: `Send ${UNFLIP} as message`,
+        exe: async () => undefined,
+      },
       [Command.StartDm]: {
         name: Command.StartDm,
         description: 'Start direct message with user. Example: /startdm userId1',