diff --git a/package.json b/package.json index 0c550525..86a03f81 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vocechat-web", - "version": "0.3.55", + "version": "0.3.56", "private": true, "homepage": "https://voce.chat", "dependencies": { @@ -15,7 +15,7 @@ "@toast-ui/editor-plugin-code-syntax-highlight": "^3.1.0", "@toast-ui/react-editor": "^3.2.3", "@types/node": "^18.15.10", - "@types/react": "^18.0.29", + "@types/react": "^18.0.30", "@types/react-dom": "^18.0.11", "@udecode/plate": "16.8", "@uiball/loaders": "^1.2.6", @@ -26,7 +26,7 @@ "clsx": "^1.2.1", "copy-image-clipboard": "^2.1.2", "css-loader": "^6.7.3", - "css-minimizer-webpack-plugin": "^4.2.2", + "css-minimizer-webpack-plugin": "^5.0.0", "dayjs": "^1.11.7", "dotenv": "^16.0.3", "dotenv-expand": "^10.0.0", @@ -53,7 +53,7 @@ "react-dnd": "16.0.1", "react-dnd-html5-backend": "16.0.1", "react-dom": "^18.2.0", - "react-error-boundary": "^4.0.2", + "react-error-boundary": "^4.0.3", "react-helmet": "^6.1.0", "react-hot-toast": "^2.4.0", "react-i18next": "^12.2.0", @@ -67,7 +67,7 @@ "react-viewport-list": "^7.0.0", "react-virtuoso": "^4.1.0", "resolve": "^1.22.1", - "rooks": "^7.8.5", + "rooks": "^7.9.0", "slate": "^0.91.4", "slate-history": "^0.86.0", "slate-react": "^0.92.0", @@ -125,8 +125,8 @@ "@types/masonry-layout": "^4.2.5", "@types/react-helmet": "^6.1.6", "@types/react-syntax-highlighter": "^15.5.6", - "@typescript-eslint/eslint-plugin": "^5.56.0", - "@typescript-eslint/parser": "^5.56.0", + "@typescript-eslint/eslint-plugin": "^5.57.0", + "@typescript-eslint/parser": "^5.57.0", "@welldone-software/why-did-you-render": "^7.0.1", "autoprefixer": "^10.4.14", "babel-loader": "^9.1.2", diff --git a/src/common/component/TextInput/index.tsx b/src/common/component/TextInput/index.tsx index 4b37c984..a7010794 100644 --- a/src/common/component/TextInput/index.tsx +++ b/src/common/component/TextInput/index.tsx @@ -1,6 +1,8 @@ -import { ChangeEvent, useState } from 'react'; +import { ChangeEvent, useRef, useState } from 'react'; import { useTranslation } from 'react-i18next'; import TextareaAutoSize from "react-textarea-autosize"; +import { useKey } from 'rooks'; +import { isMobile } from '../../utils'; import Button from "../styled/Button"; @@ -10,6 +12,7 @@ type Props = { } const TextInput = ({ sendMessage, placeholder }: Props) => { const { t } = useTranslation(); + const inputRef = useRef(null); const [currMsg, setCurrMsg] = useState(""); const handleMsgChange = (evt: ChangeEvent) => { setCurrMsg(evt.target.value); @@ -21,6 +24,19 @@ const TextInput = ({ sendMessage, placeholder }: Props) => { sendMessage(msg); setCurrMsg(""); }; + + useKey( + "Enter", + (evt) => { + evt.preventDefault(); + // return true; + handleSend(); + }, + { + when: !isMobile(), + target: inputRef, + } + ); return (
{ e.currentTarget.value.length ) } - // ref={inputRef} + ref={inputRef} className="p-1 w-full min-h-[28px] resize-none bg-transparent text-gray-800 dark:text-white text-sm break-all" maxRows={8} minRows={1} diff --git a/src/routes/settingChannel/Overview.tsx b/src/routes/settingChannel/Overview.tsx index 5b7c3d8c..09160a3d 100644 --- a/src/routes/settingChannel/Overview.tsx +++ b/src/routes/settingChannel/Overview.tsx @@ -119,7 +119,7 @@ export default function Overview({ id = 0 }) { id="name" placeholder={t("topic_placeholder")} />
- {!readOnly &&
+ {!readOnly && loginUser.is_admin &&