mirror of
https://github.com/comit-network/xmr-btc-swap.git
synced 2025-12-20 02:53:00 -05:00
* task(gui): update to mui v5 * task(gui): use sx prop instead of system props * task(gui): update to mui v6 and replace makeStyles with sx prop * task(gui): update to mui v7 * task(gui): update react * fix(gui): fix import * task(gui): adjust theme and few components to fix migration introduced styling errors * fix(gui): animation issues with text field animations * fix(gui): remove 'darker' theme and make 'dark' theme the default - with the new update 'dark' theme is already quite dark and therefore a 'darker' theme not necessary - the default theme is set to 'dark' now in settings initialization * feat(tooling): Upgrade dprint to 0.50.0, eslint config, prettier, justfile commands - Upgrade dprint to 0.50.0 - Use sane default eslint config (fairly permissive) - `dprint fmt` now runs prettier for the `src-gui` folder - Added `check_gui_eslint`, `check_gui_tsc` and `check_gui` commands * refactor: fix a few eslint errors * dprint fmt * fix tsc complains * nitpick: small spacing issue --------- Co-authored-by: Binarybaron <binarybaron@protonmail.com> Co-authored-by: Mohan <86064887+binarybaron@users.noreply.github.com>
51 lines
1.4 KiB
TypeScript
51 lines
1.4 KiB
TypeScript
import ChevronRightIcon from "@mui/icons-material/ChevronRight";
|
|
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
import TreeItem from "@mui/lab/TreeItem";
|
|
import TreeView from "@mui/lab/TreeView";
|
|
import ScrollablePaperTextBox from "./ScrollablePaperTextBox";
|
|
|
|
interface JsonTreeViewProps {
|
|
data: unknown;
|
|
label: string;
|
|
}
|
|
|
|
export default function JsonTreeView({ data, label }: JsonTreeViewProps) {
|
|
const renderTree = (nodes: unknown, parentId: string) => {
|
|
return Object.keys(nodes).map((key, _) => {
|
|
const nodeId = `${parentId}.${key}`;
|
|
if (typeof nodes[key] === "object" && nodes[key] !== null) {
|
|
return (
|
|
<TreeItem nodeId={nodeId} label={key} key={nodeId}>
|
|
{renderTree(nodes[key], nodeId)}
|
|
</TreeItem>
|
|
);
|
|
}
|
|
return (
|
|
<TreeItem
|
|
nodeId={nodeId}
|
|
label={`${key}: ${nodes[key]}`}
|
|
key={nodeId}
|
|
/>
|
|
);
|
|
});
|
|
};
|
|
|
|
return (
|
|
<ScrollablePaperTextBox
|
|
title={label}
|
|
copyValue={JSON.stringify(data, null, 4)}
|
|
rows={[
|
|
<TreeView
|
|
key={1}
|
|
defaultCollapseIcon={<ExpandMoreIcon />}
|
|
defaultExpandIcon={<ChevronRightIcon />}
|
|
defaultExpanded={["root"]}
|
|
>
|
|
<TreeItem nodeId="root" label={label}>
|
|
{renderTree(data ?? {}, "root")}
|
|
</TreeItem>
|
|
</TreeView>,
|
|
]}
|
|
/>
|
|
);
|
|
}
|