I have a simple code with Tile Grid in which I use my own tiles. The problem is that these tiles overlap each other when displayed on the screen
Code
Version SNAPSHOT_v13.1d_2024-10-18/Pro Deployment (2024-10-18)
Screenshot
Code
Code:
import React from 'react';
import ReactDOM from 'react-dom/client';
import { TileGrid } from 'smartclient-pro/react';
const root = ReactDOM.createRoot(document.getElementById('app'));
const colors = [
"0x000000", "0x9B9B9B", "0x800000", "0xD6D6D6", "0xE6E6E6", "0xFFFFFF", "0x13BF13", "0xE5E617", "0xBF1313", "0x000000",
"0x800000", "0x9B9B9B", "0xD6D6D6", "0xE6E6E6", "0xFFFFFF", "0x13BF13", "0xE5E617", "0xBF1313", "0x000000", "0x9B9B9B",
"0x800000", "0xD6D6D6", "0xE6E6E6", "0xFFFFFF", "0x13BF13", "0xE5E617", "0xBF1313", "0x000000", "0x800000", "0x9B9B9B",
"0xD6D6D6", "0xE6E6E6", "0xFFFFFF", "0x13BF13", "0xE5E617", "0xBF1313", "0x000000", "0x9B9B9B", "0x800000", "0xD6D6D6",
"0xE6E6E6", "0xFFFFFF", "0x13BF13", "0xE5E617", "0xBF1313", "0x000000", "0x9B9B9B", "0x800000", "0xD6D6D6", "0xE6E6E6",
"0xFFFFFF", "0x13BF13", "0xE5E617", "0xBF1313", "0x000000", "0x9B9B9B", "0x800000", "0xD6D6D6", "0xE6E6E6", "0xFFFFFF",
"0x13BF13", "0xE5E617", "0xBF1313", "0x000000", "0x9B9B9B", "0x800000", "0xD6D6D6", "0xE6E6E6", "0xFFFFFF", "0x13BF13",
"0xE5E617", "0xBF1313", "0x000000", "0x9B9B9B", "0x800000", "0xD6D6D6", "0xE6E6E6", "0xFFFFFF", "0x13BF13", "0xE5E617",
"0xBF1313", "0x000000", "0x9B9B9B", "0x800000", "0xD6D6D6", "0xE6E6E6", "0xFFFFFF", "0x13BF13", "0xE5E617", "0xBF1313"
];
const isc = window.isc;
const stringsToObjects = function (strings, property) {
if (!strings) return null;
let objects = [];
for (let string of strings) {
objects.push({
[property]: string
});
}
return objects;
};
const getColor = function (color) {
if (color == null) {
return "#000000";
}
if (color.indexOf("0x") == 0) {
color = color.replace("0x", "#");
} else if (color.indexOf("#") != 0) {
try {
color = "#" + Integer.toHexString(Integer.parseInt(color));
}
catch (error) {
color = "#000000";
}
}
return color;
};
root.render(
<TileGrid data={stringsToObjects(colors, "value")}
width="50%" height="100%" tileWidth="30" tileHeight="30"
tileMargin="5"
showAllRecords="true"
createTile={function (record, tileIndex) {
let color = getColor(record["value"]);
let tile = isc.Canvas.create({
backgroundColor: color,
canHover: true,
getHoverHTML: function () {
return color;
}
});
return tile;
}}
/>
);
Screenshot