fix(admin): clear media upload input safely
This commit is contained in:
parent
ec30f69c72
commit
d9da86dd46
1 changed files with 4 additions and 3 deletions
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
/* eslint-disable @next/next/no-img-element */
|
/* eslint-disable @next/next/no-img-element */
|
||||||
|
|
||||||
import { useEffect, useMemo, useState, type ChangeEvent } from "react";
|
import { useEffect, useMemo, useRef, useState, type ChangeEvent } from "react";
|
||||||
import type { MediaFile } from "@/lib/admin/media";
|
import type { MediaFile } from "@/lib/admin/media";
|
||||||
|
|
||||||
type SortKey = "date" | "name" | "size";
|
type SortKey = "date" | "name" | "size";
|
||||||
|
|
@ -28,6 +28,7 @@ function sortFiles(files: MediaFile[], sort: SortKey) {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function MediaManager({ initialFiles }: { initialFiles: MediaFile[] }) {
|
export default function MediaManager({ initialFiles }: { initialFiles: MediaFile[] }) {
|
||||||
|
const fileInputRef = useRef<HTMLInputElement>(null);
|
||||||
const [files, setFiles] = useState(initialFiles);
|
const [files, setFiles] = useState(initialFiles);
|
||||||
const [filter, setFilter] = useState<FilterKey>("all");
|
const [filter, setFilter] = useState<FilterKey>("all");
|
||||||
const [sort, setSort] = useState<SortKey>("date");
|
const [sort, setSort] = useState<SortKey>("date");
|
||||||
|
|
@ -78,7 +79,7 @@ export default function MediaManager({ initialFiles }: { initialFiles: MediaFile
|
||||||
if (!response.ok) throw new Error(result.message ?? "Upload fehlgeschlagen.");
|
if (!response.ok) throw new Error(result.message ?? "Upload fehlgeschlagen.");
|
||||||
if (result.files) setFiles(result.files);
|
if (result.files) setFiles(result.files);
|
||||||
setToast(result.message ?? "Datei erfolgreich hochgeladen.");
|
setToast(result.message ?? "Datei erfolgreich hochgeladen.");
|
||||||
event.currentTarget.value = "";
|
if (fileInputRef.current) fileInputRef.current.value = "";
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
setError(err instanceof Error ? err.message : "Upload fehlgeschlagen.");
|
setError(err instanceof Error ? err.message : "Upload fehlgeschlagen.");
|
||||||
} finally {
|
} finally {
|
||||||
|
|
@ -140,7 +141,7 @@ export default function MediaManager({ initialFiles }: { initialFiles: MediaFile
|
||||||
<section className="admin-card media-toolbar">
|
<section className="admin-card media-toolbar">
|
||||||
<label>
|
<label>
|
||||||
Datei hochladen
|
Datei hochladen
|
||||||
<input type="file" accept="image/jpeg,image/png,image/webp,application/pdf" onChange={upload} disabled={pending} />
|
<input ref={fileInputRef} type="file" accept="image/jpeg,image/png,image/webp,application/pdf" onChange={upload} disabled={pending} />
|
||||||
</label>
|
</label>
|
||||||
<label>
|
<label>
|
||||||
Suche
|
Suche
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue