InvokeAI/invokeai/frontend/web
psychedelicious 19c5435332 fix(ui): copy image via img onload to blob
There's a bug in chrome that screws with headers on fetch requests and 307 responses. This causes images to fail to copy in the commercial environment.

This change attempts to get around this by copying images in a different way (similar to how the canvas works). When the user requests a copy we:
- create an `<img />` element
- set `crossOrigin` if needed
- add an onload handler:
  - create a canvas element
  - draw image onto it
  - export canvas to blob

This is wrapped in a promise which resolves to the blob, which can then be copied to clipboard.

---

A customized version of Konva's `useImage` hook is also included, which returns the image blob in addition to the `<img />` element. Unfortunately, this hook is not suitable for use across the app, because it does all the image fetching up front, regardless of whether we actually want to copy the image.

In other words, we'd have to fetch the whole image file even if the user is just skipping through image metadata, in order to have the blob to copy. The callback approach means we only fetch the image when the user clicks copy. The hook is thus currently unused.
2023-10-17 06:43:19 +11:00
..
.husky fix(ui): post-onnx fixes 2023-08-01 07:59:01 -04:00
.yarn/releases all files migrated; tweaks needed 2023-03-03 00:02:15 -05:00
config export theme nad move chakra to peer dep 2023-08-01 08:54:03 +10:00
dist Updated JS files 2023-10-13 17:27:41 +11:00
docs dummy commit to make github actions run 2023-06-04 22:55:35 +10:00
public/locales translationBot(ui): update translation (Chinese (Simplified)) 2023-10-16 07:57:41 +11:00
scripts fix(ui): simplify typegen script 2023-08-23 23:06:42 +10:00
src fix(ui): copy image via img onload to blob 2023-10-17 06:43:19 +11:00
static move static into invokeai.frontend.web directory for dist install 2023-05-22 16:48:17 -04:00
tests Partial migration of UI to nodes API (#3195) 2023-04-22 13:10:20 +10:00
__init__.py Run python black 2023-07-28 09:46:44 -04:00
.eslintignore feat: workflow saving and loading 2023-08-24 21:42:32 +10:00
.eslintrc.js build(ui): fix up lint scripts (way faster now) 2023-08-23 23:06:42 +10:00
.gitignore build(ui): add yalc to gitignore 2023-05-11 11:55:51 +10:00
.prettierignore fix(ui): prettier ignores translation files 2023-10-12 21:37:45 +11:00
.prettierrc.js feat(ui): migrate theming to chakra ui 2023-03-06 20:03:39 +11:00
.yarnrc all files migrated; tweaks needed 2023-03-03 00:02:15 -05:00
.yarnrc.yml all files migrated; tweaks needed 2023-03-03 00:02:15 -05:00
favicon.ico all files migrated; tweaks needed 2023-03-03 00:02:15 -05:00
index.html Prevent caching to ensure updated UI is shown 2023-10-04 22:32:00 +11:00
package.json chore(ui): update deps 2023-10-15 19:30:39 +11:00
tsconfig.json feat: add multi-select to gallery 2023-08-03 11:46:59 +10:00
tsconfig.node.json feat(ui): improved node parsing 2023-06-26 11:53:54 +10:00
vite.config.ts build(ui): treeshake lodash via lodash-es 2023-04-28 21:56:43 +10:00
yarn.lock chore(ui): update deps 2023-10-15 19:30:39 +11:00