Files
api/sample/dev/talk/js/module/variable.js
2025-07-02 21:55:07 +09:00

154 lines
4.6 KiB
JavaScript

// 전역 변수
import {talkEvent} from "./talkEvent.js";
const global = {
/*스톰프*/
stomp: null,
/*사용자 정보 */
user: null,
/*현페이지 업무정보*/
work: null,
/*api url정의*/
apiUrl: '',
/*헬프톡 생성 옵션*/
option: {},
/*헬프톡 content 루트 */
shadowRoot: null,
/*헬프톨 주요 엘리먼트 */
element: {},
/*채팅 날짜 정의*/
currDay: '',
/*채팅 상태글 이전 날짜*/
yourOldDate: '',
/*채팅 본인글 이전 날짜*/
mineOldDate: '',
/*톡방 메시지 스크롤 위치*/
oldScrollPosition: 0,
/*스크롤 top < 300 페이징 데이터 호출 여부*/
scrollMoreFlag: true,
/*채팅방 엘리먼트 변화 감지 하여 자동 스크롤 사용여부*/
scrollObserveFlag:true,
/* 불필요 변수 */
allVNode: [],
/* 채팅방 데이터 */
talkData: [],
/* 소켓 커넥션 및 브로드 캐스드 관리*/
channel: null,
/* 현재 접속 서버 */
currentServer: '',
/*시스템 강제 종료 여부*/
forceKill: false,
/* 채팅글 호출 파라미터 */
messageParams: {
'talkId': '',
'week': 1,
'row': 50,
'start': 0,
},
/* 현재 접속 url 파리미터 정보 */
requestParams: {},
/* 구독 목록 */
subscribeList : {},
// 파일 구독 목록
fileSubscribeList: {},
/* 현재 사이트 URL*/
currentUrl: '',
/* 에러 메시지 함수 */
notifier: null,
/* 브라우저 탭 아이디 */
tabId: '',
/* 방 생성자 */
chatCreator: null,
hub: null,
/*클립보드 정보*/
clipboardData: null,
clipboardObjectUrl: null,
// 서비스워커 연결 여부
serviceWorkerConnect: false,
// 소켓연결 제어
reConnect: false,
/* 로딩 여부 (새로고침시 reconnect 방지용)*/
init: false,
checker : {flag: false, inDate: ''},
talkParams : (obj) => {
return {
type: obj.type,
insSabun: global.user.sabun,
insName : global.user.name,
insDate : obj.insDate || '',
message: obj.message || '',
talkId: obj.talkId,
workId: obj.workId,
workNm: obj.workNm || '',
introOwner: obj.introOwner || '',
talkAttachDtos: obj.talkAttachDtos === undefined ? [] : obj.talkAttachDtos,
talkMessages: obj.talkMessages,
attach: obj.attach,
tabId: global.tabId
}
},
/*특정 파라미터 초기화(채팅방 나가기시)*/
reset: () => {
// 인포 메시지 삭제
const systemMessages = global.shadowRoot.querySelectorAll('.system-message');
Array.from(systemMessages).forEach((sm) => sm.remove());
// 사이드바 원위치
global.element.chatSidebar.style.left = 0;
// // 채팅 내용 호출 파라미터 초기화
global.currDay = ''
global.yourOldDate = '';
global.mineOldDate = '';
// global.messageParams.talkId = '';
// global.messageParams.week = 1;
global.scrollMoreFlag = true;
global.scrollObserveFlag = true;
// 검색 비활성화
global.searchClose();
/*작성된 메시지 제거*/
const msg = global.element.chatEditor.innerText.trim();
if(msg !== '') {
const talkId = localStorage.getItem(global.tabId)
const _this = global.shadowRoot.querySelector(`div[data-talk-id="${talkId}"]`)
const workId = _this.dataset.workId;
const workNm = _this.dataset.workNm;
talkEvent.send(global.talkParams({
type: "UNTYPED",
talkId: talkId,
workId: workId,
workNm: workNm
}))
global.element.chatEditor.innerHTML = '';
}
talkEvent.messageClean();
// localstorage 정보 제거
localStorage.removeItem(global.tabId)
localStorage.removeItem('workId')
localStorage.removeItem('workNm')
},
talkClean: () => {
//
console.log('clean')
global.currDay = ''
global.yourOldDate = '';
global.mineOldDate = '';
global.messageParams.talkId = '';
global.messageParams.week = 1;
global.scrollMoreFlag = true;
global.scrollObserveFlag = true;
},
searchClose: () => {
const searchCloseBtn = global.shadowRoot.querySelector('#chat-option.bi-x-lg');
if(searchCloseBtn) {
searchCloseBtn.click()
}
}
}
export {global}