1
1
/* eslint-disable @typescript-eslint/no-unused-vars */
2
2
'use client' ;
3
3
4
- import React , { useCallback , useState , useMemo , useEffect , useRef } from 'react' ;
5
- import { useParams , useSearchParams } from 'next/navigation' ;
6
- import { FaExclamationTriangle , FaBookOpen , FaGithub , FaGitlab , FaBitbucket , FaDownload , FaFileExport , FaHome , FaFolder , FaSync , FaChevronUp , FaChevronDown , FaComments , FaTimes } from 'react-icons/fa' ;
7
- import Link from 'next/link' ;
8
- import ThemeToggle from '@/components/theme-toggle' ;
9
- import Markdown from '@/components/Markdown' ;
10
4
import Ask from '@/components/Ask' ;
5
+ import Markdown from '@/components/Markdown' ;
11
6
import ModelSelectionModal from '@/components/ModelSelectionModal' ;
7
+ import ThemeToggle from '@/components/theme-toggle' ;
12
8
import WikiTreeView from '@/components/WikiTreeView' ;
13
9
import { useLanguage } from '@/contexts/LanguageContext' ;
14
10
import { RepoInfo } from '@/types/repoinfo' ;
15
- import { extractUrlDomain , extractUrlPath } from '@/utils/urlDecoder' ;
16
11
import getRepoUrl from '@/utils/getRepoUrl' ;
12
+ import { extractUrlDomain , extractUrlPath } from '@/utils/urlDecoder' ;
13
+ import Link from 'next/link' ;
14
+ import { useParams , useSearchParams } from 'next/navigation' ;
15
+ import React , { useCallback , useEffect , useMemo , useRef , useState } from 'react' ;
16
+ import { FaBitbucket , FaBookOpen , FaComments , FaDownload , FaExclamationTriangle , FaFileExport , FaFolder , FaGithub , FaGitlab , FaHome , FaSync , FaTimes } from 'react-icons/fa' ;
17
17
// Define the WikiSection and WikiStructure types directly in this file
18
18
// since the imported types don't have the sections and rootSections properties
19
19
interface WikiSection {
@@ -105,6 +105,8 @@ const addTokensToRequestBody = (
105
105
language : string = 'en' ,
106
106
excludedDirs ?: string ,
107
107
excludedFiles ?: string ,
108
+ includedDirs ?: string ,
109
+ includedFiles ?: string
108
110
) : void => {
109
111
if ( token !== '' ) {
110
112
requestBody . token = token ;
@@ -126,6 +128,13 @@ const addTokensToRequestBody = (
126
128
if ( excludedFiles ) {
127
129
requestBody . excluded_files = excludedFiles ;
128
130
}
131
+ if ( includedDirs ) {
132
+ requestBody . included_dirs = includedDirs ;
133
+ }
134
+ if ( includedFiles ) {
135
+ requestBody . included_files = includedFiles ;
136
+ }
137
+
129
138
} ;
130
139
131
140
const createGithubHeaders = ( githubToken : string ) : HeadersInit => {
@@ -226,6 +235,11 @@ export default function RepoWikiPage() {
226
235
const excludedFiles = searchParams . get ( 'excluded_files' ) || '' ;
227
236
const [ modelExcludedDirs , setModelExcludedDirs ] = useState ( excludedDirs ) ;
228
237
const [ modelExcludedFiles , setModelExcludedFiles ] = useState ( excludedFiles ) ;
238
+ const includedDirs = searchParams . get ( 'included_dirs' ) || '' ;
239
+ const includedFiles = searchParams . get ( 'included_files' ) || '' ;
240
+ const [ modelIncludedDirs , setModelIncludedDirs ] = useState ( includedDirs ) ;
241
+ const [ modelIncludedFiles , setModelIncludedFiles ] = useState ( includedFiles ) ;
242
+
229
243
230
244
// Wiki type state - default to comprehensive view
231
245
const isComprehensiveParam = searchParams . get ( 'comprehensive' ) !== 'false' ;
@@ -487,7 +501,7 @@ Remember:
487
501
} ;
488
502
489
503
// Add tokens if available
490
- addTokensToRequestBody ( requestBody , currentToken , effectiveRepoInfo . type , selectedProviderState , selectedModelState , isCustomSelectedModelState , customSelectedModelState , language , modelExcludedDirs , modelExcludedFiles ) ;
504
+ addTokensToRequestBody ( requestBody , currentToken , effectiveRepoInfo . type , selectedProviderState , selectedModelState , isCustomSelectedModelState , customSelectedModelState , language , modelExcludedDirs , modelExcludedFiles , modelIncludedDirs , modelIncludedFiles ) ;
491
505
492
506
// Use WebSocket for communication
493
507
let content = '' ;
@@ -780,7 +794,7 @@ IMPORTANT:
780
794
} ;
781
795
782
796
// Add tokens if available
783
- addTokensToRequestBody ( requestBody , currentToken , effectiveRepoInfo . type , selectedProviderState , selectedModelState , isCustomSelectedModelState , customSelectedModelState , language , modelExcludedDirs , modelExcludedFiles ) ;
797
+ addTokensToRequestBody ( requestBody , currentToken , effectiveRepoInfo . type , selectedProviderState , selectedModelState , isCustomSelectedModelState , customSelectedModelState , language , modelExcludedDirs , modelExcludedFiles , modelIncludedDirs , modelIncludedFiles ) ;
784
798
785
799
// Use WebSocket for communication
786
800
let responseText = '' ;
@@ -2209,6 +2223,10 @@ IMPORTANT:
2209
2223
setExcludedDirs = { setModelExcludedDirs }
2210
2224
excludedFiles = { modelExcludedFiles }
2211
2225
setExcludedFiles = { setModelExcludedFiles }
2226
+ includedDirs = { modelIncludedDirs }
2227
+ setIncludedDirs = { setModelIncludedDirs }
2228
+ includedFiles = { modelIncludedFiles }
2229
+ setIncludedFiles = { setModelIncludedFiles }
2212
2230
onApply = { confirmRefresh }
2213
2231
showWikiType = { true }
2214
2232
showTokenInput = { effectiveRepoInfo . type !== 'local' && ! currentToken } // Show token input if not local and no current token
0 commit comments