36 lines
1.1 KiB
TypeScript
36 lines
1.1 KiB
TypeScript
import React from "react";
|
||
|
||
// Функция для корректного формирования URL изображения
|
||
const getImageUrl = (baseUrl: string, size: string) => {
|
||
if (!baseUrl) return '';
|
||
return baseUrl
|
||
.replace(/&/g, '&')
|
||
.replace(/</g, '<')
|
||
.replace(/>/g, '>')
|
||
.replace(/"/g, '"')
|
||
.replace('%size%', size);
|
||
};
|
||
|
||
const KnotIn = ({ node }: { node: any }) => {
|
||
if (!node) return null;
|
||
let imageUrl = '';
|
||
if (node.imageurl) {
|
||
imageUrl = getImageUrl(node.imageurl, '250');
|
||
} else if (node.largeimageurl) {
|
||
imageUrl = node.largeimageurl;
|
||
}
|
||
return (
|
||
<div className="knotin">
|
||
{imageUrl ? (
|
||
<img src={imageUrl} loading="lazy" alt={node.name || "Изображение узла"} className="image-26" />
|
||
) : (
|
||
<div style={{ width: 200, height: 200, background: '#eee', display: 'flex', alignItems: 'center', justifyContent: 'center' }}>
|
||
Нет изображения
|
||
</div>
|
||
)}
|
||
{/* <div style={{ marginTop: 8, fontWeight: 500 }}>{node.name}</div> */}
|
||
</div>
|
||
);
|
||
};
|
||
|
||
export default KnotIn;
|