SHiNE-server/shine-UI/js/router.js
AidarKC cfc92beec0 14-04-2026
То что дела ай и то во что надо влить изменнеия
2026-04-14 21:51:16 +03:00

75 lines
2.1 KiB
JavaScript

const ROOT_PAGES = ['messages-list', 'channels-list', 'network-view', 'notifications-view', 'profile-view'];
export const PRE_AUTH_PAGES = [
'start-view',
'entry-settings-view',
'register-view',
'registration-payment-view',
'registration-keys-view',
'topup-view',
'login-view',
'login-camera-view',
'login-password-view',
'key-storage-view',
];
export function getRoute() {
const raw = window.location.hash.replace(/^#\/?/, '');
if (!raw) {
return { pageId: '', params: {} };
}
const [pageId, dynamicId, extraId] = raw.split('/');
if (pageId === 'chat-view') {
return { pageId, params: { chatId: dynamicId ? decodeURIComponent(dynamicId) : '' } };
}
if (pageId === 'channel-view') {
return { pageId, params: { channelId: dynamicId ? decodeURIComponent(dynamicId) : '' } };
}
if (pageId === 'device-session-view') {
return { pageId, params: { sessionId: dynamicId ? decodeURIComponent(dynamicId) : '' } };
}
if (pageId === 'user-profile-view') {
return {
pageId,
params: {
login: dynamicId ? decodeURIComponent(dynamicId) : '',
fromPage: extraId ? decodeURIComponent(extraId) : 'messages-list',
},
};
}
return { pageId, params: {} };
}
export function navigate(path) {
window.location.hash = `#/${path}`;
}
export function resolveToolbarActive(pageId) {
if (ROOT_PAGES.includes(pageId)) return pageId;
if (
pageId === 'wallet-view' ||
pageId === 'settings-view' ||
pageId === 'server-settings-view' ||
pageId === 'device-view' ||
pageId === 'connect-device-view' ||
pageId === 'device-qr-view' ||
pageId === 'device-camera-view' ||
pageId === 'show-keys-view' ||
pageId === 'device-session-view' ||
pageId === 'language-view' ||
pageId === 'app-log-view'
) {
return 'profile-view';
}
if (pageId === 'chat-view' || pageId === 'contact-search-view') return 'messages-list';
if (pageId === 'user-profile-view') return 'messages-list';
if (pageId === 'channel-view' || pageId === 'add-channel-view') return 'channels-list';
return 'profile-view';
}