feat(08-05-interaction-pattern-unification): 统一前端交互与反馈模式
这个提交包含在:
@@ -1,3 +1,4 @@
|
||||
import { resolveErrorMessage as resolveUserErrorMessage } from "../../lib/resolveErrorMessage";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useMutation } from "@tanstack/react-query";
|
||||
import {
|
||||
@@ -6,7 +7,6 @@ import {
|
||||
type UserImportApplyResult,
|
||||
type UserImportDryRunResult,
|
||||
} from "../../api/users";
|
||||
import { mapApiErrorMessage } from "../../api/errorMessages";
|
||||
import { isApiError } from "../../api/types";
|
||||
import { downloadBlob } from "../../lib/download";
|
||||
import { Button } from "../../components/ui/button";
|
||||
@@ -42,10 +42,7 @@ function toCsvCell(value: string) {
|
||||
}
|
||||
|
||||
function formatErrorMessage(error: unknown, fallback: string) {
|
||||
if (isApiError(error)) {
|
||||
return `${error.code}: ${mapApiErrorMessage(error.code, error.details, error.message)}`;
|
||||
}
|
||||
return error instanceof Error ? error.message : fallback;
|
||||
return resolveUserErrorMessage(error, fallback);
|
||||
}
|
||||
|
||||
function parsePreviewFromError(error: unknown, sourceFilename: string): UserImportDryRunResult | null {
|
||||
|
||||
在新工单中引用
屏蔽一个用户