@@ -101,11 +101,13 @@ export function EntryCard({
101101
102102export function Entry ( { entry } : { entry : LogEntry } ) {
103103 const [ uuid , obj ] = Object . entries ( entry ) [ 0 ] ;
104- const [ expanded , setExpanded ] = useState ( [ "" ] ) ;
105104
106- const toggle = ( id : string ) => {
105+ type PanelId = "body-content" | "attestation-content" | "verification-content" ;
106+ const [ expanded , setExpanded ] = useState < PanelId [ ] > ( [ ] ) ;
107+
108+ const toggle = ( id : PanelId ) => {
107109 const index = expanded . indexOf ( id ) ;
108- const newExpanded : string [ ] =
110+ const newExpanded : PanelId [ ] =
109111 index >= 0 ? [ ...expanded . slice ( 0 , index ) , ...expanded . slice ( index + 1 , expanded . length ) ] : [ ...expanded , id ] ;
110112 setExpanded ( newExpanded ) ;
111113 } ;
@@ -184,7 +186,7 @@ export function Entry({ entry }: { entry: LogEntry }) {
184186 < Fragment >
185187 < Accordion >
186188 < >
187- < AccordionItem >
189+ < AccordionItem isExpanded = { expanded . includes ( "body-content" ) } >
188190 < AccordionToggle
189191 id = { "body-header" }
190192 aria-controls = "body-content"
@@ -194,14 +196,14 @@ export function Entry({ entry }: { entry: LogEntry }) {
194196 >
195197 < b > Raw Body</ b >
196198 </ AccordionToggle >
197- < AccordionContent hidden = { ! expanded . includes ( "body-content" ) } >
199+ < AccordionContent >
198200 < SyntaxHighlighter language = "yaml" style = { atomDark } >
199201 { dump ( body , DUMP_OPTIONS ) }
200202 </ SyntaxHighlighter >
201203 </ AccordionContent >
202204 </ AccordionItem >
203205 { attestation && (
204- < AccordionItem >
206+ < AccordionItem isExpanded = { expanded . includes ( "attestation-content" ) } >
205207 < AccordionToggle
206208 aria-controls = "attestation-content"
207209 id = "attestation-header"
@@ -211,15 +213,15 @@ export function Entry({ entry }: { entry: LogEntry }) {
211213 >
212214 < b > Attestation</ b >
213215 </ AccordionToggle >
214- < AccordionContent hidden = { ! expanded . includes ( "attestation-content" ) } >
216+ < AccordionContent >
215217 < SyntaxHighlighter language = "yaml" style = { atomDark } >
216218 { dump ( attestation ) }
217219 </ SyntaxHighlighter >
218220 </ AccordionContent >
219221 </ AccordionItem >
220222 ) }
221223 { obj . verification && (
222- < AccordionItem >
224+ < AccordionItem isExpanded = { expanded . includes ( "verification-content" ) } >
223225 < AccordionToggle
224226 aria-controls = "verification-content"
225227 id = { "verification-header" }
@@ -229,7 +231,7 @@ export function Entry({ entry }: { entry: LogEntry }) {
229231 >
230232 < h3 > Verification</ h3 >
231233 </ AccordionToggle >
232- < AccordionContent hidden = { ! expanded . includes ( "verification-content" ) } >
234+ < AccordionContent >
233235 < SyntaxHighlighter language = "yaml" style = { atomDark } >
234236 { dump ( obj . verification ) }
235237 </ SyntaxHighlighter >
0 commit comments