mirror of
https://github.com/TangSengDaoDao/TangSengDaoDaoWeb
synced 2025-06-02 15:23:37 +00:00
feat: 增加频道头部右侧的注入电
This commit is contained in:
parent
dd4fc57a58
commit
ea17df855a
@ -3,7 +3,7 @@
|
||||
"version": "1.0.0",
|
||||
"main": "src/index.tsx",
|
||||
"dependencies": {
|
||||
"@douyinfe/semi-ui": "^2.23.5",
|
||||
"@douyinfe/semi-ui": "^2.24.2",
|
||||
"@lottiefiles/lottie-player": "^1.5.5",
|
||||
"@types/qrcode.react": "^1.0.2",
|
||||
"@types/react-color": "^3.0.6",
|
||||
@ -14,7 +14,7 @@
|
||||
"benz-amr-recorder": "^1.1.3",
|
||||
"classnames": "^2.3.1",
|
||||
"hotkeys-js": "^3.8.7",
|
||||
"wukongimjssdk": "^1.1.1",
|
||||
"wukongimjssdk": "^1.1.2",
|
||||
"moment": "^2.29.3",
|
||||
"qrcode.react": "^1.0.1",
|
||||
"react": "^17.0.2",
|
||||
|
@ -69,6 +69,8 @@ html {
|
||||
text-rendering: optimizeLegibility;
|
||||
background: var( --background-color);
|
||||
color: rgba(9,30,66,.87) ;
|
||||
|
||||
--semi-color-primary: #E46342;
|
||||
}
|
||||
|
||||
div {
|
||||
|
@ -19,7 +19,6 @@ import RouteContext from "./Service/Context";
|
||||
import { ConnectStatus } from "wukongimjssdk";
|
||||
import { WKBaseContext } from "./Components/WKBase";
|
||||
import StorageService from "./Service/StorageService";
|
||||
import axios from "axios";
|
||||
|
||||
export enum ThemeMode {
|
||||
light,
|
||||
|
@ -93,11 +93,4 @@ export default interface ConversationContext {
|
||||
* @param tip 是否提醒
|
||||
*/
|
||||
locateMessage(messageSeq:number):any
|
||||
|
||||
/**
|
||||
* 获取消息容器id
|
||||
*/
|
||||
getMessageContainerId():string
|
||||
|
||||
getMessageContainer():Element|undefined
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import { Channel, ChannelTypeGroup, ChannelTypePerson, ConversationAction, WKSDK, Mention, Message, MessageContent, Reminder, ReminderType, Reply, MessageText } from "wukongimjssdk";
|
||||
import { Channel, ChannelTypeGroup, ChannelTypePerson, ConversationAction, WKSDK, Mention, Message, MessageContent, Reminder, ReminderType, Reply,MessageText } from "wukongimjssdk";
|
||||
import React, { Component, HTMLProps } from "react";
|
||||
import Provider from "../../Service/Provider";
|
||||
import ConversationVM from "./vm";
|
||||
@ -34,7 +34,6 @@ export class Conversation extends Component<ConversationProps> implements Conver
|
||||
scrollTimer?: NodeJS.Timer
|
||||
updateBrowseToMessageSeqAndReminderDoneing: boolean = false
|
||||
private _dragFileCallback?: (file: File) => void
|
||||
private _self = this;
|
||||
|
||||
constructor(props: any) {
|
||||
super(props)
|
||||
@ -161,18 +160,6 @@ export class Conversation extends Component<ConversationProps> implements Conver
|
||||
messageInputContext(): MessageInputContext {
|
||||
return this._messageInputContext
|
||||
}
|
||||
getMessageContainerId(): string {
|
||||
return this.vm.messageContainerId
|
||||
}
|
||||
|
||||
getMessageContainer(): Element|undefined {
|
||||
const el = document.getElementById(this.vm.messageContainerId)
|
||||
console.log("getMessageContainer--->",el)
|
||||
if (!el) {
|
||||
return undefined
|
||||
}
|
||||
return el
|
||||
}
|
||||
|
||||
|
||||
componentDidMount() {
|
||||
@ -253,7 +240,7 @@ export class Conversation extends Component<ConversationProps> implements Conver
|
||||
this.setState({})
|
||||
}} key={message.clientMsgNo} id={`${message.contentType === MessageContentTypeConst.time ? "time-" : ""}${message.clientMsgNo}`} className={classNames("wk-message-item", last ? "wk-message-item-last" : undefined, message.locateRemind ? 'wk-message-item-reminder' : undefined)} >
|
||||
{
|
||||
MessageCell ? <MessageCell key={message.clientMsgNo} message={message} context={this}/> : null
|
||||
MessageCell ? <MessageCell key={message.clientMsgNo} message={message} context={this} /> : null
|
||||
}
|
||||
|
||||
</div>
|
||||
@ -263,19 +250,12 @@ export class Conversation extends Component<ConversationProps> implements Conver
|
||||
if (this.scrollTimer) {
|
||||
clearTimeout(this.scrollTimer)
|
||||
}
|
||||
const scrollTop = e.target.scrollTop;
|
||||
const scrollHeight = e.target.scrollHeight;
|
||||
const clientHeight = e.clientHeight;
|
||||
this.scrollTimer = setTimeout(() => {
|
||||
this.handleScrollEnd()
|
||||
}, 500)
|
||||
if (this.contextMenusContext) {
|
||||
this.contextMenusContext.hide()
|
||||
}
|
||||
|
||||
const targetScrollTop = scrollTop;
|
||||
const scrollOffsetTop = scrollHeight - (targetScrollTop + clientHeight);
|
||||
// console.log("targetScrollTop---->",targetScrollTop,scrollOffsetTop,this.vm.loading,this.vm.pullupHasMore)
|
||||
this.contextMenusContext.hide()
|
||||
const targetScrollTop = e.target.scrollTop;
|
||||
const scrollOffsetTop = e.target.scrollHeight - (targetScrollTop + e.target.clientHeight);
|
||||
if (targetScrollTop <= 250 && !this.vm.loading && !this.vm.pulldownFinished) { // 下拉
|
||||
this.vm.pulldownMessages()
|
||||
} else if (scrollOffsetTop <= 500 && !this.vm.loading && this.vm.pullupHasMore) { // 上拉
|
||||
@ -299,7 +279,6 @@ export class Conversation extends Component<ConversationProps> implements Conver
|
||||
}
|
||||
|
||||
handleScrollEnd() {
|
||||
console.log("handleScrollEnd---->")
|
||||
this.uploadReadedIfNeed()
|
||||
}
|
||||
|
||||
@ -481,7 +460,6 @@ export class Conversation extends Component<ConversationProps> implements Conver
|
||||
this.vm.notifyListener()
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
const { chatBg, channel } = this.props
|
||||
|
||||
@ -501,7 +479,6 @@ export class Conversation extends Component<ConversationProps> implements Conver
|
||||
this.dragStart()
|
||||
|
||||
}} className={classNames("wk-conversation-content")}>
|
||||
|
||||
<div className="wk-conversation-messages" id={vm.messageContainerId} onScroll={this.handleScroll.bind(this)}>
|
||||
{
|
||||
vm.messages.map((message, i) => {
|
||||
|
@ -247,6 +247,9 @@ export default class ConversationVM extends ProviderListener {
|
||||
if (!message.channel.isEqual(this.channel)) {
|
||||
return
|
||||
}
|
||||
if(message.contentType == MessageContentTypeConst.rtcData) {
|
||||
return
|
||||
}
|
||||
if(message.header.noPersist) { // 不存储的消息不显示
|
||||
return
|
||||
}
|
||||
@ -618,7 +621,6 @@ export default class ConversationVM extends ProviderListener {
|
||||
}
|
||||
if (change) {
|
||||
this.refreshNewMsgCount()
|
||||
console.log("refreshNewMsgCount---->")
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -17,6 +17,19 @@ export interface WKBaseState {
|
||||
alertTitle?: string
|
||||
onAlertOk?: () => void
|
||||
conversationSelectFinished?: (channel: Channel[]) => void
|
||||
|
||||
showGlobalModal?: boolean // 显示全局弹窗
|
||||
globalModalOptions?:GlobalModalOptions
|
||||
|
||||
}
|
||||
|
||||
export class GlobalModalOptions {
|
||||
width?: string
|
||||
height?: string
|
||||
body?: ReactNode
|
||||
footer?: ReactNode
|
||||
className?: string
|
||||
closable?: boolean
|
||||
}
|
||||
|
||||
export interface WKBaseProps{
|
||||
@ -34,6 +47,10 @@ export interface WKBaseContext {
|
||||
hideUserInfo(): void
|
||||
// 弹出提示框
|
||||
showAlert(conf:{content:string,title?:string,onOk?:()=>void}): void
|
||||
|
||||
showGlobalModal(options:GlobalModalOptions):void
|
||||
|
||||
hideGlobalModal():void
|
||||
}
|
||||
|
||||
export default class WKBase extends Component<WKBaseProps, WKBaseState> implements WKBaseContext {
|
||||
@ -76,6 +93,18 @@ export default class WKBase extends Component<WKBaseProps, WKBaseState> implemen
|
||||
})
|
||||
}
|
||||
|
||||
showGlobalModal(options:GlobalModalOptions) {
|
||||
this.setState({
|
||||
showGlobalModal: true,
|
||||
globalModalOptions: options,
|
||||
})
|
||||
}
|
||||
hideGlobalModal() {
|
||||
this.setState({
|
||||
showGlobalModal: false
|
||||
})
|
||||
}
|
||||
|
||||
componentDidMount() {
|
||||
const { onContext } = this.props
|
||||
if (onContext) {
|
||||
@ -143,6 +172,9 @@ export default class WKBase extends Component<WKBaseProps, WKBaseState> implemen
|
||||
maskClosable={false}>
|
||||
{alertContent}
|
||||
</Modal>
|
||||
<Modal closable={this.state.globalModalOptions?.closable} className={this.state.globalModalOptions?.className} visible={this.state.showGlobalModal} width={this.state.globalModalOptions?.width} footer={this.state.globalModalOptions?.footer}>
|
||||
{this.state.globalModalOptions?.body}
|
||||
</Modal>
|
||||
</div>
|
||||
}
|
||||
}
|
@ -7,8 +7,8 @@ import { EndpointManager } from "./Service/Module";
|
||||
import ConversationContext from "./Components/Conversation/context";
|
||||
|
||||
export class MessageContextMenus {
|
||||
title!:string
|
||||
onClick?:()=>void
|
||||
title!: string
|
||||
onClick?: () => void
|
||||
}
|
||||
|
||||
export class EndpointCommon {
|
||||
@ -55,49 +55,62 @@ export class EndpointCommon {
|
||||
const channel = param.channel as Channel
|
||||
const conversation = WKSDK.shared().conversationManager.findConversation(channel)
|
||||
let initLocateMessageSeq = 0
|
||||
if(conversation && conversation.lastMessage && conversation.unread>0 && conversation.lastMessage.messageSeq > conversation.unread) {
|
||||
if (conversation && conversation.lastMessage && conversation.unread > 0 && conversation.lastMessage.messageSeq > conversation.unread) {
|
||||
initLocateMessageSeq = conversation.lastMessage.messageSeq - conversation.unread
|
||||
}
|
||||
}
|
||||
WKApp.routeRight.replaceToRoot(<ChatContentPage key={channel.getChannelKey()} channel={channel} initLocateMessageSeq={initLocateMessageSeq}></ChatContentPage>)
|
||||
}, {})
|
||||
}
|
||||
|
||||
registerMessageContextMenus(sid: string, handle: (message: Message,context:ConversationContext) => MessageContextMenus|null,sort?:number) {
|
||||
registerMessageContextMenus(sid: string, handle: (message: Message, context: ConversationContext) => MessageContextMenus | null, sort?: number) {
|
||||
EndpointManager.shared.setMethod(sid, (param: any) => {
|
||||
return handle(param.message,param.context)
|
||||
return handle(param.message, param.context)
|
||||
}, {
|
||||
category: EndpointCategory.messageContextMenus,
|
||||
sort: sort,
|
||||
})
|
||||
}
|
||||
|
||||
messageContextMenus(message: Message,ctx:ConversationContext): MessageContextMenus[] {
|
||||
return EndpointManager.shared.invokes(EndpointCategory.messageContextMenus, {message:message,context:ctx})
|
||||
messageContextMenus(message: Message, ctx: ConversationContext): MessageContextMenus[] {
|
||||
return EndpointManager.shared.invokes(EndpointCategory.messageContextMenus, { message: message, context: ctx })
|
||||
}
|
||||
|
||||
registerChatToolbar(sid:string,handle:(ctx:ConversationContext)=>React.ReactNode|undefined) {
|
||||
EndpointManager.shared.setMethod(sid,(param)=>{
|
||||
return handle(param)
|
||||
},{
|
||||
category: EndpointCategory.chatToolbars
|
||||
})
|
||||
registerChatToolbar(sid: string, handle: (ctx: ConversationContext) => React.ReactNode | undefined) {
|
||||
EndpointManager.shared.setMethod(sid, (param) => {
|
||||
return handle(param)
|
||||
}, {
|
||||
category: EndpointCategory.chatToolbars
|
||||
})
|
||||
}
|
||||
|
||||
chatToolbars(ctx:ConversationContext) :React.ReactNode[] {
|
||||
return EndpointManager.shared.invokes(EndpointCategory.chatToolbars,ctx)
|
||||
chatToolbars(ctx: ConversationContext): React.ReactNode[] {
|
||||
return EndpointManager.shared.invokes(EndpointCategory.chatToolbars, ctx)
|
||||
}
|
||||
|
||||
registerChannelHeaderRightItem(id: string, callback: (param: any) => JSX.Element|undefined, sort?: number) {
|
||||
EndpointManager.shared.setMethod(id, (param) => {
|
||||
return callback(param)
|
||||
}, {
|
||||
category: EndpointCategory.channelHeaderRightItems,
|
||||
sort: sort,
|
||||
})
|
||||
}
|
||||
|
||||
callOnLogin() {
|
||||
const len = this._onLogins.length;
|
||||
for (var i = 0; i < len; i++) {
|
||||
this._onLogins[i]()
|
||||
}
|
||||
channelHeaderRightItems(channel:Channel): JSX.Element[] {
|
||||
return EndpointManager.shared.invokes(EndpointCategory.channelHeaderRightItems,{channel:channel})
|
||||
}
|
||||
|
||||
|
||||
callOnLogin() {
|
||||
const len = this._onLogins.length;
|
||||
for (var i = 0; i < len; i++) {
|
||||
this._onLogins[i]()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export class ChatToolbar {
|
||||
icon!:string
|
||||
onClick?:()=>void
|
||||
icon!: string
|
||||
onClick?: () => void
|
||||
}
|
@ -5,7 +5,6 @@ import { MessageContentTypeConst } from "../../Service/Const"
|
||||
import MessageBase from "../Base"
|
||||
import { MessageCell } from "../MessageCell"
|
||||
import "@lottiefiles/lottie-player/dist/tgs-player";
|
||||
import LazyLoad from 'react-lazyload';
|
||||
|
||||
|
||||
|
||||
|
@ -14,15 +14,12 @@ class MessageBaseCellPropsImp implements MessageBaseCellProps {
|
||||
|
||||
}
|
||||
export class MessageBaseCell<P extends MessageBaseCellProps = MessageBaseCellPropsImp, S = {}> extends Component<P, S> {
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
export class MessageCell<P extends MessageBaseCellProps = MessageBaseCellPropsImp, S = {}> extends MessageBaseCell<P, S> {
|
||||
|
||||
componentDidMount(): void {
|
||||
}
|
||||
|
||||
render() {
|
||||
return <div>MessageCell</div>
|
||||
}
|
||||
|
@ -8,6 +8,7 @@ import MessageTrail from "../Base/tail"
|
||||
import MessageBase from "../Base"
|
||||
import WKApp from "../../App"
|
||||
import { MessageContentTypeConst } from "../../Service/Const"
|
||||
import { MessageWrap } from "../../Service/Model"
|
||||
var BenzAMRRecorder = require('benz-amr-recorder');
|
||||
|
||||
|
||||
|
@ -210,6 +210,19 @@ body[theme-mode=dark] .wk-chat-conversation-header-channel-info-name {
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.wk-chat-conversation-header-right div {
|
||||
margin-right: 10px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
}
|
||||
|
||||
.wk-chat-conversation-header-right div:last-child {
|
||||
margin-right: 0px;
|
||||
}
|
||||
|
||||
.wk-chat-conversation-header-setting {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
@ -293,4 +306,21 @@ body[theme-mode=dark] .wk-chat-popover {
|
||||
.wk-chatmenuspopover-title {
|
||||
margin-left: 10px;
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.wk-chat-conversation-header-right-item {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.wk-conversation-header-mask {
|
||||
background-color: rgb(0,0,0,0.0);
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
top: 0px;
|
||||
border-radius: 100%;
|
||||
}
|
||||
|
||||
.wk-conversation-header-mask:hover {
|
||||
background-color: rgb(0,0,0,0.1);
|
||||
}
|
@ -19,7 +19,7 @@ import ConversationContext from "../../Components/Conversation/context";
|
||||
|
||||
export interface ChatContentPageProps {
|
||||
channel: Channel
|
||||
initLocateMessageSeq?:number
|
||||
initLocateMessageSeq?: number
|
||||
}
|
||||
|
||||
export interface ChatContentPageState {
|
||||
@ -27,7 +27,7 @@ export interface ChatContentPageState {
|
||||
}
|
||||
export class ChatContentPage extends Component<ChatContentPageProps, ChatContentPageState> {
|
||||
channelInfoListener!: ChannelInfoListener
|
||||
conversationContext!:ConversationContext
|
||||
conversationContext!: ConversationContext
|
||||
constructor(props: any) {
|
||||
super(props)
|
||||
this.state = {
|
||||
@ -51,7 +51,7 @@ export class ChatContentPage extends Component<ChatContentPageProps, ChatContent
|
||||
}
|
||||
|
||||
render(): React.ReactNode {
|
||||
const { channel,initLocateMessageSeq } = this.props
|
||||
const { channel, initLocateMessageSeq } = this.props
|
||||
const { showChannelSetting } = this.state
|
||||
const channelInfo = WKSDK.shared().channelManager.getChannelInfo(channel)
|
||||
if (!channelInfo) {
|
||||
@ -89,17 +89,28 @@ export class ChatContentPage extends Component<ChatContentPageProps, ChatContent
|
||||
</div>
|
||||
</div>
|
||||
<div className="wk-chat-conversation-header-right">
|
||||
<div className="wk-chat-conversation-header-setting">
|
||||
<svg className="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2166" width="24" height="24"><path d="M512 298.6496a85.3504 85.3504 0 1 0 0-170.6496 85.3504 85.3504 0 0 0 0 170.6496z" p-id="2167"></path><path d="M512 512m-85.3504 0a85.3504 85.3504 0 1 0 170.7008 0 85.3504 85.3504 0 1 0-170.7008 0Z" p-id="2168"></path><path d="M512 896a85.3504 85.3504 0 1 0 0-170.7008 85.3504 85.3504 0 0 0 0 170.7008z" p-id="2169"></path></svg>
|
||||
{
|
||||
WKApp.endpoints.channelHeaderRightItems(channel).map((item:any,i:number) => {
|
||||
return <div key={i} className="wk-chat-conversation-header-right-item">
|
||||
{
|
||||
item
|
||||
}
|
||||
</div>
|
||||
})
|
||||
}
|
||||
<div className="wk-chat-conversation-header-right-item">
|
||||
<svg fill={WKApp.config.themeColor} height="28px" role="presentation" viewBox="0 0 36 36" width="28px"><path clipRule="evenodd" d="M18 29C24.0751 29 29 24.0751 29 18C29 11.9249 24.0751 7 18 7C11.9249 7 7 11.9249 7 18C7 24.0751 11.9249 29 18 29ZM19.5 18C19.5 18.8284 18.8284 19.5 18 19.5C17.1716 19.5 16.5 18.8284 16.5 18C16.5 17.1716 17.1716 16.5 18 16.5C18.8284 16.5 19.5 17.1716 19.5 18ZM23 19.5C23.8284 19.5 24.5 18.8284 24.5 18C24.5 17.1716 23.8284 16.5 23 16.5C22.1716 16.5 21.5 17.1716 21.5 18C21.5 18.8284 22.1716 19.5 23 19.5ZM14.5 18C14.5 18.8284 13.8284 19.5 13 19.5C12.1716 19.5 11.5 18.8284 11.5 18C11.5 17.1716 12.1716 16.5 13 16.5C13.8284 16.5 14.5 17.1716 14.5 18Z" fillRule="evenodd"></path></svg>
|
||||
<div className="wk-conversation-header-mask">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div className="wk-chat-conversation">
|
||||
<Conversation initLocateMessageSeq={initLocateMessageSeq} shouldShowHistorySplit={true} onContext={(ctx)=>{
|
||||
<Conversation initLocateMessageSeq={initLocateMessageSeq} shouldShowHistorySplit={true} onContext={(ctx) => {
|
||||
this.conversationContext = ctx
|
||||
this.setState({})
|
||||
}} key={channel.getChannelKey()} chatBg={WKApp.config.themeMode === ThemeMode.dark?undefined:require("./assets/chat_bg.svg").default} channel={channel}></Conversation>
|
||||
}} key={channel.getChannelKey()} chatBg={WKApp.config.themeMode === ThemeMode.dark ? undefined : require("./assets/chat_bg.svg").default} channel={channel}></Conversation>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -140,15 +151,15 @@ export default class ChatPage extends Component<any> {
|
||||
<div className="wk-chat-title">
|
||||
{vm.connectTitle}
|
||||
</div>
|
||||
<Popover onClickOutSide={()=>{
|
||||
vm.showAddPopover = false
|
||||
}} className="wk-chat-popover" position="bottomRight" visible={vm.showAddPopover} showArrow={false} trigger="custom" content={<ChatMenusPopover onItem={()=>{
|
||||
vm.showAddPopover = false
|
||||
<Popover onClickOutSide={() => {
|
||||
vm.showAddPopover = false
|
||||
}} className="wk-chat-popover" position="bottomRight" visible={vm.showAddPopover} showArrow={false} trigger="custom" content={<ChatMenusPopover onItem={() => {
|
||||
vm.showAddPopover = false
|
||||
}}></ChatMenusPopover>}>
|
||||
<div className="wk-chat-search-add" onClick={()=>{
|
||||
<div className="wk-chat-search-add" onClick={() => {
|
||||
vm.showAddPopover = !vm.showAddPopover
|
||||
}}>
|
||||
<IconPlus size="large"></IconPlus>
|
||||
<IconPlus size="large"></IconPlus>
|
||||
</div>
|
||||
{/* <Button icon={<IconPlus></IconPlus>} onClick={() => {
|
||||
vm.showAddPopover = true
|
||||
@ -180,7 +191,7 @@ interface ChatMenusPopoverState {
|
||||
}
|
||||
|
||||
interface ChatMenusPopoverProps {
|
||||
onItem?:(menus:ChatMenus)=>void
|
||||
onItem?: (menus: ChatMenus) => void
|
||||
}
|
||||
class ChatMenusPopover extends Component<ChatMenusPopoverProps, ChatMenusPopoverState> {
|
||||
constructor(props: any) {
|
||||
@ -201,17 +212,17 @@ class ChatMenusPopover extends Component<ChatMenusPopoverProps, ChatMenusPopover
|
||||
return <div className="wk-chatmenuspopover">
|
||||
<ul>
|
||||
{
|
||||
chatMenus.map((c,i) => {
|
||||
return <li key={i} onClick={()=>{
|
||||
if(c.onClick) {
|
||||
chatMenus.map((c, i) => {
|
||||
return <li key={i} onClick={() => {
|
||||
if (c.onClick) {
|
||||
c.onClick()
|
||||
}
|
||||
if(onItem) {
|
||||
if (onItem) {
|
||||
onItem(c)
|
||||
}
|
||||
}}>
|
||||
<div className="wk-chatmenuspopover-avatar">
|
||||
<img src={c.icon}></img>
|
||||
<img src={c.icon}></img>
|
||||
</div>
|
||||
<div className="wk-chatmenuspopover-title">
|
||||
{c.title}
|
||||
|
@ -153,7 +153,6 @@ export class ChatVM extends ProviderListener {
|
||||
}
|
||||
currentConversationListY() {
|
||||
const conversationElem = document.getElementById(this.conversationListID)
|
||||
console.log("conversationElem---->", conversationElem)
|
||||
if (!conversationElem) {
|
||||
return
|
||||
}
|
||||
|
@ -21,6 +21,7 @@ export class EndpointCategory {
|
||||
static friendApplyDataChange:string = "friendApplyDataChange" // 好友申请数据改变
|
||||
static chatMenusPopover:string = "chatMenusPopover" // 聊天菜单气泡
|
||||
static chatToolbars = "chatToolbars" // 聊天工具栏
|
||||
static channelHeaderRightItems = "channelHeaderRightItems" // 频道头部右侧items
|
||||
|
||||
}
|
||||
|
||||
@ -57,6 +58,19 @@ export class MessageContentTypeConst {
|
||||
static channelUpdate: number = 1005 // 频道更新
|
||||
static newGroupOwner: number = 1008 // 成为新群主
|
||||
static screenshot:number = 1014 // 截屏消息
|
||||
|
||||
// 音频通话消息号段 9900 - 9999
|
||||
static rtcResult:number = 9989 // 音视频通话结果
|
||||
static rtcSwitchToVideo = 9990 // 切换到视频通话
|
||||
static rtcSwitchToVideoReply = 9991 // 切换到视频回复
|
||||
static rtcCancel:number = 9992 // 取消通话
|
||||
static rtcSwitchToAudio = 9993 // 音视频切换(未接通时)
|
||||
static rtcData:number = 9994 // rtc信令数据类型
|
||||
static rtcMissed:number =9995 // 未接听
|
||||
static rtcReceived:number = 9996 // 收到通话
|
||||
static rtcRefue:number = 9997; // 拒绝通话
|
||||
static rtcAccept:number = 9998; // 接受通话
|
||||
static rtcHangup:number = 9999; // 挂断通话
|
||||
|
||||
}
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
import { Channel, ChannelTypePerson, WKSDK, Message, MessageContentType, ConversationAction, ChannelTypeGroup, ChannelInfo,CMDContent, MessageText } from "wukongimjssdk";
|
||||
import { Channel, ChannelTypePerson, WKSDK, Message, MessageContentType, ConversationAction, ChannelTypeGroup, ChannelInfo, CMDContent, MessageText } from "wukongimjssdk";
|
||||
import React, { ElementType } from "react";
|
||||
import WKApp, { FriendApply, FriendApplyState, ThemeMode } from "./App";
|
||||
import ChannelQRCode from "./Components/ChannelQRCode";
|
||||
@ -287,6 +287,9 @@ export default class BaseModule implements IModule {
|
||||
if (channelInfo && channelInfo.mute) {
|
||||
return
|
||||
}
|
||||
if (!message.header.reddot) { // 不显示红点的消息不发通知
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
if (window.Notification && Notification.permission !== "denied") {
|
||||
@ -295,7 +298,7 @@ export default class BaseModule implements IModule {
|
||||
icon: WKApp.shared.avatarChannel(message.channel),
|
||||
lang: 'zh-CN',
|
||||
tag: "tag",
|
||||
renotify: true,
|
||||
renotify: true
|
||||
});
|
||||
|
||||
notify.onclick = () => {
|
||||
@ -309,6 +312,9 @@ export default class BaseModule implements IModule {
|
||||
notify.close();
|
||||
}, 5000);
|
||||
}
|
||||
notify.onclose = () => {
|
||||
console.log("通知关闭")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -47,6 +47,12 @@ export default class ContactsList extends Component<any, ContactsState> {
|
||||
}
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
ContactsListManager.shared.setRefreshList = undefined
|
||||
WKApp.dataSource.removeContactsChangeListener(this.contactsChangeListener)
|
||||
}
|
||||
|
||||
|
||||
rebuildIndex() {
|
||||
console.log("rebuildIndex---->")
|
||||
this.buildIndex(this.contactsList())
|
||||
@ -75,11 +81,7 @@ export default class ContactsList extends Component<any, ContactsState> {
|
||||
})
|
||||
}
|
||||
|
||||
componentWillUnmount() {
|
||||
|
||||
WKApp.dataSource.removeContactsChangeListener(this.contactsChangeListener)
|
||||
}
|
||||
|
||||
|
||||
buildIndex(contacts: Contacts[]) {
|
||||
const indexItemMap = new Map<string, Contacts[]>()
|
||||
let indexList = []
|
||||
|
@ -5,8 +5,10 @@ export class ContactsListManager {
|
||||
}
|
||||
public static shared = new ContactsListManager()
|
||||
|
||||
setRefreshList!:()=>void
|
||||
setRefreshList?:()=>void
|
||||
refreshList() {
|
||||
this.setRefreshList()
|
||||
if(this.setRefreshList) {
|
||||
this.setRefreshList()
|
||||
}
|
||||
}
|
||||
}
|
196
yarn.lock
196
yarn.lock
@ -1041,7 +1041,7 @@
|
||||
"@babel/helper-validator-option" "^7.18.6"
|
||||
"@babel/plugin-transform-typescript" "^7.18.6"
|
||||
|
||||
"@babel/runtime-corejs3@^7.10.2", "@babel/runtime-corejs3@^7.15.4":
|
||||
"@babel/runtime-corejs3@^7.10.2":
|
||||
version "7.19.1"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.19.1.tgz#f0cbbe7edda7c4109cd253bb1dee99aba4594ad9"
|
||||
integrity sha512-j2vJGnkopRzH+ykJ8h68wrHnEUmtK//E723jjixiAl/PPf6FhqY/vYRcMVlNydRKQjQsTsYEjpx+DZMIvnGk/g==
|
||||
@ -1056,13 +1056,20 @@
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.2"
|
||||
|
||||
"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.4", "@babel/runtime@^7.5.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
|
||||
"@babel/runtime@^7.0.0", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.5", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.18.9", "@babel/runtime@^7.3.4", "@babel/runtime@^7.5.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.8.4":
|
||||
version "7.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.0.tgz#22b11c037b094d27a8a2504ea4dcff00f50e2259"
|
||||
integrity sha512-eR8Lo9hnDS7tqkO7NsV+mKvCmv5boaXFSZ70DnfhcgiEne8hv9oCEd36Klw74EtizEqLsy4YnW8UWwpBVolHZA==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.13.4"
|
||||
|
||||
"@babel/runtime@^7.21.0":
|
||||
version "7.22.11"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.11.tgz#7a9ba3bbe406ad6f9e8dd4da2ece453eb23a77a4"
|
||||
integrity sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==
|
||||
dependencies:
|
||||
regenerator-runtime "^0.14.0"
|
||||
|
||||
"@babel/runtime@^7.7.2", "@babel/runtime@^7.8.7":
|
||||
version "7.22.10"
|
||||
resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.22.10.tgz#ae3e9631fd947cb7e3610d3e9d8fef5f76696682"
|
||||
@ -1127,88 +1134,113 @@
|
||||
resolved "https://registry.yarnpkg.com/@csstools/normalize.css/-/normalize.css-10.1.0.tgz#f0950bba18819512d42f7197e56c518aa491cf18"
|
||||
integrity sha512-ij4wRiunFfaJxjB0BdrYHIH8FxBJpOwNPhhAcunlmPdXudL1WQV1qoP9un6JsEBAgQH+7UXyyjh0g7jTxXK6tg==
|
||||
|
||||
"@douyinfe/semi-animation-react@2.23.5":
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation-react/-/semi-animation-react-2.23.5.tgz#c106e869ddaa2f2fa4dd34381b601f42e4f83ed4"
|
||||
integrity sha512-TIIUpcUGCRJDejkQxVMSEiogLM73P3vXZLuAxyxXg+cW5I/TK6ekynDswoE0M/pQf4hymrvuZPVq/MOD+ow6cA==
|
||||
"@dnd-kit/accessibility@^3.0.0":
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@dnd-kit/accessibility/-/accessibility-3.0.1.tgz#3ccbefdfca595b0a23a5dc57d3de96bc6935641c"
|
||||
integrity sha512-HXRrwS9YUYQO9lFRc/49uO/VICbM+O+ZRpFDe9Pd1rwVv2PCNkRiTZRdxrDgng/UkvdC3Re9r2vwPpXXrWeFzg==
|
||||
dependencies:
|
||||
"@douyinfe/semi-animation" "2.12.0"
|
||||
"@douyinfe/semi-animation-styled" "2.23.2"
|
||||
tslib "^2.0.0"
|
||||
|
||||
"@dnd-kit/core@^6.0.8":
|
||||
version "6.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@dnd-kit/core/-/core-6.0.8.tgz#040ae13fea9787ee078e5f0361f3b49b07f3f005"
|
||||
integrity sha512-lYaoP8yHTQSLlZe6Rr9qogouGUz9oRUj4AHhDQGQzq/hqaJRpFo65X+JKsdHf8oUFBzx5A+SJPUvxAwTF2OabA==
|
||||
dependencies:
|
||||
"@dnd-kit/accessibility" "^3.0.0"
|
||||
"@dnd-kit/utilities" "^3.2.1"
|
||||
tslib "^2.0.0"
|
||||
|
||||
"@dnd-kit/sortable@^7.0.2":
|
||||
version "7.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@dnd-kit/sortable/-/sortable-7.0.2.tgz#791d550872457f3f3c843e00d159b640f982011c"
|
||||
integrity sha512-wDkBHHf9iCi1veM834Gbk1429bd4lHX4RpAwT0y2cHLf246GAvU2sVw/oxWNpPKQNQRQaeGXhAVgrOl1IT+iyA==
|
||||
dependencies:
|
||||
"@dnd-kit/utilities" "^3.2.0"
|
||||
tslib "^2.0.0"
|
||||
|
||||
"@dnd-kit/utilities@^3.2.0", "@dnd-kit/utilities@^3.2.1":
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@dnd-kit/utilities/-/utilities-3.2.1.tgz#53f9e2016fd2506ec49e404c289392cfff30332a"
|
||||
integrity sha512-OOXqISfvBw/1REtkSK2N3Fi2EQiLMlWUlqnOK/UpOISqBZPWpE6TqL+jcPtMOkE8TqYGiURvRdPSI9hltNUjEA==
|
||||
dependencies:
|
||||
tslib "^2.0.0"
|
||||
|
||||
"@douyinfe/semi-animation-react@2.42.3":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation-react/-/semi-animation-react-2.42.3.tgz#7fa8c37780f0885198bbf434e36ab68e6bc3ec83"
|
||||
integrity sha512-nrPebgRBN9Kgdq+EVgwNn2lmd3aSys5vc6i/0yHxcjZfVa37WxsU8BRN2itaW5u9QJ41zKSinPXTnElbgnbtdA==
|
||||
dependencies:
|
||||
"@douyinfe/semi-animation" "2.42.3"
|
||||
"@douyinfe/semi-animation-styled" "2.42.3"
|
||||
classnames "^2.2.6"
|
||||
|
||||
"@douyinfe/semi-animation-styled@2.23.2":
|
||||
version "2.23.2"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation-styled/-/semi-animation-styled-2.23.2.tgz#f18bc074515441c297cc636ed98521e249d093c9"
|
||||
integrity sha512-cKaA1yGHPF76Rx7EZDZicj+1oX1su2wnqb/UGFOTquAwqWmkTfgQ+EKxCd/N704WH+RtmGf4xbrJKpBvvcEdSQ==
|
||||
"@douyinfe/semi-animation-styled@2.42.3":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation-styled/-/semi-animation-styled-2.42.3.tgz#c03442387200cbb2053e065a2765a1d676784149"
|
||||
integrity sha512-qmOLJuMRIR8feAZCvJ6h7da0LD4e7im3uGc4a0ZcjT36XPFwngijbC/kXSO2aYLoY3hGlrxMmIJ6HlX3+bGnFQ==
|
||||
|
||||
"@douyinfe/semi-animation@2.12.0":
|
||||
version "2.12.0"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation/-/semi-animation-2.12.0.tgz#51fe52d3911c2591a80a6e9fe96e6809c1511f13"
|
||||
integrity sha512-OAfL9Nk38ZPqfdKm9k4cvVXXzm16ALI4LxGNZ0qfe2RCLLnYGB/hNzTctoTDjYD35dFv0yroh3qsXtZuP2xNdg==
|
||||
dependencies:
|
||||
"@babel/runtime-corejs3" "^7.15.4"
|
||||
bezier-easing "^2.1.0"
|
||||
|
||||
"@douyinfe/semi-animation@2.23.5":
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation/-/semi-animation-2.23.5.tgz#6d5bc3f3d86aecf0e80255c526f5afab95cadb9d"
|
||||
integrity sha512-EEu4RWPTK1ksUB6SwTxmdgJ3qlDD0GaB9Azay4H93bknR/cV2lpbAhzes6nz3EiLua00MpJPQaLWQxs57nNWnw==
|
||||
"@douyinfe/semi-animation@2.42.3":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-animation/-/semi-animation-2.42.3.tgz#267386f780e31c202e3f033e3bb6df019b90ed5c"
|
||||
integrity sha512-RrYjHl6CyQVUX3MVCllZUUVQdBDBNOhEgJox/cc+Y64WW6YKg7zML6f5jWVXt3srwR8ksYWXzvnFT4gYlfn6CQ==
|
||||
dependencies:
|
||||
bezier-easing "^2.1.0"
|
||||
|
||||
"@douyinfe/semi-foundation@2.23.5":
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-foundation/-/semi-foundation-2.23.5.tgz#b3a7cbfc6ce01644e852b19c91025cf03c75e51f"
|
||||
integrity sha512-gEBhVzRlxedpxuCadX9uIHamOvFrNsyKUtFc/Jcr4WMOaJMrcHh3IgIHxmNK2RSvRLnX4/iUsLDNZGcSlh1mjQ==
|
||||
"@douyinfe/semi-foundation@2.42.3":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-foundation/-/semi-foundation-2.42.3.tgz#5919a0866b90a56bd916ed01e492c56842abc751"
|
||||
integrity sha512-jNd6BdTzuioqgmsZcnC5Nl2tP+XOALgxiVc1mffx/oz2MUp7X/4zm8UR2VchgWbpx0nZ0JSmZDfU7XWIdcHQDg==
|
||||
dependencies:
|
||||
"@douyinfe/semi-animation" "2.12.0"
|
||||
"@douyinfe/semi-animation" "2.42.3"
|
||||
async-validator "^3.5.0"
|
||||
classnames "^2.2.6"
|
||||
date-fns "^2.9.0"
|
||||
date-fns-tz "^1.0.10"
|
||||
date-fns "^2.29.3"
|
||||
date-fns-tz "^1.3.8"
|
||||
lodash "^4.17.21"
|
||||
memoize-one "^5.2.1"
|
||||
scroll-into-view-if-needed "^2.2.24"
|
||||
|
||||
"@douyinfe/semi-icons@2.23.5":
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-icons/-/semi-icons-2.23.5.tgz#856180dd51b20986ac181fe6e849abda581efa6b"
|
||||
integrity sha512-fknH7iCb9iIp35xWM4+MP/zbRicAp0Z4ijSt9UQAS6Xsza42sAAqKI3rswdmgiE4hPd2syg9fxnR9mb/JaiW+w==
|
||||
"@douyinfe/semi-icons@2.42.3":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-icons/-/semi-icons-2.42.3.tgz#8a7c08fe2843f45a7c6c8856f3cf44f446bfc44a"
|
||||
integrity sha512-0LTpJFmpUZPAraquUwwfI8fCQ+7APMSgQlFymajd75Y1shY5I9Tzu8wClQnn0ME0ORGMwA3WQXgs9HOL0nTVXg==
|
||||
dependencies:
|
||||
classnames "^2.2.6"
|
||||
|
||||
"@douyinfe/semi-illustrations@2.23.5":
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-illustrations/-/semi-illustrations-2.23.5.tgz#0336378b114b1be46a19331ab8b163b09055586a"
|
||||
integrity sha512-hnx+WztfiZaqAR0zOsBreSSE+TRNxA2+fi9eW6dtwjRJDg6thA4VcW4T3bkhBv9il3oSNHV/He3w4I1NbRatsQ==
|
||||
"@douyinfe/semi-illustrations@2.42.3":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-illustrations/-/semi-illustrations-2.42.3.tgz#410371b856c906dc2990afa24c53fc51172aff95"
|
||||
integrity sha512-mUImwMivJB35++2leWkzhB1gFChZZKz7dULMfopU11oOC0p6lXu9rToXf6u01bgHnCKt9WuZ9Ic/1Byqi1UVFA==
|
||||
|
||||
"@douyinfe/semi-theme-default@2.23.5":
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-theme-default/-/semi-theme-default-2.23.5.tgz#54a2f99db79ff7e2fc6137f0d5bf82d3bffdbaca"
|
||||
integrity sha512-zBTUB6aYMP6C3QctmFdg7ChN6wctgONKHvlbhvowMZ5M/YQrCPIYxu1LwUN+a2dSnbwY+1aKC+5t6firBMNThw==
|
||||
"@douyinfe/semi-theme-default@2.42.3":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-theme-default/-/semi-theme-default-2.42.3.tgz#45b4d265d983d7c80848977b525063bb7f401913"
|
||||
integrity sha512-kr+Jead5Hja0w7uIOHMvB+GqiTzCRoAvCHAFf0bhMv6oSxkVplIxuBLgVasIzU0x99fOT2LPclWcOFvaMSuSTg==
|
||||
dependencies:
|
||||
glob "^7.1.6"
|
||||
|
||||
"@douyinfe/semi-ui@^2.23.5":
|
||||
version "2.23.5"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-ui/-/semi-ui-2.23.5.tgz#06c5bd1ce868d9966412ed847293aed605292928"
|
||||
integrity sha512-DOE8OPvX7VHapZ8AnXTr6sssQO9Ct/yHC+Ja56g5lL9hyq+UkSX6ENXocPA2+DDX/2jxL2UiiZtyp7hPtZpJsA==
|
||||
"@douyinfe/semi-ui@^2.24.2":
|
||||
version "2.42.3"
|
||||
resolved "https://registry.yarnpkg.com/@douyinfe/semi-ui/-/semi-ui-2.42.3.tgz#f5b622420891287e6a4c07eefc426df25f3555c6"
|
||||
integrity sha512-udBLfq36/Mjzr2JEUxnVWAlXokqK0E/2XsRS+h0ZdV6lTM31b1Eg1U8W9hknY5qa6x1+wQ99etYWbS0hm5QiRA==
|
||||
dependencies:
|
||||
"@douyinfe/semi-animation" "2.23.5"
|
||||
"@douyinfe/semi-animation-react" "2.23.5"
|
||||
"@douyinfe/semi-foundation" "2.23.5"
|
||||
"@douyinfe/semi-icons" "2.23.5"
|
||||
"@douyinfe/semi-illustrations" "2.23.5"
|
||||
"@douyinfe/semi-theme-default" "2.23.5"
|
||||
"@dnd-kit/core" "^6.0.8"
|
||||
"@dnd-kit/sortable" "^7.0.2"
|
||||
"@dnd-kit/utilities" "^3.2.1"
|
||||
"@douyinfe/semi-animation" "2.42.3"
|
||||
"@douyinfe/semi-animation-react" "2.42.3"
|
||||
"@douyinfe/semi-foundation" "2.42.3"
|
||||
"@douyinfe/semi-icons" "2.42.3"
|
||||
"@douyinfe/semi-illustrations" "2.42.3"
|
||||
"@douyinfe/semi-theme-default" "2.42.3"
|
||||
async-validator "^3.5.0"
|
||||
classnames "^2.2.6"
|
||||
copy-text-to-clipboard "^2.1.1"
|
||||
date-fns "^2.9.0"
|
||||
date-fns-tz "^1.0.10"
|
||||
date-fns "^2.29.3"
|
||||
date-fns-tz "^1.3.8"
|
||||
lodash "^4.17.21"
|
||||
prop-types "^15.7.2"
|
||||
react-resizable "^1.8.0"
|
||||
react-sortable-hoc "^2.0.0"
|
||||
react-resizable "^3.0.5"
|
||||
react-window "^1.8.2"
|
||||
resize-observer-polyfill "^1.5.1"
|
||||
scroll-into-view-if-needed "^2.2.24"
|
||||
@ -4518,15 +4550,17 @@ data-urls@^2.0.0:
|
||||
whatwg-mimetype "^2.3.0"
|
||||
whatwg-url "^8.0.0"
|
||||
|
||||
date-fns-tz@^1.0.10:
|
||||
version "1.3.7"
|
||||
resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.7.tgz#e8e9d2aaceba5f1cc0e677631563081fdcb0e69a"
|
||||
integrity sha512-1t1b8zyJo+UI8aR+g3iqr5fkUHWpd58VBx8J/ZSQ+w7YrGlw80Ag4sA86qkfCXRBLmMc4I2US+aPMd4uKvwj5g==
|
||||
date-fns-tz@^1.3.8:
|
||||
version "1.3.8"
|
||||
resolved "https://registry.yarnpkg.com/date-fns-tz/-/date-fns-tz-1.3.8.tgz#083e3a4e1f19b7857fa0c18deea6c2bc46ded7b9"
|
||||
integrity sha512-qwNXUFtMHTTU6CFSFjoJ80W8Fzzp24LntbjFFBgL/faqds4e5mo9mftoRLgr3Vi1trISsg4awSpYVsOQCRnapQ==
|
||||
|
||||
date-fns@^2.9.0:
|
||||
version "2.29.3"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.29.3.tgz#27402d2fc67eb442b511b70bbdf98e6411cd68a8"
|
||||
integrity sha512-dDCnyH2WnnKusqvZZ6+jA1O51Ibt8ZMRNkDZdyAyK4YfbDwa/cEmuztzG5pk6hqlp9aSBPYcjOlktquahGwGeA==
|
||||
date-fns@^2.29.3:
|
||||
version "2.30.0"
|
||||
resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.30.0.tgz#f367e644839ff57894ec6ac480de40cae4b0f4d0"
|
||||
integrity sha512-fnULvOpxnC5/Vg3NCiWelDsLiUc9bRwAPs/+LfTLNvetFCtCTN+yQz15C/fs4AwX1R9K5GLtLfn8QW+dWisaAw==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.21.0"
|
||||
|
||||
debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
||||
version "2.6.9"
|
||||
@ -9679,7 +9713,7 @@ prompts@^2.0.1:
|
||||
kleur "^3.0.3"
|
||||
sisteransi "^1.0.5"
|
||||
|
||||
prop-types@15.x, prop-types@^15.5.7, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.7.2, prop-types@^15.8.1:
|
||||
prop-types@15.x, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.7.2, prop-types@^15.8.1:
|
||||
version "15.8.1"
|
||||
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
|
||||
integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==
|
||||
@ -9969,10 +10003,10 @@ react-refresh@^0.8.3:
|
||||
resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.8.3.tgz#721d4657672d400c5e3c75d063c4a85fb2d5d68f"
|
||||
integrity sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg==
|
||||
|
||||
react-resizable@^1.8.0:
|
||||
version "1.11.1"
|
||||
resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-1.11.1.tgz#02ca6850afa7a22c1b3e623e64aef71ee252af69"
|
||||
integrity sha512-S70gbLaAYqjuAd49utRHibtHLrHXInh7GuOR+6OO6RO6uleQfuBnWmZjRABfqNEx3C3Z6VPLg0/0uOYFrkfu9Q==
|
||||
react-resizable@^3.0.5:
|
||||
version "3.0.5"
|
||||
resolved "https://registry.yarnpkg.com/react-resizable/-/react-resizable-3.0.5.tgz#362721f2efbd094976f1780ae13f1ad7739786c1"
|
||||
integrity sha512-vKpeHhI5OZvYn82kXOs1bC8aOXktGU5AmKAgaZS4F5JPburCtbmDPqE7Pzp+1kN4+Wb81LlF33VpGwWwtXem+w==
|
||||
dependencies:
|
||||
prop-types "15.x"
|
||||
react-draggable "^4.0.3"
|
||||
@ -10051,15 +10085,6 @@ react-scroll@^1.8.4:
|
||||
lodash.throttle "^4.1.1"
|
||||
prop-types "^15.7.2"
|
||||
|
||||
react-sortable-hoc@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/react-sortable-hoc/-/react-sortable-hoc-2.0.0.tgz#f6780d8aa4b922a21f3e754af542f032677078b7"
|
||||
integrity sha512-JZUw7hBsAHXK7PTyErJyI7SopSBFRcFHDjWW5SWjcugY0i6iH7f+eJkY8cJmGMlZ1C9xz1J3Vjz0plFpavVeRg==
|
||||
dependencies:
|
||||
"@babel/runtime" "^7.2.0"
|
||||
invariant "^2.2.4"
|
||||
prop-types "^15.5.7"
|
||||
|
||||
react-spinners@^0.11.0:
|
||||
version "0.11.0"
|
||||
resolved "https://registry.yarnpkg.com/react-spinners/-/react-spinners-0.11.0.tgz#186fd150cc9f7ab1436227f70d5d113b47e9e43d"
|
||||
@ -11587,6 +11612,11 @@ tslib@^1.8.1:
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.14.1.tgz#cf2d38bdc34a134bcaf1091c41f6619e2f672d00"
|
||||
integrity sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==
|
||||
|
||||
tslib@^2.0.0:
|
||||
version "2.6.2"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.6.2.tgz#703ac29425e7b37cd6fd456e92404d46d1f3e4ae"
|
||||
integrity sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==
|
||||
|
||||
tslib@^2.0.3:
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3"
|
||||
@ -12527,10 +12557,10 @@ ws@^7.3.1, ws@^7.4.6:
|
||||
resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591"
|
||||
integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==
|
||||
|
||||
wukongimjssdk@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/wukongimjssdk/-/wukongimjssdk-1.1.1.tgz#c0c723016d6198d16a2af0b44b9e806dc1b2378f"
|
||||
integrity sha512-2CPnKL55V6TWVA/nTK8g3Hs0Z4REqSIxtkEiM1x2SZqDnfgdjv2E6qAU8vatC2K/9d7gL8vXKKZiSNoCo9F3aA==
|
||||
wukongimjssdk@^1.1.2:
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/wukongimjssdk/-/wukongimjssdk-1.1.2.tgz#d1f781a1c5d4fb32217bba939b7000e09d04bf22"
|
||||
integrity sha512-x1xAnn17jHZshZnt53eiccMOffYIaIy+6CHH9NWS6p2aefJibX3LfHODrQWQJkoJ4ppGtfGfuqukkYgwTIqxiw==
|
||||
dependencies:
|
||||
"@types/bignumber.js" "^5.0.0"
|
||||
"@types/crypto-js" "^4.0.2"
|
||||
|
Loading…
x
Reference in New Issue
Block a user