@@ -201,10 +201,25 @@ document.addEventListener('DOMContentLoaded', () => {
201201 document . getElementById ( 'modalClose' ) ?. addEventListener ( 'click' , closeModal ) ;
202202 document . getElementById ( 'modalOverlay' ) ?. addEventListener ( 'click' , closeModal ) ;
203203
204- // Load initial data
205- loadRepositories ( '' , repoParam ) ;
204+ // Defer initial load so browser-restored form state (e.g. exclude forks checkbox) is applied first
205+ requestAnimationFrame ( ( ) => {
206+ loadRepositories ( '' , repoParam ) ;
207+ } ) ;
206208} ) ;
207209
210+ // Sync in-memory filters with DOM (browser may restore form state without firing change)
211+ function syncColumnFiltersFromDOM ( ) {
212+ const langFilter = document . getElementById ( 'langFilter' ) ;
213+ const licenseFilter = document . getElementById ( 'licenseFilter' ) ;
214+ const authorFilter = document . getElementById ( 'authorFilter' ) ;
215+ const excludeForksFilter = document . getElementById ( 'excludeForksFilter' ) ;
216+
217+ columnFilters . lang = langFilter ?. value || '' ;
218+ columnFilters . license = licenseFilter ?. value || '' ;
219+ columnFilters . author = authorFilter ?. value || '' ;
220+ columnFilters . excludeForks = Boolean ( excludeForksFilter ?. checked ) ;
221+ }
222+
208223// Switch filter
209224function switchFilter ( filter ) {
210225 if ( filter === currentFilter ) return ;
@@ -232,6 +247,8 @@ function switchFilter(filter) {
232247
233248// Load repositories
234249async function loadRepositories ( searchQuery = '' , highlightRepoId = null ) {
250+ syncColumnFiltersFromDOM ( ) ;
251+
235252 const loading = document . getElementById ( 'tableLoading' ) ;
236253 const table = document . getElementById ( 'reposTable' ) ;
237254 const empty = document . getElementById ( 'tableEmpty' ) ;
0 commit comments