SHA256
Добавлены родственные связи, расширен граф связей и улучшен локальный запуск
Что добавлено:\n- Новые типы CONNECTION для родственников: parent/child/sibling (50/51, 52/53, 54/55) в blockchain/db слоях.\n- Обновлены проверки ConnectionBody и DB-триггер connections_state для корректной записи/удаления новых связей.\n- В профиле добавлен блок "Близкие родственники" с модальным выбором типа связи и логина; добавление через AddBlock для parent/child/sibling.\n- Расширен API GetUserConnectionsGraph: out/in списки для родителей/детей/сиблингов, агрегированные списки родственников с полом, список allUsers с метками официальный/сияющий.\n- Полностью обновлен UI страницы "Связи": новое позиционирование родственников вокруг центра, отдельный цвет родственных связей, линия для взаимных связей и стрелка для односторонних, корректная геометрия линий при ресайзе.\n- Добавлена Gradle-задача startLocalWithBuild для запуска локального стека после build; сохранена отдельная startLocal без полного build.
This commit is contained in:
@@ -48,6 +48,9 @@ const CONNECTION_SUBTYPES = Object.freeze({
|
||||
friend: { on: 10, off: 11 },
|
||||
contact: { on: 20, off: 21 },
|
||||
follow: { on: 30, off: 31 },
|
||||
parent: { on: 50, off: 51 },
|
||||
child: { on: 52, off: 53 },
|
||||
sibling: { on: 54, off: 55 },
|
||||
});
|
||||
|
||||
function normalizeServerUrl(url) {
|
||||
|
||||
@@ -68,6 +68,12 @@ async function buildRelationsModel(login) {
|
||||
inContacts: [],
|
||||
outFollows: [],
|
||||
inFollows: [],
|
||||
outParents: [],
|
||||
inParents: [],
|
||||
outChildren: [],
|
||||
inChildren: [],
|
||||
outSiblings: [],
|
||||
inSiblings: [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -104,6 +110,12 @@ async function buildRelationsModel(login) {
|
||||
inContacts: readArray(graph, 'inContacts') || [],
|
||||
outFollows,
|
||||
inFollows: readArray(graph, 'inFollows') || [],
|
||||
outParents: readArray(graph, 'outParents') || [],
|
||||
inParents: readArray(graph, 'inParents') || [],
|
||||
outChildren: readArray(graph, 'outChildren') || [],
|
||||
inChildren: readArray(graph, 'inChildren') || [],
|
||||
outSiblings: readArray(graph, 'outSiblings') || [],
|
||||
inSiblings: readArray(graph, 'inSiblings') || [],
|
||||
};
|
||||
}
|
||||
|
||||
@@ -144,6 +156,12 @@ export async function loadCurrentRelations() {
|
||||
inContacts: [],
|
||||
outFollows: [],
|
||||
inFollows: [],
|
||||
outParents: [],
|
||||
inParents: [],
|
||||
outChildren: [],
|
||||
inChildren: [],
|
||||
outSiblings: [],
|
||||
inSiblings: [],
|
||||
};
|
||||
}
|
||||
return buildRelationsModel(login);
|
||||
@@ -157,6 +175,12 @@ export function relationFlagsForTarget(relations, targetLogin) {
|
||||
inContact: listContainsLogin(relations?.inContacts, targetLogin),
|
||||
outFollow: listContainsLogin(relations?.outFollows, targetLogin),
|
||||
inFollow: listContainsLogin(relations?.inFollows, targetLogin),
|
||||
outParent: listContainsLogin(relations?.outParents, targetLogin),
|
||||
inParent: listContainsLogin(relations?.inParents, targetLogin),
|
||||
outChild: listContainsLogin(relations?.outChildren, targetLogin),
|
||||
inChild: listContainsLogin(relations?.inChildren, targetLogin),
|
||||
outSibling: listContainsLogin(relations?.outSiblings, targetLogin),
|
||||
inSibling: listContainsLogin(relations?.inSiblings, targetLogin),
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user