SelectedRealtimeMessagePanel.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import type { LogData } from './Messages.types'
  2. import { jsonSyntaxHighlight, SelectionDetailedTimestampRow } from './MessagesFormatters'
  3. const LogsDivider = () => {
  4. return (
  5. <div className="h-px w-full bg-panel-border-interior-light in-data-[theme*=dark]:bg-panel-border-interior-dark" />
  6. )
  7. }
  8. export const SelectedRealtimeMessagePanel = ({ log }: { log: LogData }) => {
  9. return (
  10. <>
  11. <div className="px-8">
  12. <span className="col-span-4 text-sm text-scale-900">Message</span>
  13. <p className="text-wrap mt-2 overflow-x-auto whitespace-pre-wrap font-mono text-xs text-scale-1200">
  14. {log.message}
  15. </p>
  16. </div>
  17. <LogsDivider />
  18. <div className="px-8 space-y-2">
  19. <SelectionDetailedTimestampRow hideCopy value={log.timestamp} />
  20. </div>
  21. <LogsDivider />
  22. <div className="px-8">
  23. <h3 className="mb-4 text-sm text-foreground-lighter">Payload</h3>
  24. <pre className="syntax-highlight overflow-x-auto text-sm">
  25. <div
  26. className="text-wrap"
  27. dangerouslySetInnerHTML={{
  28. __html: log.metadata ? jsonSyntaxHighlight(log.metadata) : '',
  29. }}
  30. />
  31. </pre>
  32. </div>
  33. </>
  34. )
  35. }