SHA256
UI: обновить ссылки SHiNE и форму канала
This commit is contained in:
+12
-10
@@ -1,4 +1,4 @@
|
||||
import { parseShineRootSegment } from './services/shine-routes.js';
|
||||
import { parseShineRouteParts } from './services/shine-routes.js';
|
||||
|
||||
const ROOT_PAGES = ['messages-list', 'channels-list', 'network-view', 'notifications-view', 'profile-view'];
|
||||
const PRETTY_PATHS = new Map([
|
||||
@@ -90,9 +90,11 @@ export function getRoute() {
|
||||
};
|
||||
const isLikelyBlockNumber = (value) => /^[0-9]+$/.test(String(value || '').trim());
|
||||
|
||||
const shineLogin = parseShineRootSegment(pageId);
|
||||
if (shineLogin) {
|
||||
const section = decodePart(segments[1] || '').toLowerCase();
|
||||
const shineRoute = parseShineRouteParts(segments);
|
||||
if (shineRoute?.entity) {
|
||||
const shineLogin = shineRoute.entity;
|
||||
const baseOffset = Number(shineRoute.offset || 0);
|
||||
const section = decodePart(segments[baseOffset] || '').toLowerCase();
|
||||
if (!section) {
|
||||
return { pageId: 'user', params: { login: shineLogin, fromPage: 'messages-list', section: 'profile' } };
|
||||
}
|
||||
@@ -100,7 +102,7 @@ export function getRoute() {
|
||||
return { pageId: 'network-view', params: { mode: 'keep-history', login: shineLogin } };
|
||||
}
|
||||
if (section === 'channels') {
|
||||
const sub = decodePart(segments[2] || '').toLowerCase();
|
||||
const sub = decodePart(segments[baseOffset + 1] || '').toLowerCase();
|
||||
if (sub === 'owned') {
|
||||
return {
|
||||
pageId: 'channels-list',
|
||||
@@ -118,12 +120,12 @@ export function getRoute() {
|
||||
params: { mode: 'feed', login: shineLogin, scope: 'all' },
|
||||
};
|
||||
}
|
||||
if (segments.length === 2 && isLikelyBlockNumber(segments[1])) {
|
||||
if (segments.length === baseOffset + 1 && isLikelyBlockNumber(segments[baseOffset])) {
|
||||
return {
|
||||
pageId: 'channel-thread-view',
|
||||
params: {
|
||||
messageBlockchainName: shineLogin,
|
||||
messageBlockNumber: segments[1] || '',
|
||||
messageBlockNumber: segments[baseOffset] || '',
|
||||
messageBlockHash: '',
|
||||
channelOwnerBlockchainName: '',
|
||||
channelRootBlockNumber: '',
|
||||
@@ -131,10 +133,10 @@ export function getRoute() {
|
||||
},
|
||||
};
|
||||
}
|
||||
if (segments.length >= 2) {
|
||||
if (segments.length >= baseOffset + 1) {
|
||||
const ownerBlockchainName = shineLogin;
|
||||
const channelName = decodePart(segments[1] || '');
|
||||
const messageBlockNumber = segments[2] || '';
|
||||
const channelName = decodePart(segments[baseOffset] || '');
|
||||
const messageBlockNumber = segments[baseOffset + 1] || '';
|
||||
if (ownerBlockchainName && channelName && messageBlockNumber) {
|
||||
return {
|
||||
pageId: 'channel-thread-view',
|
||||
|
||||
Reference in New Issue
Block a user