@@ -12,11 +12,25 @@ export interface ApiError {
1212 error : string
1313}
1414
15+ const sheetPrefix = 'filename:'
16+
17+ function processQuery ( searchParams : URLSearchParams , q : string ) {
18+ const parts = q . split ( ' ' )
19+
20+ // Extract sheet from query
21+ const sheetPart = parts . findIndex ( part => part . startsWith ( sheetPrefix ) )
22+ if ( sheetPart !== - 1 ) {
23+ searchParams . set ( 'sheet' , parts [ sheetPart ] . slice ( sheetPrefix . length ) )
24+ parts . splice ( sheetPart , 1 )
25+ }
26+
27+ searchParams . set ( 'q' , parts . filter ( part => ! ! part ) . join ( ' ' ) )
28+ }
29+
1530export async function searchApi (
1631 params : {
1732 lang : string
1833 q : string
19- sheet ?: string
2034 offset ?: number
2135 limit ?: number
2236 fields ?: string [ ]
@@ -25,10 +39,8 @@ export async function searchApi(
2539) : Promise < ApiResponse < StringItem [ ] > > {
2640 const searchParams = new URLSearchParams ( )
2741 searchParams . set ( 'lang' , params . lang )
28- searchParams . set ( 'q' , params . q )
29- if ( params . sheet ) {
30- searchParams . set ( 'sheet' , params . sheet )
31- }
42+ processQuery ( searchParams , params . q )
43+
3244 if ( params . offset !== undefined ) {
3345 searchParams . set ( 'offset' , params . offset . toString ( ) )
3446 }
0 commit comments