xzitlou / jsontr.ee

Effortlessly visualize JSON structures as dynamic tree diagrams
https://jsontr.ee
MIT License
364 stars 14 forks source link

Several UX quirks and potential improvements #2

Open hsfzxjy opened 1 week ago

hsfzxjy commented 1 week ago

First of all, congrats for launching this awesome project! Here's some UX issues I've met during testing:

Dragging the canvas causes undesired text selection

https://github.com/user-attachments/assets/8e3c4732-f756-47bb-99c5-7c86cf799337


Some elements overlap on others

image


Potentially improvable zooming Currently, the zooming functionality is anchored at the top-left corner. To enhance the user experience, this behavior may be updated to center around the user's cursor instead.

xzitlou commented 1 week ago

Thanks @hsfzxjy I will making some tests

xzitlou commented 1 week ago

@hsfzxjy the text selection was fixed, I was not able to replicate the overlapping issue, is there a way you can share the JSON you are testing? We are not storing any data and it's not posible to replicate if something is broken. Thanks.

hsfzxjy commented 1 week ago

Edit Hmm, I am also not able to reproduce the overlapping issue now. Seems that it was accidentally fixed.


The JSON samples are as follows

{
    "catalog": {
        "version": "1.2",
        "lastUpdated": "2024-11-25",
        "products": [
            {
                "id": "P12345",
                "name": "SuperWidget",
                "category": "widgets",
                "price": 299.99,
                "currency": "USD",
                "stock": {
                    "available": 150,
                    "reserved": 25,
                    "warehouse": {
                        "location": "Warehouse A",
                        "address": "123 Industrial Rd, Tech City, USA"
                    }
                },
                "description": "An advanced widget for professionals.",
                "tags": [
                    "technology",
                    "gadgets",
                    "tools"
                ],
                "reviews": {
                    "averageRating": 4.7,
                    "totalReviews": 1325,
                    "reviewDetails": [
                        {
                            "userId": "user_001",
                            "rating": 5,
                            "comment": "This widget is amazing!",
                            "date": "2024-11-10",
                            "helpfulVotes": 35
                        },
                        {
                            "userId": "user_002",
                            "rating": 4,
                            "comment": "Great, but could be a bit cheaper.",
                            "date": "2024-11-15",
                            "helpfulVotes": 20
                        }
                    ]
                },
                "variants": [
                    {
                        "color": "black",
                        "size": "large",
                        "sku": "P12345-BL-L",
                        "price": 299.99
                    },
                    {
                        "color": "white",
                        "size": "small",
                        "sku": "P12345-WH-S",
                        "price": 279.99
                    }
                ],
                "shipping": {
                    "dimensions": {
                        "length": 12.5,
                        "width": 8.5,
                        "height": 3.5,
                        "unit": "inches"
                    },
                    "weight": {
                        "value": 2.5,
                        "unit": "lbs"
                    },
                    "freeShipping": true,
                    "internationalShipping": {
                        "available": true,
                        "regions": [
                            "Europe",
                            "Asia",
                            "North America"
                        ],
                        "shippingCosts": {
                            "Europe": 25.0,
                            "Asia": 30.0,
                            "North America": 20.0
                        }
                    }
                },
                "supplier": {
                    "id": "S1234",
                    "name": "Widget Co.",
                    "contact": {
                        "name": "John Doe",
                        "email": "contact@widgetco.com",
                        "phone": "+1-800-555-1234"
                    },
                    "address": {
                        "street": "456 Commerce St",
                        "city": "Tech City",
                        "country": "USA",
                        "postalCode": "12345"
                    }
                }
            },
            {
                "id": "P67890",
                "name": "MegaGizmo",
                "category": "gizmos",
                "price": 499.99,
                "currency": "USD",
                "stock": {
                    "available": 85,
                    "reserved": 10,
                    "warehouse": {
                        "location": "Warehouse B",
                        "address": "789 Commerce Rd, Tech City, USA"
                    }
                },
                "description": "A powerful gizmo for creative professionals.",
                "tags": [
                    "electronics",
                    "tools",
                    "creative"
                ],
                "reviews": {
                    "averageRating": 4.2,
                    "totalReviews": 987,
                    "reviewDetails": [
                        {
                            "userId": "user_003",
                            "rating": 4,
                            "comment": "Great performance, but a bit bulky.",
                            "date": "2024-10-20",
                            "helpfulVotes": 45
                        },
                        {
                            "userId": "user_004",
                            "rating": 3,
                            "comment": "Not as portable as I expected.",
                            "date": "2024-10-25",
                            "helpfulVotes": 12
                        }
                    ]
                },
                "variants": [
                    {
                        "color": "red",
                        "size": "medium",
                        "sku": "P67890-RD-M",
                        "price": 499.99
                    },
                    {
                        "color": "blue",
                        "size": "large",
                        "sku": "P67890-BL-L",
                        "price": 479.99
                    }
                ],
                "shipping": {
                    "dimensions": {
                        "length": 15.0,
                        "width": 10.0,
                        "height": 5.0,
                        "unit": "inches"
                    },
                    "weight": {
                        "value": 4.0,
                        "unit": "lbs"
                    },
                    "freeShipping": false,
                    "internationalShipping": {
                        "available": true,
                        "regions": [
                            "North America",
                            "Europe"
                        ],
                        "shippingCosts": {
                            "Europe": 30.0,
                            "North America": 25.0
                        }
                    }
                },
                "supplier": {
                    "id": "S5678",
                    "name": "Gizmo Tech Ltd.",
                    "contact": {
                        "name": "Alice Smith",
                        "email": "support@gizmotech.com",
                        "phone": "+1-800-555-5678"
                    },
                    "address": {
                        "street": "123 Innovation Blvd",
                        "city": "Tech City",
                        "country": "USA",
                        "postalCode": "67890"
                    }
                }
            }
        ],
        "meta": {
            "totalProducts": 2,
            "totalCategories": 2,
            "categories": [
                {
                    "name": "widgets",
                    "id": "cat_wg_001",
                    "totalProducts": 1
                },
                {
                    "name": "gizmos",
                    "id": "cat_gz_001",
                    "totalProducts": 1
                }
            ]
        }
    }
}