diff --git a/src/app/registers/RegisterBrowser.tsx b/src/app/registers/RegisterBrowser.tsx index ccf10c0..15b2c13 100644 --- a/src/app/registers/RegisterBrowser.tsx +++ b/src/app/registers/RegisterBrowser.tsx @@ -4,6 +4,7 @@ import { useState } from 'react'; import Link from 'next/link'; import { Register, RegisterAccess, Note } from './types'; import { Form, Card, Container, Row, Col, Tabs, Tab, Table, OverlayTrigger, Tooltip } from 'react-bootstrap'; +import RegisterDetail from "@/app/registers/RegisterDetail"; interface RegisterBrowserProps { registers: Register[]; @@ -95,31 +96,7 @@ export default function RegisterBrowser({ registers }: RegisterBrowserProps) { {filteredRegisters.map(register => { const defaultActiveKey = getDefaultActiveKey(register); return ( - - - - {register.hex_address} ( {register.dec_address} ) - {register.name} {register.issue_4_only && Issue 4 Only} - - - - - {register.common && {renderAccess(register.common)}} - {register.read && {renderAccess(register.read)}} - {register.write && {renderAccess(register.write)}} - - {register.notes.map((note, index) => ( -

{note.ref} {note.text}

- ))} - {register.text && register.text.length > 0 && ( -
-
Notes:
-
{register.text}
-
- )} -
-
- + ); })} diff --git a/src/app/registers/RegisterDetail.tsx b/src/app/registers/RegisterDetail.tsx new file mode 100644 index 0000000..0073803 --- /dev/null +++ b/src/app/registers/RegisterDetail.tsx @@ -0,0 +1,48 @@ +"use client"; + +import { Col, Card, Tabs, Tab } from 'react-bootstrap'; +import { Register } from './types'; +import { renderAccess } from './RegisterBrowser'; +import Link from "next/link"; + +/** + * A client-side component that displays the details of a single register. + * @param register The register object to display. + * @param defaultActiveKey The default active tab to display. + * @returns A React component that displays the register details. + */ +export default function RegisterDetail({ + register, + defaultActiveKey, +}: { + register: Register; + defaultActiveKey?: string; +}) { + return ( + + + + {register.hex_address} ( {register.dec_address} ) + {register.name} {register.issue_4_only && Issue 4 Only} + + + + + {register.common && {renderAccess(register.common)}} + {register.read && {renderAccess(register.read)}} + {register.write && {renderAccess(register.write)}} + + {register.notes.map((note, index) => ( +

{note.ref} {note.text}

+ ))} + {register.text && register.text.length > 0 && ( +
+
Notes:
+
{register.text}
+
+ )} +
+
+ + ); +} diff --git a/src/app/registers/RegisterDetailClient.tsx b/src/app/registers/RegisterDetailClient.tsx deleted file mode 100644 index b1fc99e..0000000 --- a/src/app/registers/RegisterDetailClient.tsx +++ /dev/null @@ -1,66 +0,0 @@ -"use client"; - -import { Container, Row, Col, Card, Tabs, Tab } from 'react-bootstrap'; -import { Register } from './types'; -import { renderAccess } from './RegisterBrowser'; - -/** - * A client-side component that displays the details of a single register. - * @param register The register object to display. - * @param defaultActiveKey The default active tab to display. - * @returns A React component that displays the register details. - */ -export default function RegisterDetailClient({ - register, - defaultActiveKey, -}: { - register: Register; - defaultActiveKey?: string; -}) { - return ( - - - - - - {register.name} ({register.hex_address} / {register.dec_address}){' '} - {register.issue_4_only && Issue 4 Only} - - - {defaultActiveKey ? ( - - {register.common && ( - - {renderAccess(register.common)} - - )} - {register.read && ( - - {renderAccess(register.read)} - - )} - {register.write && ( - - {renderAccess(register.write)} - - )} - - ) : null} - {register.notes.map((note, index) => ( -

- {note.ref} {note.text} -

- ))} - {register.text && register.text.length > 0 && ( -
-
Notes:
-
{register.text}
-
- )} -
-
- -
-
- ); -} diff --git a/src/app/registers/[hex]/page.tsx b/src/app/registers/[hex]/page.tsx index 8f2916b..50ad619 100644 --- a/src/app/registers/[hex]/page.tsx +++ b/src/app/registers/[hex]/page.tsx @@ -3,7 +3,8 @@ import path from 'path'; import { notFound } from 'next/navigation'; import Link from 'next/link'; import { Register, RegisterAccess } from '../../registers/types'; -import RegisterDetailClient from '../../registers/RegisterDetailClient'; +import RegisterDetail from '../RegisterDetail'; +import {Container, Row} from "react-bootstrap"; async function parseNextReg(fileContent: string): Promise { const registers: Register[] = []; @@ -173,11 +174,13 @@ export default async function RegisterDetailPage({ params }: { params: { hex: st const defaultActiveKey = register.common ? 'common' : (register.read ? 'read' : (register.write ? 'write' : undefined)); return ( -
+
← Back to Registers
- -
+ + + + ); }