rsnext/examples/with-cloudinary/utils/downloadPhoto.ts
Steven 4466ba436b
chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00

24 lines
657 B
TypeScript

function forceDownload(blobUrl: string, filename: string) {
let a: any = document.createElement("a");
a.download = filename;
a.href = blobUrl;
document.body.appendChild(a);
a.click();
a.remove();
}
export default function downloadPhoto(url: string, filename: string) {
if (!filename) filename = url.split("\\").pop().split("/").pop();
fetch(url, {
headers: new Headers({
Origin: location.origin,
}),
mode: "cors",
})
.then((response) => response.blob())
.then((blob) => {
let blobUrl = window.URL.createObjectURL(blob);
forceDownload(blobUrl, filename);
})
.catch((e) => console.error(e));
}