403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/model/src/sidebar/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/model/src/sidebar/sidebar.js
import { Type } from 'main.core';
import { BuilderModel } from 'ui.vue3.vuex';

import { Core } from 'im.v2.application.core';

import { LinksModel } from './nested-modules/links/links';
import { FavoritesModel } from './nested-modules/favorites/favorites';
import { MembersModel } from './nested-modules/members';
import { MessageSearchModel } from './nested-modules/message-search/message-search';
import { TasksModel } from './nested-modules/tasks/tasks';
import { MeetingsModel } from './nested-modules/meeting/meeting';
import { FilesModel } from './nested-modules/files/files';
import { MultidialogModel } from './nested-modules/multidialog/multidialog';

import type { GetterTree, ActionTree, MutationTree, NestedModuleTree } from 'ui.vue3.vuex';

type SidebarState = {
	initedList: Set<number>,
	isFilesMigrated: boolean,
	isLinksMigrated: boolean,
};

/* eslint-disable no-param-reassign */
export class SidebarModel extends BuilderModel
{
	getName(): string
	{
		return 'sidebar';
	}

	getNestedModules(): NestedModuleTree
	{
		return {
			members: MembersModel,
			links: LinksModel,
			favorites: FavoritesModel,
			tasks: TasksModel,
			meetings: MeetingsModel,
			files: FilesModel,
			multidialog: MultidialogModel,
			messageSearch: MessageSearchModel,
		};
	}

	getState(): SidebarState
	{
		return {
			initedList: new Set(),
			isFilesMigrated: false,
			isLinksMigrated: false,
		};
	}

	getGetters(): GetterTree
	{
		return {
			/** @function sidebar/isInited */
			isInited: (state: SidebarState) => (chatId: number): boolean => {
				return state.initedList.has(chatId);
			},
			/** @function sidebar/hasHistoryLimit */
			hasHistoryLimit: () => (chatId: number): boolean => {
				const limitsByPanel = [
					'sidebar/links/isHistoryLimitExceeded',
					'sidebar/files/isHistoryLimitExceeded',
					'sidebar/favorites/isHistoryLimitExceeded',
					'sidebar/meetings/isHistoryLimitExceeded',
					'sidebar/tasks/isHistoryLimitExceeded',
					'sidebar/messageSearch/isHistoryLimitExceeded',
				].map((getterName) => Core.getStore().getters[getterName](chatId));

				return limitsByPanel.some((hasLimit) => hasLimit);
			},
		};
	}

	getActions(): ActionTree
	{
		return {
			/** @function sidebar/setInited */
			setInited: (store, chatId: number) => {
				if (!Type.isNumber(chatId))
				{
					return;
				}

				store.commit('setInited', chatId);
			},
			/** @function sidebar/setFilesMigrated */
			setFilesMigrated: (store, value: boolean) => {
				if (!Type.isBoolean(value))
				{
					return;
				}

				store.commit('setFilesMigrated', value);
			},
			/** @function sidebar/setLinksMigrated */
			setLinksMigrated: (store, value: boolean) => {
				if (!Type.isBoolean(value))
				{
					return;
				}

				store.commit('setLinksMigrated', value);
			},
		};
	}

	getMutations(): MutationTree
	{
		return {
			setInited: (state: SidebarState, chatId: number) => {
				state.initedList.add(chatId);
			},
			setFilesMigrated: (state: SidebarState, payload: boolean) => {
				state.isFilesMigrated = payload;
			},
			setLinksMigrated: (state: SidebarState, payload: boolean) => {
				state.isLinksMigrated = payload;
			},
		};
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit