feat: filter list by mime

This commit is contained in:
kieran 2025-02-06 22:33:26 +00:00
parent 16a14de5d6
commit e1fca9a604
No known key found for this signature in database
GPG Key ID: DE71CEB3925BE941
2 changed files with 17 additions and 4 deletions

View File

@ -22,9 +22,9 @@ export class Route96 {
return data; return data;
} }
async listFiles(page = 0, count = 10) { async listFiles(page = 0, count = 10, mime: string | undefined) {
const rsp = await this.#req( const rsp = await this.#req(
`admin/files?page=${page}&count=${count}`, `admin/files?page=${page}&count=${count}${mime ? `&mime_type=${mime}` : ""}`,
"GET", "GET",
); );
const data = await this.#handleResponse<AdminResponseFileList>(rsp); const data = await this.#handleResponse<AdminResponseFileList>(rsp);

View File

@ -23,6 +23,7 @@ export default function Upload() {
const [adminListedFiles, setAdminListedFiles] = useState<Nip96FileList>(); const [adminListedFiles, setAdminListedFiles] = useState<Nip96FileList>();
const [listedPage, setListedPage] = useState(0); const [listedPage, setListedPage] = useState(0);
const [adminListedPage, setAdminListedPage] = useState(0); const [adminListedPage, setAdminListedPage] = useState(0);
const [mimeFilter, setMimeFilter] = useState<string>();
const login = useLogin(); const login = useLogin();
const pub = usePublisher(); const pub = usePublisher();
@ -85,7 +86,7 @@ export default function Upload() {
try { try {
setError(undefined); setError(undefined);
const uploader = new Route96(url, pub); const uploader = new Route96(url, pub);
const result = await uploader.listFiles(n, 50); const result = await uploader.listFiles(n, 50, mimeFilter);
setAdminListedFiles(result); setAdminListedFiles(result);
} catch (e) { } catch (e) {
if (e instanceof Error) { if (e instanceof Error) {
@ -135,7 +136,7 @@ export default function Upload() {
useEffect(() => { useEffect(() => {
listAllUploads(adminListedPage); listAllUploads(adminListedPage);
}, [adminListedPage]); }, [adminListedPage, mimeFilter]);
useEffect(() => { useEffect(() => {
if (pub && !self) { if (pub && !self) {
@ -249,6 +250,18 @@ export default function Upload() {
<hr /> <hr />
<h3>Admin File List:</h3> <h3>Admin File List:</h3>
<Button onClick={() => listAllUploads(0)}>List All Uploads</Button> <Button onClick={() => listAllUploads(0)}>List All Uploads</Button>
<div>
<select value={mimeFilter} onChange={e => setMimeFilter(e.target.value)}>
<option value={""}>All</option>
<option>image/webp</option>
<option>image/jpeg</option>
<option>image/jpg</option>
<option>image/png</option>
<option>image/gif</option>
<option>video/mp4</option>
<option>video/mov</option>
</select>
</div>
{adminListedFiles && ( {adminListedFiles && (
<FileList <FileList
files={adminListedFiles.files} files={adminListedFiles.files}