Files
wehub-resource-sync adf0d17497
publish / version_or_publish (push) Has been cancelled
storybook-build / changes (push) Has been cancelled
storybook-build / :storybook-build (push) Has been cancelled
Sync Gradio Skills to Hugging Face / sync-skills (push) Has been cancelled
functional / changes (push) Has been cancelled
functional / build-frontend (push) Has been cancelled
functional / functional-test-SSR=false (push) Has been cancelled
functional / functional-reload (push) Has been cancelled
js / changes (push) Has been cancelled
js / js-test (push) Has been cancelled
docs-build / changes (push) Has been cancelled
docs-build / docs-build (push) Has been cancelled
docs-build / website-build (push) Has been cancelled
functional / functional-test-SSR=true (push) Has been cancelled
hygiene / hygiene-test (push) Has been cancelled
python / changes (push) Has been cancelled
python / build (push) Has been cancelled
python / test-ubuntu-latest-flaky (push) Has been cancelled
python / test-ubuntu-latest-not-flaky (push) Has been cancelled
python / test-windows-latest-flaky (push) Has been cancelled
python / test-windows-latest-not-flaky (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 13:17:32 +08:00

41 lines
1.1 KiB
TypeScript

import { uploadToHuggingFace } from "@gradio/utils";
import { FileData } from "@gradio/client";
export async function format_gallery_for_sharing(
value: [FileData, string | null][] | null
): Promise<string> {
if (!value) return "";
let urls = await Promise.all(
value.map(async ([image, _]) => {
if (image === null || !image.url) return "";
return await uploadToHuggingFace(image.url, "url");
})
);
return `<div style="display: flex; flex-wrap: wrap; gap: 16px">${urls
.map((url) => `<img src="${url}" style="height: 400px" />`)
.join("")}</div>`;
}
export async function handle_save(
img_blob: Blob,
upload: (files: FileData[]) => Promise<(FileData | null)[] | null>,
filename = "uploaded_file"
): Promise<FileData[]> {
const ext = img_blob.type.split("/")[1] || "png";
const f_ = new File([img_blob], `${filename}.${ext}`);
const files = [
new FileData({
path: f_.name,
orig_name: f_.name,
blob: f_,
size: f_.size,
mime_type: f_.type,
is_stream: false
})
];
return ((await upload(files)) ?? []).filter(
(file): file is FileData => file !== null
);
}