@@ -77,6 +77,22 @@ function GenerateSourceCodeBundle({
7777 const [ showProcessing , setShowProcessing ] = useState ( false )
7878 const [ project , setProject ] = useState < Project > ( )
7979
80+ const [ linkedProjects , setLinkedProjects ] = useState < Project [ ] > ( ( ) => [ ] )
81+ const memoizedLinkedProjects = useMemo (
82+ ( ) => linkedProjects ,
83+ [
84+ linkedProjects ,
85+ ] ,
86+ )
87+
88+ const [ attachmentUsages , setAttachmentUsages ] = useState < AttachmentUsages | undefined > ( undefined )
89+ const memoizedAttachmentUsages = useMemo (
90+ ( ) => attachmentUsages ,
91+ [
92+ attachmentUsages ,
93+ ] ,
94+ )
95+
8096 const [ data , setData ] = useState < NestedRows < TypedProject | TypedRelease | TypedAttachment > [ ] > ( ( ) => [ ] )
8197
8298 const hasSourceUsageSet = ( release : Release ) : boolean => {
@@ -181,11 +197,13 @@ function GenerateSourceCodeBundle({
181197 setProject ( proj )
182198
183199 const attachmentUsages = ( await responses [ 1 ] . json ( ) ) as AttachmentUsages
200+ setAttachmentUsages ( attachmentUsages )
184201
185202 const linkedProjects =
186203 searchParams . withSubProjects === 'true'
187204 ? ( ( await responses [ 2 ] . json ( ) ) as LinkedProjects ) [ '_embedded' ] [ 'sw360:projects' ]
188205 : ( [ ] as Project [ ] )
206+ setLinkedProjects ( linkedProjects )
189207
190208 const saveUsages : SaveUsagesPayload = {
191209 selected : [ ] ,
@@ -213,14 +231,12 @@ function GenerateSourceCodeBundle({
213231 }
214232 }
215233 setSaveUsagesPayload ( saveUsages )
216-
217- buildTable ( setData , attachmentUsages , linkedProjects , hideWithUsage )
218234 } catch ( error ) {
219235 if ( error instanceof DOMException && error . name === 'AbortError' ) {
220236 return
221237 }
222238 const message = error instanceof Error ? error . message : String ( error )
223- throw new Error ( message )
239+ MessageService . error ( message )
224240 } finally {
225241 clearTimeout ( timeout )
226242 setShowProcessing ( false )
@@ -230,7 +246,16 @@ function GenerateSourceCodeBundle({
230246 } , [
231247 projectId ,
232248 params ,
249+ ] )
250+
251+ useEffect ( ( ) => {
252+ if ( memoizedAttachmentUsages === undefined || memoizedLinkedProjects === undefined ) return
253+ buildTable ( setData , memoizedAttachmentUsages , memoizedLinkedProjects , hideWithUsage )
254+ } , [
255+ memoizedLinkedProjects ,
256+ memoizedAttachmentUsages ,
233257 hideWithUsage ,
258+ saveUsagesPayload ,
234259 ] )
235260
236261 // function to add attachments to a release
0 commit comments