Skip to content

Commit bfec00c

Browse files
Merge pull request #345 from microsoft/dev
fix: Vite config version is updated and Upload button functionality
2 parents 964a0a6 + 7048337 commit bfec00c

File tree

7 files changed

+1451
-1233
lines changed

7 files changed

+1451
-1233
lines changed

App/frontend-app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@
8888
"ts-node": "^10.9.2",
8989
"tslib": "^2.6.2",
9090
"typescript": "^5.8.2",
91-
"vite": "^6.2.0"
91+
"vite": "^6.2.6"
9292
},
9393
"volta": {
9494
"node": "18.16.0",

App/frontend-app/src/components/documentViewer/documentViewer.tsx

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ export function DocDialog(
7575
const [iframeKey, setIframeKey] = useState(0);
7676
const [isExpanded, setIsExpanded] = useState(false);
7777
const [clearedChatFlag, setClearChatFlag] = useState(clearChatFlag);
78+
const [iframeSrc, setIframeSrc] = useState<string | undefined>(undefined);
7879
// const [aiKnowledgeMetadata, setAIKnowledgeMetadata] = useState<Document | null>(null);
7980

8081

@@ -90,6 +91,24 @@ export function DocDialog(
9091
setUrlWithSasToken(undefined);
9192
}
9293
}, [metadata]); // Only run when metadata changes
94+
95+
useEffect(() => {
96+
if (metadata && metadata.fileName.endsWith(".txt")) {
97+
fetch(metadata.document_url)
98+
.then((response) => response.text())
99+
.then((textContent) => {
100+
const blob = new Blob([textContent], { type: "text/plain" });
101+
const objectURL = URL.createObjectURL(blob);
102+
setIframeSrc(objectURL);
103+
104+
// Cleanup the object URL when component unmounts or metadata changes
105+
return () => URL.revokeObjectURL(objectURL);
106+
})
107+
.catch((error) => console.error("Error fetching text file:", error));
108+
} else {
109+
setIframeSrc(metadata?.document_url);
110+
}
111+
}, [metadata]);
93112

94113

95114
const downloadFile = () => {
@@ -236,7 +255,7 @@ export function DocDialog(
236255
<IFrameComponent
237256
className="h-[100%]"
238257
metadata={metadata}
239-
urlWithSasToken={urlWithSasToken}
258+
urlWithSasToken={iframeSrc}
240259
iframeKey={iframeKey}
241260
/>
242261
</div>

App/frontend-app/src/components/sidecarCopilot/sidecar.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ export function SidecarCopilot({
164164
onSourceChange={handleSourceChange}
165165
disabled={disableSources}
166166
selectedDocuments={selectedDocuments}
167+
isSticky={false}
167168
/>
168169

169170
<CopilotProvider>

App/frontend-app/src/pages/home/home.tsx

Lines changed: 23 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ export function Home({ isSearchResultsPage }: HomeProps) {
5454
const navigate = useNavigate();
5555
const location = useLocation();
5656
const [reset, setReset] = useState(false); // State to trigger reset
57-
57+
const [clearSearchBox, setClearSearchBox] = useState(false);
5858
const [clearAllTriggered, setClearAllTriggered] = useState(false);
5959
const [clearFilters, setClearFilters] = useState(false);
6060
const [resetSearchBox, setResetSearchBox] = useState(false);
@@ -141,15 +141,16 @@ export function Home({ isSearchResultsPage }: HomeProps) {
141141

142142
useEffect(() => {
143143
if (searchBoxRef.current) {
144-
if (resetSearchBox) {
145-
144+
if (resetSearchBox && clearSearchBox) {
146145
searchBoxRef.current.reset();
147146
setResetSearchBox(false); // Reset the trigger
148147
} else {
149-
const urlQuery = searchParams.get("q");
150-
if (urlQuery) {
151-
const decodedQuery = decodeURIComponent(urlQuery);
152-
searchBoxRef.current.setValue(decodedQuery);
148+
if(!clearSearchBox){
149+
const urlQuery = searchParams.get("q");
150+
if (urlQuery) {
151+
const decodedQuery = decodeURIComponent(urlQuery);
152+
searchBoxRef.current.setValue(decodedQuery);
153+
}
153154
}
154155
}
155156
}
@@ -165,15 +166,24 @@ export function Home({ isSearchResultsPage }: HomeProps) {
165166
setSearchParams({}); // Clear all search params when there's no query
166167
}
167168
} else {
168-
const q = searchParams.get("q");
169-
if (q) {
170-
setQuery(decodeURIComponent(q));
169+
if(!clearSearchBox){
170+
const q = searchParams.get("q");
171+
if (q) {
172+
setQuery(decodeURIComponent(q));
173+
}
171174
}
172175
}
173176
}, [isSearchResultsPage, query, searchParams, setSearchParams]);
174177

178+
useEffect(() => {
179+
const q = searchParams.get("q");
180+
if(!q){
181+
setClearSearchBox(false)
182+
}
183+
},[searchParams])
184+
175185
function onSearchChanged(searchValue: string): void {
176-
if (searchValue) {
186+
if (searchValue) {
177187
setTextValue(searchValue);
178188
}
179189
if (searchValue) {
@@ -189,7 +199,7 @@ export function Home({ isSearchResultsPage }: HomeProps) {
189199
}
190200
} else {
191201
setSearchResultDocuments([]);
192-
setSearchParams("");
202+
setSearchParams({});
193203
setQuery(searchValue);
194204
}
195205
}
@@ -462,6 +472,7 @@ export function Home({ isSearchResultsPage }: HomeProps) {
462472
setSelectedDocuments([]);
463473
setClearAllTriggered(true); // Set this flag to true
464474
setClearFilters(true);
475+
setClearSearchBox(true);
465476
// Call loadDataAsync after clearing
466477
loadDataAsync();
467478
}, [/* dependencies */]);

App/frontend-app/src/types/searchRequest.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ export interface SearchRequest {
33
searchFacets: SearchFacet[];
44
currentPage: number;
55
incomingFilter: string;
6-
filters?: string[];
6+
filters?: { [key: string]: string };
77
parameters: {
88
scoringProfile: string;
99
inOrderBy: string[];

0 commit comments

Comments
 (0)