feat: редизайн UI — приглушённые цвета, шапки устройств, компактные контейнеры
Some checks failed
continuous-integration/drone/push Build is failing
Some checks failed
continuous-integration/drone/push Build is failing
- Цвета статусов: приглушённые тона для печати, красный акцент для неисправных - DeviceNode: название в цветной шапке, карты ниже без наложений - Перенос слов вместо обрезки во всех нодах - Лейаут: убран лишний gap после последнего слоя, SITE_MIN_WIDTH 250, корректный расчёт startY от шапки сайта - Белый фон графа, чёрные линии по умолчанию Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@ -11,6 +11,7 @@ import {
|
||||
SPLICE_SIZE,
|
||||
DEVICE_MIN_WIDTH,
|
||||
DEVICE_MIN_HEIGHT,
|
||||
DEVICE_HEADER_HEIGHT,
|
||||
CARD_WIDTH,
|
||||
CARD_HEIGHT,
|
||||
} from '../../../constants/sizes.ts';
|
||||
@ -36,6 +37,7 @@ function getDeviceSize(
|
||||
deviceName: string,
|
||||
marking: string,
|
||||
portCount: number,
|
||||
cardCount: number,
|
||||
): { width: number; height: number } {
|
||||
if (
|
||||
category === DeviceCategory.CrossOptical ||
|
||||
@ -50,9 +52,11 @@ function getDeviceSize(
|
||||
return { width: SPLICE_SIZE, height: SPLICE_SIZE };
|
||||
}
|
||||
const portHeight = Math.max(portCount * 22, 60);
|
||||
const cardsHeight = cardCount > 0 ? cardCount * (CARD_HEIGHT + 6) + 8 : 0;
|
||||
const bodyHeight = Math.max(portHeight, cardsHeight);
|
||||
return {
|
||||
width: DEVICE_MIN_WIDTH,
|
||||
height: Math.max(DEVICE_MIN_HEIGHT, portHeight + 30),
|
||||
height: Math.max(DEVICE_MIN_HEIGHT, DEVICE_HEADER_HEIGHT + bodyHeight + 10),
|
||||
};
|
||||
}
|
||||
|
||||
@ -105,7 +109,8 @@ export function buildGraphData(
|
||||
(p) => p.deviceId === device.id && !p.cardId,
|
||||
);
|
||||
const shape = getDeviceShape(device.category, device.name, device.marking);
|
||||
const size = getDeviceSize(device.category, device.name, device.marking, devicePorts.length);
|
||||
const deviceCards = data.cards.filter((c) => c.deviceId === device.id && c.visible);
|
||||
const size = getDeviceSize(device.category, device.name, device.marking, devicePorts.length, deviceCards.length);
|
||||
|
||||
const portItems = devicePorts.map((port) => {
|
||||
const resolvedSide = portSideMap.get(port.id) ?? port.side;
|
||||
@ -191,7 +196,7 @@ export function buildGraphData(
|
||||
).indexOf(card);
|
||||
|
||||
const cardX = parentPos.x + 10;
|
||||
const cardY = parentPos.y + 40 + cardIndex * (CARD_HEIGHT + 6);
|
||||
const cardY = parentPos.y + DEVICE_HEADER_HEIGHT + 8 + cardIndex * (CARD_HEIGHT + 6);
|
||||
|
||||
const portItems = cardPorts.map((port) => {
|
||||
const resolvedSide = portSideMap.get(port.id) ?? port.side;
|
||||
|
||||
Reference in New Issue
Block a user