From 505c6c38eda3d180eb9086c6bc68f02b00301a8c Mon Sep 17 00:00:00 2001 From: moonrailgun Date: Sun, 19 Nov 2023 19:15:47 +0800 Subject: [PATCH] feat: add livekit call invite notication card and actions --- client/shared/index.tsx | 2 + client/shared/manager/ui.ts | 8 ++++ client/web/assets/audio/telephone.mp3 | Bin 0 -> 83958 bytes client/web/build/webpack.config.ts | 4 ++ client/web/src/init.tsx | 17 +++++++- client/web/src/plugin/common/index.ts | 1 + client/web/src/plugin/component/index.tsx | 2 +- client/web/tailchat.d.ts | 7 ++++ .../src/components/InviteCallNotification.tsx | 39 ++++++++++++++++++ .../src/components/lib/Member.tsx | 2 +- .../plugins/com.msgbyte.livekit/src/index.tsx | 33 +++++++++++++++ .../com.msgbyte.livekit/src/translate.ts | 4 ++ .../com.msgbyte.livekit/types/tailchat.d.ts | 32 +++++++++++++- 13 files changed, 146 insertions(+), 5 deletions(-) create mode 100644 client/web/assets/audio/telephone.mp3 create mode 100644 server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/InviteCallNotification.tsx diff --git a/client/shared/index.tsx b/client/shared/index.tsx index 7b406a04..0a4ba35e 100644 --- a/client/shared/index.tsx +++ b/client/shared/index.tsx @@ -108,6 +108,8 @@ export { setAlert, showGlobalLoading, setGlobalLoading, + showNotification, + setNotification, } from './manager/ui'; // model diff --git a/client/shared/manager/ui.ts b/client/shared/manager/ui.ts index 9675d993..aa05f6ae 100644 --- a/client/shared/manager/ui.ts +++ b/client/shared/manager/ui.ts @@ -47,3 +47,11 @@ export const [showGlobalLoading, setGlobalLoading] = buildRegFn< >('global-loading', () => { return () => {}; }); + +/** + * 提示通知,返回关闭函数 + */ +export const [showNotification, setNotification] = + buildRegFn<(message: React.ReactNode, duration?: number) => () => void>( + 'notification' + ); diff --git a/client/web/assets/audio/telephone.mp3 b/client/web/assets/audio/telephone.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..61deeaf40b34ae0c8b2e0d15f232bcf5de609259 GIT binary patch literal 83958 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
%xA*!7ub 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 Rkm*G=;r#F4#s4Q3{vYzbwV?n2 literal 0 HcmV?d00001 diff --git a/client/web/build/webpack.config.ts b/client/web/build/webpack.config.ts index 9a363874..c6b69e31 100644 --- a/client/web/build/webpack.config.ts +++ b/client/web/build/webpack.config.ts @@ -92,6 +92,10 @@ const plugins: Configuration['plugins'] = [ from: path.resolve(ROOT_PATH, './assets/images/avatar/'), to: 'images/avatar/', }, + { + from: path.resolve(ROOT_PATH, './assets/audio/'), + to: 'audio/', + }, { from: path.resolve(ROOT_PATH, '../../vercel.json'), to: 'vercel.json', diff --git a/client/web/src/init.tsx b/client/web/src/init.tsx index 62118286..0928967d 100644 --- a/client/web/src/init.tsx +++ b/client/web/src/init.tsx @@ -1,4 +1,4 @@ -import { message, Modal } from 'antd'; +import { message, Modal, notification } from 'antd'; import React from 'react'; import { buildStorage, @@ -18,10 +18,12 @@ import { parseUrlStr, onLanguageLoaded, version, + setNotification, } from 'tailchat-shared'; import { getPopupContainer } from './utils/dom-helper'; import { getUserJWT } from './utils/jwt-helper'; import _get from 'lodash/get'; +import _uniqueId from 'lodash/uniqueId'; import { recordMeasure } from './utils/measure-helper'; import { postMessageEvent } from './utils/event-helper'; import { setImageUrlParser, setWebMetaFormConfig } from 'tailchat-design'; @@ -73,6 +75,19 @@ setGlobalLoading((text) => { return hide; }); +setNotification((message, duration) => { + const key = _uniqueId('notification'); + notification.open({ + key, + message, + duration, + }); + + return () => { + notification.close(key); + }; +}); + setImageUrlParser(parseUrlStr); onLanguageLoaded(() => { diff --git a/client/web/src/plugin/common/index.ts b/client/web/src/plugin/common/index.ts index 0de504bb..00c5493c 100644 --- a/client/web/src/plugin/common/index.ts +++ b/client/web/src/plugin/common/index.ts @@ -62,6 +62,7 @@ export { showToasts, showSuccessToasts, showErrorToasts, + showNotification, fetchAvailableServices, isValidStr, useGroupPanelInfo, diff --git a/client/web/src/plugin/component/index.tsx b/client/web/src/plugin/component/index.tsx index b9975ef8..072660f8 100644 --- a/client/web/src/plugin/component/index.tsx +++ b/client/web/src/plugin/component/index.tsx @@ -64,7 +64,7 @@ export { PortalAdd, PortalRemove } from '@/components/Portal'; export { ErrorBoundary } from '@/components/ErrorBoundary'; export { ErrorView } from '@/components/ErrorView'; export { UserAvatar } from '@/components/UserAvatar'; -export { UserName } from '@/components/UserName'; +export { UserName, UserNamePure } from '@/components/UserName'; export { UserListItem } from '@/components/UserListItem'; export { Markdown, MarkdownEditor } from '@/components/Markdown'; export { Webview, WebviewKeepAlive } from '@/components/Webview'; diff --git a/client/web/tailchat.d.ts b/client/web/tailchat.d.ts index 19a2d1bf..c436cc6e 100644 --- a/client/web/tailchat.d.ts +++ b/client/web/tailchat.d.ts @@ -183,6 +183,11 @@ declare module '@capital/common' { export const showErrorToasts: (error: any) => void; + export const showNotification: ( + message: React.ReactNode, + duration?: number + ) => () => void; + export const fetchAvailableServices: any; export const isValidStr: (str: any) => str is string; @@ -632,6 +637,8 @@ declare module '@capital/component' { style?: React.CSSProperties; }>; + export const UserNamePure: any; + export const UserListItem: any; export const Markdown: any; diff --git a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/InviteCallNotification.tsx b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/InviteCallNotification.tsx new file mode 100644 index 00000000..1d136fad --- /dev/null +++ b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/InviteCallNotification.tsx @@ -0,0 +1,39 @@ +import React from 'react'; +import styled from 'styled-components'; +import { Translate } from '../translate'; +import { IconBtn, UserNamePure } from '@capital/component'; + +const Root = styled.div` + .actions { + display: flex; + gap: 8px; + justify-content: flex-end; + margin-top: 20px; + } +`; + +interface InviteCallNotificationProps { + senderUserId: string; + roomName: string; + onJoin?: () => void; +} +const InviteCallNotification: React.FC = + React.memo((props) => { + return ( + + + ); + }); +InviteCallNotification.displayName = 'InviteCallNotification'; + +export default InviteCallNotification; diff --git a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/lib/Member.tsx b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/lib/Member.tsx index 699aef0d..4c0b1b47 100644 --- a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/lib/Member.tsx +++ b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/components/lib/Member.tsx @@ -26,7 +26,7 @@ export const Member: React.FC = React.memo(() => { const getAction = useEvent((participant: Participant) => { return [ - !participant.isSpeaking && ( + participant.isSpeaking && ( ({Translate.isSpeaking}) ),
diff --git a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/index.tsx b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/index.tsx index 25de6960..093ab732 100644 --- a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/index.tsx +++ b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/index.tsx @@ -7,10 +7,12 @@ import { panelWindowManager, regSocketEventListener, getGlobalState, + showNotification, } from '@capital/common'; import { Loadable } from '@capital/component'; import { useIconIsShow } from './navbar/useIconIsShow'; import { Translate } from './translate'; +import React from 'react'; const PLUGIN_ID = 'com.msgbyte.livekit'; @@ -27,6 +29,13 @@ const LivekitMeetingPanel = Loadable( } ); +const InviteCallNotification = Loadable( + () => import('./components/InviteCallNotification'), + { + componentName: `${PLUGIN_ID}:InviteCallNotification`, + } +); + regGroupPanel({ name: `${PLUGIN_ID}/livekitPanel`, label: Translate.voiceChannel, @@ -88,3 +97,27 @@ regPluginPanelAction({ (win.window as any).autoInviteIds = shouldInviteUserIds; }, }); + +regSocketEventListener({ + eventName: `plugin:${PLUGIN_ID}.inviteCall`, + eventFn: (data) => { + const { senderUserId, roomName } = data; + + const close = showNotification( + { + panelWindowManager.open( + `/panel/plugin/${PLUGIN_ID}/meeting/${roomName}`, + { + width: 1280, + height: 768, + } + ); + close(); + }} + />, + 0 + ); + }, +}); diff --git a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/translate.ts b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/translate.ts index aebe7c24..285ebe6a 100644 --- a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/translate.ts +++ b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/src/translate.ts @@ -85,4 +85,8 @@ export const Translate = { 'zh-CN': '用户呼叫失败,该用户离线', 'en-US': 'The user call failed because of offline', }), + inviteJoinCall: localTrans({ + 'zh-CN': '邀请你加入会话', + 'en-US': 'invite you to join conversation', + }), }; diff --git a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/types/tailchat.d.ts b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/types/tailchat.d.ts index 4fc5fdf9..c436cc6e 100644 --- a/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/types/tailchat.d.ts +++ b/server/plugins/com.msgbyte.livekit/web/plugins/com.msgbyte.livekit/types/tailchat.d.ts @@ -183,6 +183,11 @@ declare module '@capital/common' { export const showErrorToasts: (error: any) => void; + export const showNotification: ( + message: React.ReactNode, + duration?: number + ) => () => void; + export const fetchAvailableServices: any; export const isValidStr: (str: any) => str is string; @@ -237,8 +242,29 @@ declare module '@capital/common' { }; export const createPluginRequest: (pluginName: string) => { - get: (actionName: string, config?: any) => Promise; - post: (actionName: string, data?: any, config?: any) => Promise; + get: ( + actionName: string, + config?: any + ) => Promise<{ + data: any; + headers: Record; + status: number; + statusText: string; + config: Record; + request: any; + }>; + post: ( + actionName: string, + data?: any, + config?: any + ) => Promise<{ + data: any; + headers: Record; + status: number; + statusText: string; + config: Record; + request: any; + }>; }; export const postRequest: any; @@ -611,6 +637,8 @@ declare module '@capital/component' { style?: React.CSSProperties; }>; + export const UserNamePure: any; + export const UserListItem: any; export const Markdown: any;