File size: 1,129 Bytes
11af141
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
import React from "react";

type Props = {
  data: any | null;
};

export default function OutputPanel({ data }: Props) {
  if (!data) return null;
  if (data.error) return <div style={{ color: "crimson" }}>Error: {data.error}</div>;

  return (
    <div style={{ marginTop: 16, padding: 16, border: "1px solid #eee", borderRadius: 12 }}>
      <h3 style={{ marginTop: 0 }}>結果</h3>
      <div><strong>件名:</strong> {data.subject}</div>
      <div style={{ whiteSpace: "pre-wrap", marginTop: 8 }}>{data.body}</div>
      <div style={{ marginTop: 12, opacity: 0.8 }}>
        <div>toxicity: {data.quality?.toxicity?.toFixed?.(3)}</div>
        <div>sentiment: {data.quality?.sentiment?.toFixed?.(3)}</div>
        {data.warnings?.length ? (
          <ul>{data.warnings.map((w: string, i: number) => <li key={i}>{w}</li>)}</ul>
        ) : null}
        {data.lint?.issues?.length ? (
          <>
            <div style={{ marginTop: 8 }}><strong>Lint:</strong></div>
            <ul>{data.lint.issues.map((w: string, i: number) => <li key={i}>{w}</li>)}</ul>
          </>
        ) : null}
      </div>
    </div>
  );
}