Доделать связи и профиль

This commit is contained in:
AidarKC
2026-09-01 14:59:42 +04:00
parent a66d7a64e6
commit 390a2b988e
16 changed files with 599 additions and 304 deletions
+6 -3
View File
@@ -90,18 +90,21 @@ const SIGNAL_TYPE_REMOTE_ADDBLOCK_REQUEST = 'remote_addblock_request';
const SIGNAL_TYPE_REMOTE_ADDBLOCK_RESULT = 'remote_addblock_result';
const CONNECTION_SUBTYPES = Object.freeze({
// Legacy alias: friend == close_friend. Оба ключа ведут на один и тот же код 10/11.
close_friend: { on: 10, off: 11 },
friend: { on: 10, off: 11 },
friend: { on: 14, off: 15 },
contact: { on: 20, off: 21 },
// Reserved: пока не используется UI.
follow: { on: 30, off: 31 },
// Reserved: семейные связи пока скрыты из UI.
spouse: { on: 40, off: 41 },
parent: { on: 50, off: 51 },
child: { on: 52, off: 53 },
sibling: { on: 54, off: 55 },
known_person: { on: 60, off: 61 },
// Legacy 60/61 intentionally absent: старые блоки сервер принимает, новый UI их не создаёт.
shine_confirmed: { on: 70, off: 71 },
// Reserved: пока не используется UI.
shine_seen: { on: 74, off: 75 },
official_account: { on: 80, off: 81 },
});
function normalizeServerUrl(url) {
+18
View File
@@ -50,6 +50,8 @@ function readArray(payload, key) {
const aliases = {
outKnownPersons: ['outKnownPersons', 'outKnownPerson', 'out_known_persons'],
inKnownPersons: ['inKnownPersons', 'inKnownPerson', 'in_known_persons'],
outOfficialAccounts: ['outOfficialAccounts', 'outOfficialAccount', 'out_official_accounts'],
inOfficialAccounts: ['inOfficialAccounts', 'inOfficialAccount', 'in_official_accounts'],
outShineConfirmed: ['outShineConfirmed', 'outShineConfident', 'out_shine_confirmed'],
inShineConfirmed: ['inShineConfirmed', 'inShineConfident', 'in_shine_confirmed'],
outShineSeen: ['outShineSeen', 'out_shine_seen'],
@@ -81,6 +83,8 @@ async function buildRelationsModel(login) {
return {
outFriends: [],
inFriends: [],
outCloseFriends: [],
inCloseFriends: [],
outContacts: [],
inContacts: [],
outFollows: [],
@@ -93,6 +97,8 @@ async function buildRelationsModel(login) {
inSiblings: [],
outKnownPersons: [],
inKnownPersons: [],
outOfficialAccounts: [],
inOfficialAccounts: [],
outShineConfirmed: [],
inShineConfirmed: [],
outShineSeen: [],
@@ -129,6 +135,8 @@ async function buildRelationsModel(login) {
return {
outFriends: readArray(graph, 'outFriends') || [],
inFriends: readArray(graph, 'inFriends') || [],
outCloseFriends: readArray(graph, 'outCloseFriends') || [],
inCloseFriends: readArray(graph, 'inCloseFriends') || [],
outContacts,
inContacts: readArray(graph, 'inContacts') || [],
outFollows,
@@ -141,6 +149,8 @@ async function buildRelationsModel(login) {
inSiblings: readArray(graph, 'inSiblings') || [],
outKnownPersons: readArray(graph, 'outKnownPersons') || [],
inKnownPersons: readArray(graph, 'inKnownPersons') || [],
outOfficialAccounts: readArray(graph, 'outOfficialAccounts') || [],
inOfficialAccounts: readArray(graph, 'inOfficialAccounts') || [],
outShineConfirmed: readArray(graph, 'outShineConfirmed') || [],
inShineConfirmed: readArray(graph, 'inShineConfirmed') || [],
outShineSeen: readArray(graph, 'outShineSeen') || [],
@@ -169,6 +179,8 @@ export async function loadCurrentRelations() {
return {
outFriends: [],
inFriends: [],
outCloseFriends: [],
inCloseFriends: [],
outContacts: [],
inContacts: [],
outFollows: [],
@@ -181,6 +193,8 @@ export async function loadCurrentRelations() {
inSiblings: [],
outKnownPersons: [],
inKnownPersons: [],
outOfficialAccounts: [],
inOfficialAccounts: [],
outShineConfirmed: [],
inShineConfirmed: [],
outShineSeen: [],
@@ -194,6 +208,8 @@ export function relationFlagsForTarget(relations, targetLogin) {
return {
outFriend: listContainsLogin(relations?.outFriends, targetLogin),
inFriend: listContainsLogin(relations?.inFriends, targetLogin),
outCloseFriend: listContainsLogin(relations?.outCloseFriends, targetLogin),
inCloseFriend: listContainsLogin(relations?.inCloseFriends, targetLogin),
outContact: listContainsLogin(relations?.outContacts, targetLogin),
inContact: listContainsLogin(relations?.inContacts, targetLogin),
outFollow: listContainsLogin(relations?.outFollows, targetLogin),
@@ -206,6 +222,8 @@ export function relationFlagsForTarget(relations, targetLogin) {
inSibling: listContainsLogin(relations?.inSiblings, targetLogin),
outKnownPerson: listContainsLogin(relations?.outKnownPersons, targetLogin),
inKnownPerson: listContainsLogin(relations?.inKnownPersons, targetLogin),
outOfficialAccount: listContainsLogin(relations?.outOfficialAccounts, targetLogin),
inOfficialAccount: listContainsLogin(relations?.inOfficialAccounts, targetLogin),
outShineConfirmed: listContainsLogin(relations?.outShineConfirmed, targetLogin),
inShineConfirmed: listContainsLogin(relations?.inShineConfirmed, targetLogin),
outShineSeen: listContainsLogin(relations?.outShineSeen, targetLogin),