|
|
@@ -32,6 +32,7 @@ import {
|
|
|
notifyError,
|
|
|
notifyApiError,
|
|
|
} from "@/lib/frontend/ui/toast";
|
|
|
+import { writeTextToClipboard } from "@/lib/frontend/ui/clipboard";
|
|
|
|
|
|
function useCopySuccessTimeout(isActive, onReset) {
|
|
|
React.useEffect(() => {
|
|
|
@@ -160,23 +161,17 @@ export default function UserTemporaryPasswordField({
|
|
|
|
|
|
const handleCopyPassword = React.useCallback(async () => {
|
|
|
if (!hasTempPassword || isDisabled) return;
|
|
|
- if (!navigator?.clipboard?.writeText) {
|
|
|
- notifyError({
|
|
|
- title: "Kopieren nicht verfügbar",
|
|
|
- description: "Die Zwischenablage ist in diesem Browser nicht verfügbar.",
|
|
|
- });
|
|
|
- return;
|
|
|
- }
|
|
|
|
|
|
- try {
|
|
|
- await navigator.clipboard.writeText(temporaryPassword);
|
|
|
+ const result = await writeTextToClipboard(temporaryPassword);
|
|
|
+ if (result.ok) {
|
|
|
setCopySuccess(true);
|
|
|
- } catch {
|
|
|
- notifyError({
|
|
|
- title: "Passwort konnte nicht kopiert werden.",
|
|
|
- description: "Bitte erneut versuchen.",
|
|
|
- });
|
|
|
+ return;
|
|
|
}
|
|
|
+
|
|
|
+ notifyError({
|
|
|
+ title: "Kopieren nicht verfügbar",
|
|
|
+ description: "Die Zwischenablage ist in diesem Browser nicht verfügbar.",
|
|
|
+ });
|
|
|
}, [hasTempPassword, isDisabled, temporaryPassword]);
|
|
|
|
|
|
const displayValue = getDisplayedTemporaryPassword({
|