feat: resume
This commit is contained in:
parent
fd5b3dab97
commit
828497fcd6
@ -31,7 +31,7 @@ import {
|
|||||||
PostMessageRequest,
|
PostMessageRequest,
|
||||||
} from '@/types/message';
|
} from '@/types/message';
|
||||||
import { isAnchorMode } from '@/utils/app';
|
import { isAnchorMode } from '@/utils/app';
|
||||||
import { getScrollItemId, last, logWithPrefix, safeJsonParse } from '@/utils/common';
|
import { getScrollItemId, last, logWithPrefix } from '@/utils/common';
|
||||||
import { collectEvent } from '@/utils/event';
|
import { collectEvent } from '@/utils/event';
|
||||||
import {
|
import {
|
||||||
isExchangeMessage,
|
isExchangeMessage,
|
||||||
@ -55,7 +55,6 @@ import Toast from '@/utils/toast';
|
|||||||
import { getUserId } from '@/utils/user';
|
import { getUserId } from '@/utils/user';
|
||||||
|
|
||||||
import './index.less';
|
import './index.less';
|
||||||
import useUserInfo from '@/hooks/use-user-info';
|
|
||||||
|
|
||||||
const PREFIX = 'page-message-chat';
|
const PREFIX = 'page-message-chat';
|
||||||
const LIST_CONTAINER_CLASS = `${PREFIX}__chat-list`;
|
const LIST_CONTAINER_CLASS = `${PREFIX}__chat-list`;
|
||||||
@ -86,19 +85,8 @@ const getHeaderLeftButtonText = (job?: IJobMessage, material?: IMaterialMessage)
|
|||||||
return isAnchorMode() ? '不感兴趣' : '标记为不合适';
|
return isAnchorMode() ? '不感兴趣' : '标记为不合适';
|
||||||
};
|
};
|
||||||
|
|
||||||
const getResumeId = (messages: IChatMessage[], userId?: string) => {
|
|
||||||
const resumeStr = messages.find(it => it.type === MessageType.Material && it.senderUserId !== userId)?.actionObject;
|
|
||||||
if (resumeStr) {
|
|
||||||
const { id } = safeJsonParse(resumeStr);
|
|
||||||
log('resumeId', id);
|
|
||||||
return id;
|
|
||||||
}
|
|
||||||
return undefined;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default function MessageChat() {
|
export default function MessageChat() {
|
||||||
const listHeight = useListHeight(CALC_LIST_PROPS);
|
const listHeight = useListHeight(CALC_LIST_PROPS);
|
||||||
const { userId } = useUserInfo();
|
|
||||||
const [input, setInput] = useState('');
|
const [input, setInput] = useState('');
|
||||||
const [showMore, setShowMore] = useState(false);
|
const [showMore, setShowMore] = useState(false);
|
||||||
const [chat, setChat] = useState<IChatInfo | null>(null);
|
const [chat, setChat] = useState<IChatInfo | null>(null);
|
||||||
@ -107,8 +95,8 @@ export default function MessageChat() {
|
|||||||
const [messages, setMessages] = useState<IChatMessage[]>([]);
|
const [messages, setMessages] = useState<IChatMessage[]>([]);
|
||||||
const [messageStatusList, setMessageStatusList] = useState<IMessageStatus[]>([]);
|
const [messageStatusList, setMessageStatusList] = useState<IMessageStatus[]>([]);
|
||||||
const [jobId, setJobId] = useState<string>();
|
const [jobId, setJobId] = useState<string>();
|
||||||
|
const [resumeId, setResumeId] = useState<string>();
|
||||||
const [job, setJob] = useState<IJobMessage>();
|
const [job, setJob] = useState<IJobMessage>();
|
||||||
const [resumeId, setResumeId] = useState<string | undefined>();
|
|
||||||
const [material, setMaterial] = useState<IMaterialMessage>();
|
const [material, setMaterial] = useState<IMaterialMessage>();
|
||||||
const [scrollItemId, setScrollItemId] = useState<string>();
|
const [scrollItemId, setScrollItemId] = useState<string>();
|
||||||
const scrollToLowerRef = useRef(false);
|
const scrollToLowerRef = useRef(false);
|
||||||
@ -265,14 +253,6 @@ export default function MessageChat() {
|
|||||||
// };
|
// };
|
||||||
// }, []);
|
// }, []);
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
if (resumeId) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
setResumeId(getResumeId(messages, userId));
|
|
||||||
}, [messages, resumeId, userId]);
|
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!chat) {
|
if (!chat) {
|
||||||
return;
|
return;
|
||||||
@ -319,6 +299,7 @@ export default function MessageChat() {
|
|||||||
const parseMaterial = query.material ? parseQuery<IMaterialMessage>(query.material) : null;
|
const parseMaterial = query.material ? parseQuery<IMaterialMessage>(query.material) : null;
|
||||||
// log('requestChatDetail', chatDetail, parseJob, parseMaterial);
|
// log('requestChatDetail', chatDetail, parseJob, parseMaterial);
|
||||||
setChat(chatDetail);
|
setChat(chatDetail);
|
||||||
|
setResumeId(chatDetail.participants.find(u => u.userId !== currentUserId)?.resumeId);
|
||||||
setJobId(query.jobId);
|
setJobId(query.jobId);
|
||||||
setMessages(chatDetail.messages);
|
setMessages(chatDetail.messages);
|
||||||
setScrollItemId(getScrollItemId(last(chatDetail.messages)?.msgId));
|
setScrollItemId(getScrollItemId(last(chatDetail.messages)?.msgId));
|
||||||
|
@ -43,7 +43,9 @@ export interface ILocationMessage {
|
|||||||
longitude: number;
|
longitude: number;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IChatUser extends Pick<UserInfo, 'userId' | 'nickName'> {}
|
export interface IChatUser extends Pick<UserInfo, 'userId' | 'nickName'> {
|
||||||
|
resumeId: string;
|
||||||
|
}
|
||||||
|
|
||||||
export interface IChatMessage {
|
export interface IChatMessage {
|
||||||
msgId: string;
|
msgId: string;
|
||||||
|
Loading…
Reference in New Issue
Block a user