mirror of
https://github.com/fosrl/pangolin.git
synced 2026-08-14 16:30:15 +02:00
@@ -149,6 +149,23 @@ export default function GeneralPage() {
|
|||||||
setCurrentPage(newPage);
|
setCurrentPage(newPage);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefresh = () => {
|
||||||
|
// When the end date has no explicit time, it represents an
|
||||||
|
// open-ended "up to now" upper bound. Since dateRange is only
|
||||||
|
// recomputed on user interaction, that upper bound otherwise stays
|
||||||
|
// frozen at whenever the page first loaded, so refreshing would
|
||||||
|
// never surface logs created since then. Bump it to the current
|
||||||
|
// time so the query key changes and refetches the latest window.
|
||||||
|
if (dateRange.endDate?.date && !dateRange.endDate.time) {
|
||||||
|
setDateRange((prev) => ({
|
||||||
|
...prev,
|
||||||
|
endDate: { date: new Date() }
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
refetch();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handlePageSizeChange = (newPageSize: number) => {
|
const handlePageSizeChange = (newPageSize: number) => {
|
||||||
setPageSize(newPageSize);
|
setPageSize(newPageSize);
|
||||||
setCurrentPage(0);
|
setCurrentPage(0);
|
||||||
@@ -492,7 +509,7 @@ export default function GeneralPage() {
|
|||||||
columns={columns}
|
columns={columns}
|
||||||
data={rows}
|
data={rows}
|
||||||
title={t("accessLogs")}
|
title={t("accessLogs")}
|
||||||
onRefresh={() => refetch()}
|
onRefresh={handleRefresh}
|
||||||
isRefreshing={isFetching}
|
isRefreshing={isFetching}
|
||||||
onExport={() => startTransition(exportData)}
|
onExport={() => startTransition(exportData)}
|
||||||
isExporting={isExporting}
|
isExporting={isExporting}
|
||||||
|
|||||||
@@ -135,6 +135,23 @@ export default function GeneralPage() {
|
|||||||
setCurrentPage(newPage);
|
setCurrentPage(newPage);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefresh = () => {
|
||||||
|
// When the end date has no explicit time, it represents an
|
||||||
|
// open-ended "up to now" upper bound. Since dateRange is only
|
||||||
|
// recomputed on user interaction, that upper bound otherwise stays
|
||||||
|
// frozen at whenever the page first loaded, so refreshing would
|
||||||
|
// never surface logs created since then. Bump it to the current
|
||||||
|
// time so the query key changes and refetches the latest window.
|
||||||
|
if (dateRange.endDate?.date && !dateRange.endDate.time) {
|
||||||
|
setDateRange((prev) => ({
|
||||||
|
...prev,
|
||||||
|
endDate: { date: new Date() }
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
refetch();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handlePageSizeChange = (newPageSize: number) => {
|
const handlePageSizeChange = (newPageSize: number) => {
|
||||||
setPageSize(newPageSize);
|
setPageSize(newPageSize);
|
||||||
setCurrentPage(0);
|
setCurrentPage(0);
|
||||||
@@ -340,7 +357,7 @@ export default function GeneralPage() {
|
|||||||
title={t("actionLogs")}
|
title={t("actionLogs")}
|
||||||
searchPlaceholder={t("searchLogs")}
|
searchPlaceholder={t("searchLogs")}
|
||||||
searchColumn="action"
|
searchColumn="action"
|
||||||
onRefresh={() => refetch()}
|
onRefresh={handleRefresh}
|
||||||
isRefreshing={isFetching}
|
isRefreshing={isFetching}
|
||||||
onExport={() => startTransition(exportData)}
|
onExport={() => startTransition(exportData)}
|
||||||
isExporting={isExporting}
|
isExporting={isExporting}
|
||||||
|
|||||||
@@ -158,6 +158,23 @@ export default function AiSessionLogsPage() {
|
|||||||
setCurrentPage(newPage);
|
setCurrentPage(newPage);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefresh = () => {
|
||||||
|
// When the end date has no explicit time, it represents an
|
||||||
|
// open-ended "up to now" upper bound. Since dateRange is only
|
||||||
|
// recomputed on user interaction, that upper bound otherwise stays
|
||||||
|
// frozen at whenever the page first loaded, so refreshing would
|
||||||
|
// never surface logs created since then. Bump it to the current
|
||||||
|
// time so the query key changes and refetches the latest window.
|
||||||
|
if (dateRange.endDate?.date && !dateRange.endDate.time) {
|
||||||
|
setDateRange((prev) => ({
|
||||||
|
...prev,
|
||||||
|
endDate: { date: new Date() }
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
refetch();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handlePageSizeChange = (newPageSize: number) => {
|
const handlePageSizeChange = (newPageSize: number) => {
|
||||||
setPageSize(newPageSize);
|
setPageSize(newPageSize);
|
||||||
setCurrentPage(0);
|
setCurrentPage(0);
|
||||||
@@ -617,7 +634,7 @@ export default function AiSessionLogsPage() {
|
|||||||
title={t("aiSessionLogs")}
|
title={t("aiSessionLogs")}
|
||||||
searchPlaceholder={t("searchLogs")}
|
searchPlaceholder={t("searchLogs")}
|
||||||
searchColumn="providerName"
|
searchColumn="providerName"
|
||||||
onRefresh={() => refetch()}
|
onRefresh={handleRefresh}
|
||||||
isRefreshing={isFetching}
|
isRefreshing={isFetching}
|
||||||
onExport={() => startTransition(exportData)}
|
onExport={() => startTransition(exportData)}
|
||||||
isExporting={isExporting}
|
isExporting={isExporting}
|
||||||
|
|||||||
@@ -170,6 +170,23 @@ export default function ConnectionLogsPage() {
|
|||||||
setCurrentPage(newPage);
|
setCurrentPage(newPage);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefresh = () => {
|
||||||
|
// When the end date has no explicit time, it represents an
|
||||||
|
// open-ended "up to now" upper bound. Since dateRange is only
|
||||||
|
// recomputed on user interaction, that upper bound otherwise stays
|
||||||
|
// frozen at whenever the page first loaded, so refreshing would
|
||||||
|
// never surface logs created since then. Bump it to the current
|
||||||
|
// time so the query key changes and refetches the latest window.
|
||||||
|
if (dateRange.endDate?.date && !dateRange.endDate.time) {
|
||||||
|
setDateRange((prev) => ({
|
||||||
|
...prev,
|
||||||
|
endDate: { date: new Date() }
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
refetch();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handlePageSizeChange = (newPageSize: number) => {
|
const handlePageSizeChange = (newPageSize: number) => {
|
||||||
setPageSize(newPageSize);
|
setPageSize(newPageSize);
|
||||||
setCurrentPage(0);
|
setCurrentPage(0);
|
||||||
@@ -561,7 +578,7 @@ export default function ConnectionLogsPage() {
|
|||||||
title={t("connectionLogs")}
|
title={t("connectionLogs")}
|
||||||
searchPlaceholder={t("searchLogs")}
|
searchPlaceholder={t("searchLogs")}
|
||||||
searchColumn="protocol"
|
searchColumn="protocol"
|
||||||
onRefresh={() => refetch()}
|
onRefresh={handleRefresh}
|
||||||
isRefreshing={isFetching}
|
isRefreshing={isFetching}
|
||||||
onExport={() => startTransition(exportData)}
|
onExport={() => startTransition(exportData)}
|
||||||
isExporting={isExporting}
|
isExporting={isExporting}
|
||||||
|
|||||||
@@ -151,6 +151,23 @@ export default function GeneralPage() {
|
|||||||
setCurrentPage(newPage);
|
setCurrentPage(newPage);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const handleRefresh = () => {
|
||||||
|
// When the end date has no explicit time, it represents an
|
||||||
|
// open-ended "up to now" upper bound. Since dateRange is only
|
||||||
|
// recomputed on user interaction, that upper bound otherwise stays
|
||||||
|
// frozen at whenever the page first loaded, so refreshing would
|
||||||
|
// never surface logs created since then. Bump it to the current
|
||||||
|
// time so the query key changes and refetches the latest window.
|
||||||
|
if (dateRange.endDate?.date && !dateRange.endDate.time) {
|
||||||
|
setDateRange((prev) => ({
|
||||||
|
...prev,
|
||||||
|
endDate: { date: new Date() }
|
||||||
|
}));
|
||||||
|
} else {
|
||||||
|
refetch();
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
const handlePageSizeChange = (newPageSize: number) => {
|
const handlePageSizeChange = (newPageSize: number) => {
|
||||||
setPageSize(newPageSize);
|
setPageSize(newPageSize);
|
||||||
setCurrentPage(0);
|
setCurrentPage(0);
|
||||||
@@ -663,7 +680,7 @@ export default function GeneralPage() {
|
|||||||
title={t("requestLogs")}
|
title={t("requestLogs")}
|
||||||
searchPlaceholder={t("searchLogs")}
|
searchPlaceholder={t("searchLogs")}
|
||||||
searchColumn="host"
|
searchColumn="host"
|
||||||
onRefresh={() => refetch()}
|
onRefresh={handleRefresh}
|
||||||
isRefreshing={isFetching}
|
isRefreshing={isFetching}
|
||||||
onExport={() => startTransition(exportData)}
|
onExport={() => startTransition(exportData)}
|
||||||
isExporting={isExporting}
|
isExporting={isExporting}
|
||||||
|
|||||||
@@ -1114,12 +1114,6 @@ export const logQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1145,12 +1139,6 @@ export const logQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1176,12 +1164,6 @@ export const logQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1207,12 +1189,6 @@ export const logQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1238,12 +1214,6 @@ export const logQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1269,12 +1239,6 @@ export const logQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
@@ -1327,12 +1291,6 @@ export const aiUsageAnalyticsQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1358,12 +1316,6 @@ export const aiUsageAnalyticsQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1389,12 +1341,6 @@ export const aiUsageAnalyticsQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1420,12 +1366,6 @@ export const aiUsageAnalyticsQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}),
|
}),
|
||||||
|
|
||||||
@@ -1451,12 +1391,6 @@ export const aiUsageAnalyticsQueries = {
|
|||||||
signal
|
signal
|
||||||
});
|
});
|
||||||
return res.data.data;
|
return res.data.data;
|
||||||
},
|
|
||||||
refetchInterval: (query) => {
|
|
||||||
if (query.state.data) {
|
|
||||||
return durationToMs(30, "seconds");
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user