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

Change the method of obtaining auditLogAvailableActionsData

Shun Miyazawa 3 лет назад
Родитель
Сommit
1325ca20eb

+ 1 - 1
packages/app/src/components/Admin/AuditLog/SelectActionDropdown.tsx

@@ -103,7 +103,7 @@ export const SelectActionDropdown: FC<Props> = (props: Props) => {
                       className="form-check-input"
                       className="form-check-input"
                       id={`checkbox${action}`}
                       id={`checkbox${action}`}
                       onChange={() => { actionCheckboxChangedHandler(action) }}
                       onChange={() => { actionCheckboxChangedHandler(action) }}
-                      checked={actionMap.get(action)}
+                      checked={actionMap.get(action) || false}
                     />
                     />
                     <label
                     <label
                       className="form-check-label"
                       className="form-check-label"

+ 15 - 10
packages/app/src/components/Admin/AuditLogManagement.tsx

@@ -1,5 +1,5 @@
 import React, {
 import React, {
-  FC, useState, useCallback, useRef,
+  FC, useState, useCallback, useEffect, useRef,
 } from 'react';
 } from 'react';
 
 
 import { format } from 'date-fns';
 import { format } from 'date-fns';
@@ -34,9 +34,6 @@ export const AuditLogManagement: FC = () => {
 
 
   const typeaheadRef = useRef<IClearable>(null);
   const typeaheadRef = useRef<IClearable>(null);
 
 
-  const { data: auditLogAvailableActionsData } = useAuditLogAvailableActions();
-  const auditLogAvailableActions = auditLogAvailableActionsData != null ? auditLogAvailableActionsData : [];
-
   /*
   /*
    * State
    * State
    */
    */
@@ -46,9 +43,7 @@ export const AuditLogManagement: FC = () => {
   const [startDate, setStartDate] = useState<Date | null>(null);
   const [startDate, setStartDate] = useState<Date | null>(null);
   const [endDate, setEndDate] = useState<Date | null>(null);
   const [endDate, setEndDate] = useState<Date | null>(null);
   const [selectedUsernames, setSelectedUsernames] = useState<string[]>([]);
   const [selectedUsernames, setSelectedUsernames] = useState<string[]>([]);
-  const [actionMap, setActionMap] = useState(
-    new Map<SupportedActionType, boolean>(auditLogAvailableActions.map(action => [action, true])),
-  );
+  const [actionMap, setActionMap] = useState(new Map<SupportedActionType, boolean>([]));
 
 
   /*
   /*
    * Fetch
    * Fetch
@@ -68,6 +63,13 @@ export const AuditLogManagement: FC = () => {
 
 
   const { data: auditLogEnabled } = useAuditLogEnabled();
   const { data: auditLogEnabled } = useAuditLogEnabled();
 
 
+  const { data: auditLogAvailableActionsData } = useAuditLogAvailableActions();
+  useEffect(() => {
+    if (auditLogAvailableActionsData != null) {
+      setActionMap(new Map<SupportedActionType, boolean>(auditLogAvailableActionsData.map(action => [action, true])));
+    }
+  }, [auditLogAvailableActionsData]);
+
   /*
   /*
    * Functions
    * Functions
    */
    */
@@ -104,8 +106,11 @@ export const AuditLogManagement: FC = () => {
     setEndDate(null);
     setEndDate(null);
     typeaheadRef.current?.clear();
     typeaheadRef.current?.clear();
     setSelectedUsernames([]);
     setSelectedUsernames([]);
-    setActionMap(new Map<SupportedActionType, boolean>(auditLogAvailableActions.map(action => [action, true])));
-  }, [setActivePage, setStartDate, setEndDate, setSelectedUsernames, setActionMap, auditLogAvailableActions]);
+
+    if (auditLogAvailableActionsData != null) {
+      setActionMap(new Map<SupportedActionType, boolean>(auditLogAvailableActionsData.map(action => [action, true])));
+    }
+  }, [setActivePage, setStartDate, setEndDate, setSelectedUsernames, setActionMap, auditLogAvailableActionsData]);
 
 
   const reloadButtonPushedHandler = useCallback(() => {
   const reloadButtonPushedHandler = useCallback(() => {
     setActivePage(1);
     setActivePage(1);
@@ -153,7 +158,7 @@ export const AuditLogManagement: FC = () => {
 
 
             <SelectActionDropdown
             <SelectActionDropdown
               actionMap={actionMap}
               actionMap={actionMap}
-              availableActions={auditLogAvailableActions}
+              availableActions={auditLogAvailableActionsData || []}
               onChangeAction={actionCheckboxChangedHandler}
               onChangeAction={actionCheckboxChangedHandler}
               onChangeMultipleAction={multipleActionCheckboxChangedHandler}
               onChangeMultipleAction={multipleActionCheckboxChangedHandler}
             />
             />