56c06dfa98
- Add mock API classes for camera search and stream discovery - Add mock mode toggle via ?mock=true URL parameter - Add visual mock mode indicator badge - Add dev-server.sh script for local development - Mock data includes 10 diverse streams (FFMPEG, ONVIF, JPEG, MJPEG, HLS, HTTP_VIDEO)
50 lines
1.9 KiB
JavaScript
50 lines
1.9 KiB
JavaScript
// Mock implementation of CameraSearchAPI for development
|
|
export class MockCameraAPI {
|
|
constructor() {
|
|
this.mockCameras = [
|
|
{ brand: "Hikvision", model: "DS-2CD2042WD-I" },
|
|
{ brand: "Hikvision", model: "DS-2CD2142FWD-I" },
|
|
{ brand: "Hikvision", model: "DS-2CD2032-I" },
|
|
{ brand: "Hikvision", model: "DS-2CD2385G1-I" },
|
|
{ brand: "Dahua", model: "IPC-HFW4431R-Z" },
|
|
{ brand: "Dahua", model: "IPC-HDBW4433R-ZS" },
|
|
{ brand: "Dahua", model: "DH-IPC-HFW2431S-S-S2" },
|
|
{ brand: "Dahua", model: "IPC-HDW2531T-AS-S2" },
|
|
{ brand: "Axis", model: "M3046-V" },
|
|
{ brand: "Axis", model: "P3245-LVE" },
|
|
{ brand: "Axis", model: "M5525-E" },
|
|
{ brand: "Uniview", model: "IPC322SR3-DVS28-F" },
|
|
{ brand: "Uniview", model: "IPC2124SR3-DPF40" },
|
|
{ brand: "Reolink", model: "RLC-410" },
|
|
{ brand: "Reolink", model: "RLC-520A" },
|
|
{ brand: "Reolink", model: "RLC-810A" },
|
|
{ brand: "TP-Link", model: "VIGI C300HP-4" },
|
|
{ brand: "TP-Link", model: "VIGI C540V" },
|
|
{ brand: "Amcrest", model: "IP8M-2496EW" },
|
|
{ brand: "Amcrest", model: "IP4M-1041B" },
|
|
{ brand: "Foscam", model: "FI9900P" },
|
|
{ brand: "Foscam", model: "R5" },
|
|
];
|
|
}
|
|
|
|
async search(query, limit = 10) {
|
|
// Simulate network delay
|
|
await this.delay(150);
|
|
|
|
const lowerQuery = query.toLowerCase();
|
|
const filtered = this.mockCameras.filter(camera => {
|
|
const searchText = `${camera.brand} ${camera.model}`.toLowerCase();
|
|
return searchText.includes(lowerQuery);
|
|
});
|
|
|
|
return {
|
|
cameras: filtered.slice(0, limit),
|
|
total: filtered.length
|
|
};
|
|
}
|
|
|
|
delay(ms) {
|
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
}
|
|
}
|