@@ -62,6 +62,7 @@ export default function App() {
6262 const [ typeFilter , setTypeFilter ] = useState ( null ) ;
6363 const [ tierFilter , setTierFilter ] = useState ( null ) ;
6464 const [ selectedCode , setSelectedCode ] = useState ( null ) ;
65+ const [ showMeasureCard , setShowMeasureCard ] = useState ( true ) ;
6566 const [ assessmentMode , setAssessmentMode ] = useState ( false ) ;
6667
6768 const {
@@ -97,6 +98,22 @@ export default function App() {
9798 const ActiveComponent = activeView . Component ;
9899 const filterable = activeView . filterable ;
99100
101+ // Selecting a measure (re)opens the detail card if it was hidden.
102+ const handleSelect = ( code ) => {
103+ setShowMeasureCard ( true ) ;
104+ setSelectedCode ( code ) ;
105+ } ;
106+
107+ // A single X control handles two steps: first deselect the measure, then
108+ // (when nothing is selected) hide the whole card.
109+ const handleCloseOrHide = ( ) => {
110+ if ( selected ) {
111+ setSelectedCode ( null ) ;
112+ } else {
113+ setShowMeasureCard ( false ) ;
114+ }
115+ } ;
116+
100117 return (
101118 < div className = "app" >
102119 < AppHeader
@@ -121,28 +138,30 @@ export default function App() {
121138 />
122139 ) }
123140
124- < div className = " app__body" >
141+ < div className = { ` app__body${ showMeasureCard ? '' : ' app__body--full' } ` } >
125142 < main className = "app__main" >
126143 < ActiveComponent
127144 lang = { lang }
128145 selectedCode = { selectedCode }
129- onSelect = { setSelectedCode }
146+ onSelect = { handleSelect }
130147 typeFilter = { filterable ? typeFilter : null }
131148 tierFilter = { filterable ? tierFilter : null }
132149 getAssessmentStatus = { assessmentMode ? getStatus : null }
133150 />
134151 </ main >
135152
136- < MeasureDetailPanel
137- measure = { selected }
138- lang = { lang }
139- onClose = { ( ) => setSelectedCode ( null ) }
140- assessmentEntry = {
141- assessmentMode && selected ? getEntry ( selected . code ) : undefined
142- }
143- onStatusChange = { assessmentMode ? setStatus : undefined }
144- onNoteChange = { assessmentMode ? setNote : undefined }
145- />
153+ { showMeasureCard && (
154+ < MeasureDetailPanel
155+ measure = { selected }
156+ lang = { lang }
157+ onClose = { handleCloseOrHide }
158+ assessmentEntry = {
159+ assessmentMode && selected ? getEntry ( selected . code ) : undefined
160+ }
161+ onStatusChange = { assessmentMode ? setStatus : undefined }
162+ onNoteChange = { assessmentMode ? setNote : undefined }
163+ />
164+ ) }
146165 </ div >
147166
148167 < footer className = "app__footer" >
0 commit comments