backup: Phase 6 search and export fixes before cleanup

- Added search button to main page header with Ctrl+K listener
- Implemented SearchModal component rendering
- Fixed SearchModal to use axiosInstance with correct backend URL (8916)
- Fixed token key from 'auth_token' to 'inventory_token'
- Verified export endpoints working correctly
- All Phase 6 UAT fixes in place

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-04-23 11:22:16 +03:00
parent dc6970700b
commit 0e356e6c89
6 changed files with 68 additions and 58 deletions

View File

@@ -3,6 +3,7 @@
import { useState, useEffect, useRef, useCallback } from 'react';
import { X, Search } from 'lucide-react';
import { Item } from '@/lib/db';
import { axiosInstance } from '@/lib/api';
interface SearchModalProps {
isOpen: boolean;
@@ -41,22 +42,11 @@ export default function SearchModal({
setError(null);
try {
const backendUrl = process.env.NEXT_PUBLIC_BACKEND_URL || 'http://localhost:8906';
const token = localStorage.getItem('auth_token');
const response = await fetch(`${backendUrl}/items/search?q=${encodeURIComponent(searchQuery)}`, {
method: 'GET',
headers: {
'Content-Type': 'application/json',
'Authorization': `Bearer ${token}`
},
const response = await axiosInstance.get('/items/search', {
params: { q: searchQuery }
});
if (!response.ok) {
throw new Error('Search failed');
}
const data = await response.json();
setResults(data || []);
setResults(response.data || []);
} catch (err) {
const errorMsg = err instanceof Error ? err.message : 'Search failed';
setError(errorMsg);