({ searchQuery, onSearchQueryChange }: LogsFilterPanelProps)
| 1177 | } |
| 1178 | |
| 1179 | function LogsFilterPanel({ searchQuery, onSearchQueryChange }: LogsFilterPanelProps) { |
| 1180 | const params = useParams() |
| 1181 | const workspaceId = params.workspaceId as string |
| 1182 | |
| 1183 | const { |
| 1184 | level, |
| 1185 | setLevel, |
| 1186 | workflowIds, |
| 1187 | setWorkflowIds, |
| 1188 | folderIds, |
| 1189 | setFolderIds, |
| 1190 | triggers, |
| 1191 | setTriggers, |
| 1192 | timeRange, |
| 1193 | setTimeRange, |
| 1194 | startDate, |
| 1195 | endDate, |
| 1196 | setDateRange, |
| 1197 | clearDateRange, |
| 1198 | resetFilters, |
| 1199 | } = useLogFilters() |
| 1200 | |
| 1201 | const [datePickerOpen, setDatePickerOpen] = useState(false) |
| 1202 | const previousTimeRangeRef = useRef(timeRange) |
| 1203 | const dateRangeAppliedRef = useRef(false) |
| 1204 | const { data: folders = {} } = useFolderMap(workspaceId) |
| 1205 | const { data: allWorkflowList = [] } = useWorkflows(workspaceId) |
| 1206 | |
| 1207 | const workflows = allWorkflowList.map((w) => ({ id: w.id, name: w.name })) |
| 1208 | const folderList = Object.values(folders).filter((f) => f.workspaceId === workspaceId) |
| 1209 | |
| 1210 | const selectedStatuses = level === 'all' || !level ? [] : level.split(',').filter(Boolean) |
| 1211 | |
| 1212 | const statusOptions: ComboboxOption[] = useMemo( |
| 1213 | () => |
| 1214 | (Object.keys(STATUS_CONFIG) as LogStatus[]) |
| 1215 | .filter((status) => STATUS_CONFIG[status].filterable) |
| 1216 | .map((status) => ({ |
| 1217 | value: status, |
| 1218 | label: STATUS_CONFIG[status].label, |
| 1219 | icon: getColorIcon(STATUS_CONFIG[status].color), |
| 1220 | })), |
| 1221 | [] |
| 1222 | ) |
| 1223 | |
| 1224 | const handleStatusChange = (values: string[]) => { |
| 1225 | setLevel(values.length === 0 ? 'all' : values.join(',')) |
| 1226 | } |
| 1227 | |
| 1228 | const statusDisplayLabel = |
| 1229 | selectedStatuses.length === 0 |
| 1230 | ? 'Status' |
| 1231 | : selectedStatuses.length === 1 |
| 1232 | ? statusOptions.find((s) => s.value === selectedStatuses[0])?.label || '1 selected' |
| 1233 | : `${selectedStatuses.length} selected` |
| 1234 | |
| 1235 | const selectedStatusColor = |
| 1236 | selectedStatuses.length === 1 |
nothing calls this directly
no test coverage detected