Синхронизировать регистр логинов и доработать UI каналов

This commit is contained in:
AidarKC
2026-08-19 14:30:29 +04:00
parent e8a4713f6e
commit ce30b77328
29 changed files with 6729 additions and 815 deletions
+7 -41
View File
@@ -1,8 +1,5 @@
import { parseShineRouteParts } from './services/shine-routes.js';
const ROOT_PAGES = ['messages-list', 'channels-list', 'network-view', 'notifications-view', 'profile-view'];
const SWIPEABLE_ROOT_PAGES = ['messages-list', 'channels-list', 'notifications-view', 'profile-view'];
const lastVisitedRouteByRoot = new Map();
let previousTrackedPath = '';
let currentTrackedPath = String(window.location.pathname || '').trim() || '/';
const PRETTY_PATHS = new Map([
@@ -365,12 +362,6 @@ export function navigate(path) {
window.dispatchEvent(new PopStateEvent('popstate'));
}
function normalizeCurrentPath() {
return String(window.location.pathname || '')
.replace(/^\/+/, '')
.replace(/\/+$/, '');
}
export function toPrettyPath(path) {
const raw = String(path || '').replace(/^\/+/, '').replace(/\/+$/, '');
if (!raw) return '';
@@ -387,7 +378,13 @@ export function navigateBack() {
}
export function resolveToolbarActive(pageId) {
if (ROOT_PAGES.includes(pageId)) return pageId;
if (
pageId === 'messages-list'
|| pageId === 'channels-list'
|| pageId === 'network-view'
|| pageId === 'notifications-view'
|| pageId === 'profile-view'
) return pageId;
if (
pageId === 'profile-edit-view' ||
pageId === 'wallet-view' ||
@@ -416,37 +413,6 @@ export function resolveToolbarActive(pageId) {
return 'profile-view';
}
export function rememberToolbarRoute(pageId, explicitPath = '') {
const rootPageId = resolveToolbarActive(pageId);
if (!ROOT_PAGES.includes(rootPageId)) return;
const cleanPath = String(explicitPath || normalizeCurrentPath()).trim();
lastVisitedRouteByRoot.set(rootPageId, cleanPath || toPrettyPath(rootPageId) || rootPageId);
}
export function getToolbarNavigationTarget(pageId) {
const rootPageId = resolveToolbarActive(pageId);
return lastVisitedRouteByRoot.get(rootPageId) || toPrettyPath(rootPageId) || rootPageId;
}
export function resetRememberedToolbarRoutes() {
lastVisitedRouteByRoot.clear();
previousTrackedPath = '';
currentTrackedPath = String(window.location.pathname || '').trim() || '/';
}
export function getSwipeNavigationTarget(currentPageId, direction) {
const rootPageId = resolveToolbarActive(currentPageId);
const index = SWIPEABLE_ROOT_PAGES.indexOf(rootPageId);
if (index === -1) return '';
const step = direction === 'left' ? 1 : direction === 'right' ? -1 : 0;
if (!step) return '';
const nextIndex = index + step;
if (nextIndex < 0 || nextIndex >= SWIPEABLE_ROOT_PAGES.length) return '';
return getToolbarNavigationTarget(SWIPEABLE_ROOT_PAGES[nextIndex]);
}
export function syncTrackedRouteHistory(pathname = '') {
const nextPath = String(pathname || '').trim() || '/';
if (nextPath === currentTrackedPath) return;