|
1 | | -'use client'; |
2 | | -import { useState } from 'react'; |
| 1 | +"use client"; |
| 2 | +import { useState } from "react"; |
3 | 3 | const items = [ |
4 | | - { id: 1, title: 'Alpha', description: 'First item' }, |
5 | | - { id: 2, title: 'Bravo', description: 'Second item' }, |
6 | | - { id: 3, title: 'Charlie', description: 'Third item' } |
| 4 | + { id: 1, title: "Alpha", description: "First item" }, |
| 5 | + { id: 2, title: "Bravo", description: "Second item" }, |
| 6 | + { id: 3, title: "Charlie", description: "Third item" }, |
7 | 7 | ]; |
8 | 8 | export default function Home() { |
9 | | - const [activeId, setActiveId] = useState<number|undefined>(1); |
10 | | - const active = items.find(i => i.id === activeId); |
| 9 | + const [activeId, setActiveId] = useState<number | undefined>(1); |
| 10 | + const active = items.find((i) => i.id === activeId); |
11 | 11 | return ( |
12 | 12 | <section> |
13 | | - <h1>Container–Presenter (Base)</h1> |
| 13 | + <h1>Master Detail</h1> |
14 | 14 | <div className="grid" style={{ marginTop: 12 }}> |
15 | 15 | <aside> |
16 | | - <div className="card"><h3>Items</h3> |
17 | | - <div>{items.map(it => ( |
18 | | - <div key={it.id} className={`list-item ${it.id===activeId?'list-item--active':''}`} onClick={() => setActiveId(it.id)}>{it.title}</div> |
19 | | - ))}</div> |
| 16 | + <div className="card"> |
| 17 | + <h3>Items</h3> |
| 18 | + <div> |
| 19 | + {items.map((it) => ( |
| 20 | + <div |
| 21 | + key={it.id} |
| 22 | + className={`list-item ${ |
| 23 | + it.id === activeId ? "list-item--active" : "" |
| 24 | + }`} |
| 25 | + onClick={() => setActiveId(it.id)} |
| 26 | + > |
| 27 | + {it.title} |
| 28 | + </div> |
| 29 | + ))} |
| 30 | + </div> |
20 | 31 | </div> |
21 | 32 | </aside> |
22 | 33 | <article> |
23 | | - <div className="card"><h3>Detail</h3>{active ? (<><h2>{active.title}</h2><p className="small">{active.description}</p></>) : 'Choose one'}</div> |
| 34 | + <div className="card"> |
| 35 | + <h3>Detail</h3> |
| 36 | + {active ? ( |
| 37 | + <> |
| 38 | + <h2>{active.title}</h2> |
| 39 | + <p className="small">{active.description}</p> |
| 40 | + </> |
| 41 | + ) : ( |
| 42 | + "Choose one" |
| 43 | + )} |
| 44 | + </div> |
24 | 45 | </article> |
25 | 46 | </div> |
26 | 47 | </section> |
|
0 commit comments