|
@@ -9,18 +9,39 @@ interface SchemaVersionProps {
|
|
const SchemaVersion: React.FC<SchemaVersionProps> = ({
|
|
const SchemaVersion: React.FC<SchemaVersionProps> = ({
|
|
version: { version, id, schema },
|
|
version: { version, id, schema },
|
|
}) => {
|
|
}) => {
|
|
|
|
+ const [isOpen, setIsOpen] = React.useState(false);
|
|
|
|
+ const toggleIsOpen = () => setIsOpen(!isOpen);
|
|
return (
|
|
return (
|
|
<tr>
|
|
<tr>
|
|
|
|
+ <td>
|
|
|
|
+ <span
|
|
|
|
+ className="icon has-text-link is-size-7 is-small is-clickable"
|
|
|
|
+ onClick={toggleIsOpen}
|
|
|
|
+ aria-hidden
|
|
|
|
+ >
|
|
|
|
+ <i className={`fas fa-${isOpen ? 'minus' : 'plus'}`} />
|
|
|
|
+ </span>
|
|
|
|
+ </td>
|
|
<td>{version}</td>
|
|
<td>{version}</td>
|
|
<td>{id}</td>
|
|
<td>{id}</td>
|
|
- <td>
|
|
|
|
- <JSONEditor
|
|
|
|
- isFixedHeight
|
|
|
|
- name="schema"
|
|
|
|
- value={JSON.stringify(JSON.parse(schema), null, '\t')}
|
|
|
|
- showGutter={false}
|
|
|
|
- readOnly
|
|
|
|
- />
|
|
|
|
|
|
+ <td
|
|
|
|
+ className="has-text-overflow-ellipsis is-family-code"
|
|
|
|
+ style={{ width: '100%', maxWidth: 0 }}
|
|
|
|
+ >
|
|
|
|
+ {isOpen ? (
|
|
|
|
+ <JSONEditor
|
|
|
|
+ isFixedHeight
|
|
|
|
+ name="schema"
|
|
|
|
+ value={JSON.stringify(JSON.parse(schema), null, '\t')}
|
|
|
|
+ setOptions={{
|
|
|
|
+ showLineNumbers: false,
|
|
|
|
+ maxLines: 40,
|
|
|
|
+ }}
|
|
|
|
+ readOnly
|
|
|
|
+ />
|
|
|
|
+ ) : (
|
|
|
|
+ <span>{schema}</span>
|
|
|
|
+ )}
|
|
</td>
|
|
</td>
|
|
</tr>
|
|
</tr>
|
|
);
|
|
);
|