J2RLNDEXTGAV4BB6ANIIR7XJLJBHSB4NFQWSBWHNAFB6DMLGS5RAC
// Build filter conditions
let whereConditions = sqlExpr`${file.clusterId} = ${clusterId} AND ${file.active} = true`;
// Add filters for solarNight if specified
if (solarNight === 'true') {
whereConditions = sqlExpr`${whereConditions} AND ${file.maybeSolarNight} = true`;
} else if (solarNight === 'false') {
whereConditions = sqlExpr`${whereConditions} AND (${file.maybeSolarNight} = false OR ${file.maybeSolarNight} IS NULL)`;
}
// Add filters for civilNight if specified
if (civilNight === 'true') {
whereConditions = sqlExpr`${whereConditions} AND ${file.maybeCivilNight} = true`;
} else if (civilNight === 'false') {
whereConditions = sqlExpr`${whereConditions} AND (${file.maybeCivilNight} = false OR ${file.maybeCivilNight} IS NULL)`;
}
// Fetch files for the selected cluster with pagination
const url = `/api/files?clusterId=${encodeURIComponent(clusterId)}&page=${currentPage}&pageSize=100`;
// Build URL with filters
let url = `/api/files?clusterId=${encodeURIComponent(clusterId)}&page=${currentPage}&pageSize=100`;
// Add night filters
switch (nightFilter) {
case 'solarNight':
url += '&solarNight=true';
break;
case 'solarDay':
url += '&solarNight=false';
break;
case 'civilNight':
url += '&civilNight=true';
break;
case 'civilDay':
url += '&civilNight=false';
break;
// 'none' doesn't add any filter parameters
}
{pagination && (
<div className="text-gray-600 text-sm">
{pagination.totalItems} files
<div className="flex items-center gap-4">
<div className="flex items-center">
<select
id="nightFilter"
value={nightFilter}
onChange={handleFilterChange}
className="rounded-md border border-gray-300 bg-white py-1 px-3 text-sm shadow-sm focus:border-primary focus:outline-none focus:ring-1 focus:ring-primary"
>
<option value="none">No filter</option>
<option value="solarNight">Solar night</option>
<option value="solarDay">Solar day</option>
<option value="civilNight">Civil night</option>
<option value="civilDay">Civil day</option>
</select>