Просмотр исходного кода

if start and end are the same, both states are null

Shun Miyazawa 3 лет назад
Родитель
Сommit
e5fd8f66e0
1 измененных файлов с 12 добавлено и 3 удалено
  1. 12 3
      packages/app/src/components/Admin/AuditLogManagement.tsx

+ 12 - 3
packages/app/src/components/Admin/AuditLogManagement.tsx

@@ -32,7 +32,7 @@ export const AuditLogManagement: FC = () => {
    */
    */
   const [activePage, setActivePage] = useState<number>(1);
   const [activePage, setActivePage] = useState<number>(1);
   const offset = (activePage - 1) * PAGING_LIMIT;
   const offset = (activePage - 1) * PAGING_LIMIT;
-  const [startDate, setStartDate] = useState<Date | null>(new Date());
+  const [startDate, setStartDate] = useState<Date | null>(null);
   const [endDate, setEndDate] = useState<Date | null>(null);
   const [endDate, setEndDate] = useState<Date | null>(null);
   const [actionMap, setActionMap] = useState(
   const [actionMap, setActionMap] = useState(
     new Map<SupportedActionType, boolean>(AllSupportedActionType.map(action => [action, true])),
     new Map<SupportedActionType, boolean>(AllSupportedActionType.map(action => [action, true])),
@@ -58,9 +58,18 @@ export const AuditLogManagement: FC = () => {
   }, []);
   }, []);
 
 
   const selectDateChangeHandler = useCallback((dateList: Date[] | null[]) => {
   const selectDateChangeHandler = useCallback((dateList: Date[] | null[]) => {
+    setActivePage(1);
     const [start, end] = dateList;
     const [start, end] = dateList;
-    setStartDate(start);
-    setEndDate(end);
+
+    const isSameTime = (start != null && end != null) && (start.getTime() === end.getTime());
+    if (isSameTime) {
+      setStartDate(null);
+      setEndDate(null);
+    }
+    else {
+      setStartDate(start);
+      setEndDate(end);
+    }
   }, []);
   }, []);
 
 
   const selectActionCheckboxChangedHandler = useCallback((action: SupportedActionType) => {
   const selectActionCheckboxChangedHandler = useCallback((action: SupportedActionType) => {