Добавили счётчик подписчиков в каналах и подписки пользователя

This commit is contained in:
AidarKC
2026-08-26 11:11:46 +04:00
parent 3a5851939e
commit 01321f5200
28 changed files with 1966 additions and 44 deletions
+45 -1
View File
@@ -26,6 +26,7 @@ const PRETTY_PATHS = new Map([
['add-channel-view', 'channels/new'],
['add-personal-public-chat-view', 'channels/new-public-chat'],
['channel-view', 'channel'],
['channel-about-view', 'channel/about'],
['channel-thread-view', 'thread'],
['network-view', 'network'],
['notifications-view', 'notifications'],
@@ -52,6 +53,10 @@ const PRETTY_PATHS = new Map([
['remote-addblock-session-view', 'remote-addblock-session'],
]);
function looksLikeBlockchainName(value) {
return /^.+-\d+$/.test(String(value || '').trim());
}
export const PRE_AUTH_PAGES = [
'start-view',
'entry-settings-view',
@@ -162,6 +167,34 @@ export function parseRouteFromPath(pathname = '') {
}
}
if (segments.length >= 2 && looksLikeBlockchainName(segments[0])) {
const ownerBlockchainName = decodePart(segments[0]);
const channelName = decodePart(segments[1] || '');
const sub = decodePart(segments[2] || '').toLowerCase();
if (ownerBlockchainName && channelName) {
if (sub === 'about') {
return {
pageId: 'channel-about-view',
params: {
ownerBlockchainName,
channelRootBlockNumber: '',
channelRootBlockHash: '',
channelId: '',
channelName,
},
};
}
return {
pageId: 'channel-view',
params: {
ownerBlockchainName,
channelName,
channelId: '',
},
};
}
}
if (pageId === 'chat' || pageId === 'chat-view') {
return { pageId: 'chat-view', params: { chatId: dynamicId ? decodeURIComponent(dynamicId) : '' } };
}
@@ -225,6 +258,17 @@ export function parseRouteFromPath(pathname = '') {
}
if (pageId === 'channel') {
if (segments.length >= 5 && decodePart(segments[4] || '').toLowerCase() === 'about') {
return {
pageId: 'channel-about-view',
params: {
ownerBlockchainName: decodePart(segments[1]),
channelRootBlockNumber: segments[2] || '',
channelRootBlockHash: segments[3] || '',
channelId: '',
},
};
}
if (segments.length >= 4) {
return {
pageId: 'channel-view',
@@ -408,7 +452,7 @@ export function resolveToolbarActive(pageId) {
pageId === 'solana-users-init-view'
) return 'profile-view';
if (pageId === 'chat-view' || pageId === 'contact-search-view') return 'messages-list';
if (pageId === 'channel-view' || pageId === 'channel-thread-view' || pageId === 'add-channel-view' || pageId === 'add-personal-public-chat-view') return 'channels-list';
if (pageId === 'channel-view' || pageId === 'channel-about-view' || pageId === 'channel-thread-view' || pageId === 'add-channel-view' || pageId === 'add-personal-public-chat-view') return 'channels-list';
if (pageId === 'user') return 'messages-list';
return 'profile-view';
}