Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | 1x 8x 3x 3x 3x 3x 3x 3x 3x 8x 8x 3x 3x 8x | import { TMerchantDocument } from "@components/Merchants/MerchantPreview/data.types";
import { useAppDispatch } from "@redux/hooks";
import { updatePermissions } from "@redux/slices/app";
import { customInstance } from "@services/api";
import { QueryKey, useQuery } from "react-query";
type ArgProps = {
id: number;
filter: string;
showConversationFiles?: boolean;
isMerchantPortal?: boolean;
};
export const useListBusinessDetailsDocuments = ({
id,
filter,
queryKey,
isMerchantPortal,
showConversationFiles = true,
}: ArgProps & { queryKey: QueryKey }) => {
const getMerchantDocuments = ({ filter, id }: ArgProps) => {
const filters: string[] = [];
Iif (filter) {
filters.push(`attTypeName:"${filter}"`);
}
Iif (isMerchantPortal) {
filters.push(`attTypeName:!"dispute_evidence"`);
}
Iif (!showConversationFiles)
filters.push(`attTypeName:!"conversation_message"`);
filters.push(`isUploaded:true`);
const filterString = filters.map((f) => `${f}`).join("%3B");
return customInstance({
url: `/accounts/${id}/files?filter=${filterString}&sort=-id`,
method: "GET",
});
};
const dispatch = useAppDispatch();
const { data, error, isLoading } = useQuery<TMerchantDocument[]>(
[queryKey, id, filter],
async () => {
const documents = await getMerchantDocuments({ id, filter });
return documents?.data || [];
},
{
refetchOnWindowFocus: false,
retry: 1,
onError(err: any) {
if (err.not_authorized) {
dispatch(
updatePermissions({
"list-business-details-documents": true,
}),
);
}
},
},
);
return { error, isLoading, data: data || [] };
};
|