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

バックドロップ対応

develop
sosuke.iwabuchi 2 лет назад
Родитель
Сommit
cb3f21aa2e
2 измененных файлов: 14 добавлений и 12 удалений
  1. +12
    -1
      src/hooks/useAPICall.ts
  2. +2
    -11
      src/pages/dashboard/receipt-issuing-order/hooks/useMailPostCompleteDialog.tsx

+ 12
- 1
src/hooks/useAPICall.ts Просмотреть файл

@@ -1,9 +1,10 @@
import { useCallback, useMemo, useState } from "react";
import { useCallback, useEffect, useMemo, useState } from "react";
import { APICommonResponse, apiRequest, ResultCode } from "api";
import { UseFormReturn } from "react-hook-form";
import { Dictionary } from "@types";
import { useSnackbar } from "notistack";
import usePage from "./usePage";
import useBackDrop from "./useBackDrop";

export const APIErrorType = {
NONE: "none",
@@ -23,6 +24,7 @@ export default function useAPICall<
form,
successMessage = false,
failedMessage = false,
backDrop = false,
}: {
apiMethod: (sendData: T) => Promise<U | null>;
onSuccess?: (res: U, sendData: T) => void;
@@ -30,6 +32,7 @@ export default function useAPICall<
form?: UseFormReturn<any>;
successMessage?: ((res: U) => string) | boolean;
failedMessage?: ((res: APICommonResponse | null) => string) | boolean;
backDrop?: boolean;
}) {
const [sending, setSending] = useState(false);
const [sendData, setSendData] = useState<T | null>(null);
@@ -43,6 +46,8 @@ export default function useAPICall<

const { enqueueSnackbar } = useSnackbar();

const { setShowBackDrop } = useBackDrop();

const clearErrors = () => {
setResult(null);
setErrors({});
@@ -164,6 +169,12 @@ export default function useAPICall<
return data;
};

useEffect(() => {
if (backDrop) {
setShowBackDrop(sending);
}
}, [sending]);

return {
callAPI,
sending,


+ 2
- 11
src/pages/dashboard/receipt-issuing-order/hooks/useMailPostCompleteDialog.tsx Просмотреть файл

@@ -45,8 +45,9 @@ export default function useMailPostCompleteDialog(
),
});

const { callAPI, sending } = useAPICall({
const { callAPI } = useAPICall({
apiMethod: completeMailPost,
backDrop: true,
onSuccess: () => {
success("登録しました");
setShow(false);
@@ -93,16 +94,6 @@ export default function useMailPostCompleteDialog(
</Dialog>
);

useEffect(() => {
setShowBackDrop(sending);
}, [sending]);

useEffect(() => {
console.log(now());
// console.log(formatDateStr(now()));
// form.setValue('date', formatDateStr(now())
}, []);

return {
// param
show,


Загрузка…
Отмена
Сохранить