diff --git a/web/src/components/ChatBox/ChatInputBox/index.tsx b/web/src/components/ChatBox/ChatInputBox/index.tsx index 7346534d..8ad0cfc3 100644 --- a/web/src/components/ChatBox/ChatInputBox/index.tsx +++ b/web/src/components/ChatBox/ChatInputBox/index.tsx @@ -1,6 +1,7 @@ import { isEnterHotkey } from '@/utils/hot-key'; import { Input } from 'antd'; import React, { useCallback, useRef, useState } from 'react'; +import { t } from 'tailchat-shared'; interface ChatInputBoxProps { onSendMsg: (msg: string) => void; @@ -25,11 +26,11 @@ export const ChatInputBox: React.FC = React.memo((props) => { ); return ( -
+
setMessage(e.target.value)} onKeyDown={handleKeyDown} diff --git a/web/src/routes/Main/Content/Group/PanelRedirect.tsx b/web/src/routes/Main/Content/Group/PanelRedirect.tsx new file mode 100644 index 00000000..4ef9fcd9 --- /dev/null +++ b/web/src/routes/Main/Content/Group/PanelRedirect.tsx @@ -0,0 +1,28 @@ +import React, { useEffect } from 'react'; +import { useHistory, useParams } from 'react-router'; +import { GroupPanelType, useGroupInfo } from 'tailchat-shared'; +import _isNil from 'lodash/isNil'; + +export const GroupPanelRedirect: React.FC = React.memo(() => { + const { groupId } = useParams<{ + groupId: string; + }>(); + const history = useHistory(); + + const groupInfo = useGroupInfo(groupId); + useEffect(() => { + if (!Array.isArray(groupInfo?.panels) || groupInfo?.panels.length === 0) { + return; + } + + const firstAvailablePanel = groupInfo?.panels.find( + (panel) => panel.type !== GroupPanelType.GROUP + ); + if (!_isNil(firstAvailablePanel)) { + history.replace(`/main/group/${groupId}/${firstAvailablePanel.id}`); + } + }, [groupInfo]); + + return null; +}); +GroupPanelRedirect.displayName = 'GroupPanelRedirect'; diff --git a/web/src/routes/Main/Content/Group/index.tsx b/web/src/routes/Main/Content/Group/index.tsx index c63a7712..22638ff6 100644 --- a/web/src/routes/Main/Content/Group/index.tsx +++ b/web/src/routes/Main/Content/Group/index.tsx @@ -2,6 +2,7 @@ import React from 'react'; import { Route, Switch } from 'react-router-dom'; import { PageContent } from '../PageContent'; import { GroupPanelRender } from './Panel'; +import { GroupPanelRedirect } from './PanelRedirect'; import { Sidebar } from './Sidebar'; export const Group: React.FC = React.memo(() => { @@ -12,6 +13,11 @@ export const Group: React.FC = React.memo(() => { path="/main/group/:groupId/:panelId" component={GroupPanelRender} /> + );