feat(md-deck): Add fallback copy dialog for clipboard failure
This commit is contained in:
@@ -145,7 +145,7 @@ export interface DeckActions {
|
||||
clearError: () => void;
|
||||
|
||||
generateCode: (backLayersStr?: string) => string;
|
||||
copyCode: (backLayersStr?: string) => Promise<void>;
|
||||
copyCode: (fallback?: (code: string) => void) => Promise<void>;
|
||||
|
||||
setExporting: (exporting: boolean) => void;
|
||||
exportDeck: () => void;
|
||||
@@ -514,14 +514,18 @@ export function createDeckStore(initialSrc: string = ""): DeckStore {
|
||||
return parts.join("");
|
||||
};
|
||||
|
||||
const copyCode = async (backLayersStr?: string) => {
|
||||
const code = generateCode(backLayersStr);
|
||||
const copyCode = async (fallback?: (code: string) => void) => {
|
||||
const code = generateCode();
|
||||
try {
|
||||
await navigator.clipboard.writeText(code);
|
||||
alert("已复制到剪贴板!");
|
||||
} catch (err) {
|
||||
console.error("复制失败:", err);
|
||||
alert("复制失败,请手动复制");
|
||||
if (fallback) {
|
||||
fallback(code);
|
||||
} else {
|
||||
alert("复制失败,请手动复制");
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user