@dugongjs/cli
Version:
30 lines (29 loc) • 2.51 kB
JavaScript
import { Box, Text } from "ink";
import React from "react";
import { JSONViewer } from "../components/json-viewer.js";
import { Pane } from "../components/pane.js";
import { ValueDisplay } from "../components/value-display.js";
export const DomainEventViewPane = (props) => {
const { isLoading, domainEvent, maximumSequenceNumber } = props;
return (React.createElement(Pane, { isLoading: isLoading },
React.createElement(Text, { bold: true }, "Domain Event"),
!domainEvent ? (React.createElement(Text, { color: "gray" }, "No domain event selected")) : (React.createElement(Box, { flexDirection: "column", width: "100%", height: "100%" },
React.createElement(Box, { flexDirection: "column", width: "100%", padding: 1 },
React.createElement(ValueDisplay, { label: "ID", value: domainEvent.id }),
React.createElement(ValueDisplay, { label: "Sequence number", value: `${domainEvent.sequenceNumber ?? "0"}/${maximumSequenceNumber ?? "0"}` }),
React.createElement(ValueDisplay, { label: "Timestamp", value: domainEvent.timestamp }),
React.createElement(ValueDisplay, { label: "Type", value: domainEvent.type }),
React.createElement(ValueDisplay, { label: "Version", value: domainEvent.version }),
React.createElement(ValueDisplay, { label: "Origin", value: domainEvent.origin }),
React.createElement(ValueDisplay, { label: "Aggregate Type", value: domainEvent.aggregateType }),
React.createElement(ValueDisplay, { label: "Aggregate ID", value: domainEvent.aggregateId }),
React.createElement(ValueDisplay, { label: "Correlation ID", value: domainEvent.correlationId }),
React.createElement(ValueDisplay, { label: "Triggered by user ID", value: domainEvent.triggeredByUserId }),
React.createElement(ValueDisplay, { label: "Triggered by event ID", value: domainEvent.triggeredByEventId })),
React.createElement(Box, { flexDirection: "column", rowGap: 1, width: "100%", padding: 1 },
React.createElement(Text, { bold: true }, "Metadata"),
React.createElement(JSONViewer, { data: domainEvent.metadata })),
React.createElement(Box, { flexDirection: "column", rowGap: 1, width: "100%", padding: 1 },
React.createElement(Text, { bold: true }, "Payload"),
React.createElement(JSONViewer, { data: domainEvent.payload }))))));
};